diff options
author | Teus Benschop <teusjannette@gmail.com> | 2018-11-10 21:10:09 +0700 |
---|---|---|
committer | Teus Benschop <teusjannette@gmail.com> | 2018-11-10 21:10:09 +0700 |
commit | 2a58bdf9b682f462b63be719fc441a679f7d52f3 (patch) | |
tree | 4b8fce727ab045eef1a846659bb90f18719477e6 /CMakeLists.txt | |
parent | 018216c25c73b221df0810e6c909623abd46c321 (diff) | |
parent | 70090da73f95ee90e15650d853744526b5f47e68 (diff) |
Record sword (1.8.1+dfsg-7) in archive suite sid
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r-- | CMakeLists.txt | 87 |
1 files changed, 62 insertions, 25 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 40e615a..5cbd06a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,21 +1,20 @@ # TODO: write FindICU (icu-config only for 2.2 and up) -- currently taken from another CMake system # limit pkg-config version to >= 0.14, demo, utilities, doc, tests +# use BUILD_SHARED_LIBS +# convince perl swig bindings to build properly # # NOTES: Defaults to build type of Shared # Forces out-of-source tree build -# +# # # This file started on 18 January 2010 by Gregory Hellings # It is ceded to The SWORD Library developers and CrossWire under the terms # of their own GPLv2 license and all copyright is transferred to them for # all posterity and eternity, wherever such transfer is possible. Where it is # not, then this file is released under the GPLv2 by myself. -# -# -# A CMake port of the SWORD build system... we hope PROJECT(libsword CXX C) CMAKE_MINIMUM_REQUIRED(VERSION 2.6.0) -SET(SWORD_VERSION 1.7.3) +SET(SWORD_VERSION 1.8.1) # Make sure it's an out-of-stream build IF(${CMAKE_CURRENT_BINARY_DIR} STREQUAL ${CMAKE_CURRENT_SOURCE_DIR}) @@ -33,9 +32,15 @@ SET(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake") INCLUDE("${CMAKE_CURRENT_SOURCE_DIR}/cmake/options.cmake") # Source variables INCLUDE("${CMAKE_CURRENT_SOURCE_DIR}/cmake/sources.cmake") +# Cppcheck +INCLUDE("${CMAKE_CURRENT_SOURCE_DIR}/cmake/CppcheckTargets.cmake") # Our local includes INCLUDE_DIRECTORIES("${CMAKE_CURRENT_BINARY_DIR}/include") # For swversion.h INCLUDE_DIRECTORIES("${CMAKE_CURRENT_SOURCE_DIR}/include") # For everything else +IF(MSVC) + INCLUDE_DIRECTORIES("${CMAKE_CURRENT_SOURCE_DIR}/src/utilfuns/win32/") + ADD_DEFINITIONS(-DWIN32 -D_ICUSWORD_ -D_LIB -DREGEX_MALLOC -DSWMAKINGDLL -D_CRT_SECURE_NO_WARNINGS -DCURL_STATICLIB -DUSBINARY -D_CRT_SECURE_NO_DEPRECATE) +ENDIF(MSVC) ########################################################################################### # This will look for various libraries that libsword builds against. There is no REQUIRED @@ -43,10 +48,19 @@ INCLUDE_DIRECTORIES("${CMAKE_CURRENT_SOURCE_DIR}/include") # For everything else # MESSAGE(STATUS "\n-- SEARCHING FOR SYTEM PACKAGES") # Find our packages -FIND_PACKAGE(ZLIB QUIET) -FIND_PACKAGE(ICU QUIET) -FIND_PACKAGE(CURL QUIET) +IF(MSVC) + FIND_PACKAGE(BZIP2 REQUIRED) + FIND_PACKAGE(XZ REQUIRED) + FIND_PACKAGE(ICU REQUIRED) + FIND_PACKAGE(CURL REQUIRED) +ELSE(MSVC) + FIND_PACKAGE(BZIP2 QUIET) + FIND_PACKAGE(XZ QUIET) + FIND_PACKAGE(ICU QUIET) + FIND_PACKAGE(CURL QUIET) +ENDIF(MSVC) FIND_PACKAGE(CLucene QUIET) +FIND_PACKAGE(ZLIB QUIET) FIND_PACKAGE(PkgConfig QUIET) FIND_PACKAGE(Regex QUIET) @@ -65,8 +79,12 @@ INCLUDE(${CMAKE_CURRENT_SOURCE_DIR}/cmake/muxsources.cmake) # Most of the work for configuration is done above, already. # # I want to do this manually, there might be reason in the future +SET(CPPCHECK_POSSIBLEERROR_ARG "--enable=all") IF(LIBSWORD_LIBRARY_TYPE MATCHES ".*Shared.*" OR NOT LIBSWORD_LIBRARY_TYPE) ADD_LIBRARY(sword SHARED ${sword_SOURCES}) + ADD_CPPCHECK(sword + POSSIBLE_ERROR TRUE + FORCE TRUE) MESSAGE(STATUS "Building Shared library.") SET(BUILDING_SHARED 1) SET(SWORD_LINK_NAME sword) @@ -74,6 +92,9 @@ ENDIF(LIBSWORD_LIBRARY_TYPE MATCHES ".*Shared.*" OR NOT LIBSWORD_LIBRARY_TYPE) IF(LIBSWORD_LIBRARY_TYPE MATCHES ".*Static.*" OR NOT LIBSWORD_LIBRARY_TYPE) ADD_LIBRARY(sword_static STATIC ${sword_SOURCES}) + ADD_CPPCHECK(sword_static + POSSIBLE_ERROR TRUE + FORCE TRUE) SET_TARGET_PROPERTIES(sword_static PROPERTIES COMPILE_FLAGS "-fPIC") SET(BUILDING_STATIC 1) # Defaults to linking against the shared if it is also being built @@ -85,7 +106,7 @@ IF(LIBSWORD_LIBRARY_TYPE MATCHES ".*Static.*" OR NOT LIBSWORD_LIBRARY_TYPE) # same exact name. In other systems, the .a and .so suffixes suffice # to keep them separate IF(NOT MSVC OR NOT LIBSWORD_LIBRARY_TYPE MATCHES ".*Shared.*") - SET_TARGET_PROPERTIES(sword_static PROPERTIES + SET_TARGET_PROPERTIES(sword_static PROPERTIES OUTPUT_NAME "sword") #MESSAGE(STATUS "Building Static library with name sword") ELSE(NOT MSVC OR NOT LIBSWORD_LIBRARY_TYPE MATCHES ".*Shared.*") @@ -98,10 +119,10 @@ ENDIF(LIBSWORD_LIBRARY_TYPE MATCHES ".*Static.*" OR NOT LIBSWORD_LIBRARY_TYPE) ################################################################################################ # Some random user settings # - -IF(NOT SWORD_GLOBAL_CONF_DIR STREQUAL "") - ADD_DEFINITIONS(-DGLOBCONFPATH="${SWORD_GLOBAL_CONF_DIR}/sword.conf") -ENDIF(NOT SWORD_GLOBAL_CONF_DIR STREQUAL "") +ADD_DEFINITIONS(-DGLOBCONFPATH="${SYSCONF_INSTALL_DIR}/sword.conf") +SET(CONFFILE "[Install] +DataPath=${SHARE_INSTALL_PREFIX}/sword") +FILE(WRITE "${CMAKE_CURRENT_BINARY_DIR}/sword.conf" "${CONFFILE}") ############################################################################################### @@ -150,13 +171,21 @@ IF(SWORD_ENABLE_PROFILEFN STREQUAL "Yes") TARGET_LINK_LIBRARIES(libsword fnccheck) ENDIF(SWORD_ENABLE_PROFILEFN STREQUAL "Yes") -SET(CMAKE_C_FLAGS_DEBUG "-g3 -Wall -O0 ${CMAKE_C_FLAGS}") -SET(CMAKE_C_FLAGS_RELEASE "-O3 ${CMAKE_C_FLAGS}") -SET(CMAKE_C_FLAGS_RELWITHDEBINFO "-O3 -g ${CMAKE_C_FLAGS}") -SET(CMAKE_CXX_FLAGS_DEBUG "-g3 -Wall -O0 ${CMAKE_CXX_FLAGS}") -SET(CMAKE_CXX_FLAGS_RELEASE "-O3 ${CMAKE_CXX_FLAGS}") -SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O3 -g ${CMAKE_CXX_FLAGS}") - +IF(MSVC) + SET(CMAKE_C_FLAGS_DEBUG "/D /O0 /DDEBUG ${CMAKE_C_FLAGS}") + SET(CMAKE_C_FLAGS_RELEASE "/O3 /DNDEBUG ${CMAKE_C_FLAGS}") + SET(CMAKE_C_FLAGS_RELWITHDEBINFO "/O3 /D /DDEBUG ${CMAKE_C_FLAGS}") + SET(CMAKE_CXX_FLAGS_DEBUG "/D /O0 /DDEBUG ${CMAKE_CXX_FLAGS}") + SET(CMAKE_CXX_FLAGS_RELEASE "/O3 ${CMAKE_CXX_FLAGS}") + SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "/O3 /D /DDEBUG ${CMAKE_CXX_FLAGS}") +ELSE(MSVC) + SET(CMAKE_C_FLAGS_DEBUG "-g3 -Wall -O0 ${CMAKE_C_FLAGS}") + SET(CMAKE_C_FLAGS_RELEASE "-O3 ${CMAKE_C_FLAGS}") + SET(CMAKE_C_FLAGS_RELWITHDEBINFO "-O3 -g ${CMAKE_C_FLAGS}") + SET(CMAKE_CXX_FLAGS_DEBUG "-g3 -Wall -O0 ${CMAKE_CXX_FLAGS}") + SET(CMAKE_CXX_FLAGS_RELEASE "-O3 ${CMAKE_CXX_FLAGS}") + SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O3 -g ${CMAKE_CXX_FLAGS}") +ENDIF(MSVC) ############################################################################################## # Setting libraries and includes # @@ -165,6 +194,14 @@ IF(WITH_ZLIB) INCLUDE_DIRECTORIES(${ZLIB_INCLUDE_DIR}) SET(SWORD_LINK_LIBRARIES ${SWORD_LINK_LIBRARIES} ${ZLIB_LIBRARY}) ENDIF(WITH_ZLIB) +IF(WITH_BZIP2) + INCLUDE_DIRECTORIES(${BZIP2_INCLUDE_DIR}) + SET(SWORD_LINK_LIBRARIES ${SWORD_LINK_LIBRARIES} ${BZIP2_LIBRARY}) +ENDIF(WITH_BZIP2) +IF(WITH_XZ) + INCLUDE_DIRECTORIES(${XZ_INCLUDE_DIR}) + SET(SWORD_LINK_LIBRARIES ${SWORD_LINK_LIBRARIES} ${XZ_LIBRARY}) +ENDIF(WITH_XZ) IF(WITH_CURL) FIND_PROGRAM(CURL_CONFIG curl-config DOC "The curl-config executable path, used to determine SFTP support.") @@ -190,7 +227,7 @@ IF(WITH_CURL) ENDIF(WITH_CURL) IF(WITH_CLUCENE) INCLUDE_DIRECTORIES(${CLUCENE_INCLUDE_DIR}) - SET(SWORD_LINK_LIBRARIES ${SWORD_LINK_LIBRARIES} ${CLUCENE_LIBRARY} -lclucene-shared) + SET(SWORD_LINK_LIBRARIES ${SWORD_LINK_LIBRARIES} ${CLUCENE_LIBRARY}) LINK_DIRECTORIES(${CLUCENE_LIBRARY_DIR}) ADD_DEFINITIONS(-DUSELUCENE) IF(CLUCENE2) @@ -226,7 +263,7 @@ ADD_DEFINITIONS(-D_FTPLIB_NO_COMPAT) ############################################################################################# # Platform-specifc bits that I will eventually refactor out into their own files, once I am happy # with the stuff that is here. -# +# IF(APPLE OR iPhone) ADD_DEFINITIONS(-Dunix) ENDIF(APPLE OR iPhone) @@ -244,7 +281,7 @@ ENDIF(BUILDING_STATIC) ############################################################################################## # Installing the library, headers, utilies, etc -# +# INCLUDE("${CMAKE_CURRENT_SOURCE_DIR}/cmake/install.cmake") @@ -258,7 +295,7 @@ ENDIF(NOT SWORD_BINDINGS STREQUAL "" AND SWORD_BINDINGS) ############################################################################################## # Utilities are hawt -# +# IF(NOT SWORD_BUILD_UTILS STREQUAL "No") ADD_SUBDIRECTORY("${CMAKE_CURRENT_SOURCE_DIR}/utilities") @@ -266,7 +303,7 @@ ENDIF(NOT SWORD_BUILD_UTILS STREQUAL "No") ############################################################################################## # Demos are also hawt -# +# IF(SWORD_BUILD_EXAMPLES STREQUAL "Yes") ADD_SUBDIRECTORY("${CMAKE_CURRENT_SOURCE_DIR}/examples/cmdline") |