diff options
author | Roberto C. Sanchez <roberto@connexer.com> | 2014-10-21 22:48:21 -0400 |
---|---|---|
committer | Roberto C. Sanchez <roberto@connexer.com> | 2014-10-21 22:48:21 -0400 |
commit | cbb6dcfb002dd5bc5f702a4909306be5c2878319 (patch) | |
tree | f5321b16bc6eb2e5f32dd9aa3cdf9f9fe9185466 /cmake | |
parent | 1af3b165c9377702ca62a64112bc089a6f575c30 (diff) |
Imported Upstream version 2.0
Diffstat (limited to 'cmake')
-rw-r--r-- | cmake/FindCLucene.cmake | 116 | ||||
-rw-r--r-- | cmake/FindICU.cmake | 51 | ||||
-rw-r--r-- | cmake/FindSword.cmake | 221 | ||||
-rw-r--r-- | cmake/sword_linker_check.cpp | 27 | ||||
-rw-r--r-- | cmake/sword_version_compare.cpp | 23 |
5 files changed, 287 insertions, 151 deletions
diff --git a/cmake/FindCLucene.cmake b/cmake/FindCLucene.cmake index 1a1fb45..85e59b3 100644 --- a/cmake/FindCLucene.cmake +++ b/cmake/FindCLucene.cmake @@ -20,102 +20,102 @@ INCLUDE(CheckSymbolExists) INCLUDE(FindLibraryWithDebug) if(NOT CLUCENE_MIN_VERSION) - set(CLUCENE_MIN_VERSION "0.9.19") + set(CLUCENE_MIN_VERSION "0.9.19") endif(NOT CLUCENE_MIN_VERSION) IF(EXISTS ${PROJECT_CMAKE}/CLuceneConfig.cmake) - INCLUDE(${PROJECT_CMAKE}/CLuceneConfig.cmake) + INCLUDE(${PROJECT_CMAKE}/CLuceneConfig.cmake) ENDIF(EXISTS ${PROJECT_CMAKE}/CLuceneConfig.cmake) IF(MSVC) - IF(CMAKE_BUILD_TYPE STREQUAL "Release") - SET(WIN_CLUCENE_SEARCH_PATH ../clucene-core-0.9.21b/src/CLucene/Release) - ELSE(CMAKE_BUILD_TYPE STREQUAL "Release") - SET(WIN_CLUCENE_SEARCH_PATH ../clucene-core-0.9.21b/src/CLucene/debug) - ENDIF(CMAKE_BUILD_TYPE STREQUAL "Release") - SET(WIN_CLUCENE_INCLUDE_PATH ../clucene-core-0.9.21b/src) + IF(CMAKE_BUILD_TYPE STREQUAL "Release") + SET(WIN_CLUCENE_SEARCH_PATH ../clucene-core-0.9.21b/src/CLucene/Release) + ELSE(CMAKE_BUILD_TYPE STREQUAL "Release") + SET(WIN_CLUCENE_SEARCH_PATH ../clucene-core-0.9.21b/src/CLucene/debug) + ENDIF(CMAKE_BUILD_TYPE STREQUAL "Release") + SET(WIN_CLUCENE_INCLUDE_PATH ../clucene-core-0.9.21b/src) ELSE(MSVC) - SET(WIN_CLUCENE_SEARCH_PATH "") - SET(WIN_CLUCENE_INCLUDE_PATH "") + SET(WIN_CLUCENE_SEARCH_PATH "") + SET(WIN_CLUCENE_INCLUDE_PATH "") ENDIF(MSVC) SET(TRIAL_LIBRARY_PATHS - $ENV{CLUCENE_HOME}/lib${LIB_SUFFIX} - ${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX} - /usr/local/lib${LIB_SUFFIX} - /opt/local/lib${LIB_SUFFIX} - /usr/lib${LIB_SUFFIX} - /usr/lib64 - /sw/lib${LIB_SUFFIX} - /usr/pkg/lib${LIB_SUFFIX} - ${WIN_CLUCENE_SEARCH_PATH} - ) + $ENV{CLUCENE_HOME}/lib${LIB_SUFFIX} + ${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX} + /usr/local/lib${LIB_SUFFIX} + /opt/local/lib${LIB_SUFFIX} + /usr/lib${LIB_SUFFIX} + /usr/lib64 + /sw/lib${LIB_SUFFIX} + /usr/pkg/lib${LIB_SUFFIX} + ${WIN_CLUCENE_SEARCH_PATH} + ) SET(TRIAL_INCLUDE_PATHS - $ENV{CLUCENE_HOME}/include - ${CMAKE_INSTALL_PREFIX}/include - /usr/local/include - /usr/include - /sw/include - /usr/pkg/include - ${WIN_CLUCENE_INCLUDE_PATH} - ) + $ENV{CLUCENE_HOME}/include + ${CMAKE_INSTALL_PREFIX}/include + /usr/local/include + /usr/include + /sw/include + /usr/pkg/include + ${WIN_CLUCENE_INCLUDE_PATH} + ) FIND_LIBRARY_WITH_DEBUG(CLUCENE_LIBRARY - NAMES clucene clucene-core - PATHS ${TRIAL_LIBRARY_PATHS}) + NAMES clucene clucene-core + PATHS ${TRIAL_LIBRARY_PATHS}) IF (CLUCENE_LIBRARY) - MESSAGE(STATUS "Found CLucene library: ${CLUCENE_LIBRARY}") + MESSAGE(STATUS "Found CLucene library: ${CLUCENE_LIBRARY}") ENDIF (CLUCENE_LIBRARY) FIND_PATH(CLUCENE_INCLUDE_DIR - NAMES CLucene.h - PATHS ${TRIAL_INCLUDE_PATHS}) + NAMES CLucene.h + PATHS ${TRIAL_INCLUDE_PATHS}) IF (CLUCENE_INCLUDE_DIR) - MESSAGE(STATUS "Found CLucene include dir: ${CLUCENE_INCLUDE_DIR}") + MESSAGE(STATUS "Found CLucene include dir: ${CLUCENE_INCLUDE_DIR}") ENDIF (CLUCENE_INCLUDE_DIR) IF(WIN32) - SET(TRIAL_LIBRARY_PATHS ${CLUCENE_INCLUDE_DIR}) + SET(TRIAL_LIBRARY_PATHS ${CLUCENE_INCLUDE_DIR}) ENDIF(WIN32) SET(CLUCENE_GOOD_VERSION TRUE) FIND_PATH(CLUCENE_LIBRARY_DIR - NAMES CLucene/clucene-config.h PATHS ${TRIAL_LIBRARY_PATHS} ${TRIAL_INCLUDE_PATHS} NO_DEFAULT_PATH) + NAMES CLucene/clucene-config.h PATHS ${TRIAL_LIBRARY_PATHS} ${TRIAL_INCLUDE_PATHS} NO_DEFAULT_PATH) IF (CLUCENE_LIBRARY_DIR) - MESSAGE(STATUS "Found CLucene library dir: ${CLUCENE_LIBRARY_DIR}") - FILE(READ ${CLUCENE_LIBRARY_DIR}/CLucene/clucene-config.h CLCONTENT) - STRING(REGEX MATCH "_CL_VERSION +\".*\"" CLMATCH ${CLCONTENT}) - IF (CLMATCH) - STRING(REGEX REPLACE "_CL_VERSION +\"(.*)\"" "\\1" CLUCENE_VERSION ${CLMATCH}) + MESSAGE(STATUS "Found CLucene library dir: ${CLUCENE_LIBRARY_DIR}") + FILE(READ ${CLUCENE_LIBRARY_DIR}/CLucene/clucene-config.h CLCONTENT) + STRING(REGEX MATCH "_CL_VERSION +\".*\"" CLMATCH ${CLCONTENT}) + IF (CLMATCH) + STRING(REGEX REPLACE "_CL_VERSION +\"(.*)\"" "\\1" CLUCENE_VERSION ${CLMATCH}) IF (CLUCENE_VERSION STRLESS "${CLUCENE_MIN_VERSION}") - MESSAGE(ERROR " CLucene version ${CLUCENE_VERSION} is less than the required minimum ${CLUCENE_MIN_VERSION}") - SET(CLUCENE_GOOD_VERSION FALSE) + MESSAGE(ERROR " CLucene version ${CLUCENE_VERSION} is less than the required minimum ${CLUCENE_MIN_VERSION}") + SET(CLUCENE_GOOD_VERSION FALSE) ENDIF (CLUCENE_VERSION STRLESS "${CLUCENE_MIN_VERSION}") IF (CLUCENE_VERSION STREQUAL "0.9.17") - MESSAGE(ERROR "CLucene version 0.9.17 is not supported.") - SET(CLUCENE_GOOD_VERSION FALSE) + MESSAGE(ERROR "CLucene version 0.9.17 is not supported.") + SET(CLUCENE_GOOD_VERSION FALSE) ENDIF (CLUCENE_VERSION STREQUAL "0.9.17") - ENDIF (CLMATCH) + ENDIF (CLMATCH) ELSE (CLUCENE_LIBRARY_DIR) - MESSAGE(STATUS "CLucene library dir not found.") + MESSAGE(STATUS "CLucene library dir not found.") ENDIF (CLUCENE_LIBRARY_DIR) IF(CLUCENE_INCLUDE_DIR AND CLUCENE_LIBRARY AND CLUCENE_LIBRARY_DIR AND CLUCENE_GOOD_VERSION) - SET(CLucene_FOUND TRUE) + SET(CLucene_FOUND TRUE) ENDIF(CLUCENE_INCLUDE_DIR AND CLUCENE_LIBRARY AND CLUCENE_LIBRARY_DIR AND CLUCENE_GOOD_VERSION) IF(CLucene_FOUND) - IF(NOT CLucene_FIND_QUIETLY) - MESSAGE(STATUS "Found CLucene: ${CLUCENE_LIBRARY}") - ENDIF(NOT CLucene_FIND_QUIETLY) + IF(NOT CLucene_FIND_QUIETLY) + MESSAGE(STATUS "Found CLucene: ${CLUCENE_LIBRARY}") + ENDIF(NOT CLucene_FIND_QUIETLY) ELSE(CLucene_FOUND) - IF(CLucene_FIND_REQUIRED) - MESSAGE(FATAL_ERROR "Could not find CLucene.") - ENDIF(CLucene_FIND_REQUIRED) + IF(CLucene_FIND_REQUIRED) + MESSAGE(FATAL_ERROR "Could not find CLucene.") + ENDIF(CLucene_FIND_REQUIRED) ENDIF(CLucene_FOUND) MARK_AS_ADVANCED( - CLUCENE_INCLUDE_DIR - CLUCENE_LIBRARY_DIR - CLUCENE_LIBRARY - ) + CLUCENE_INCLUDE_DIR + CLUCENE_LIBRARY_DIR + CLUCENE_LIBRARY + ) diff --git a/cmake/FindICU.cmake b/cmake/FindICU.cmake new file mode 100644 index 0000000..9dff9f3 --- /dev/null +++ b/cmake/FindICU.cmake @@ -0,0 +1,51 @@ +# Finds the International Components for Unicode (ICU) Library +# +# ICU_FOUND - True if ICU found. +# ICU_I18N_FOUND - True if ICU's internationalization library found. +# ICU_INCLUDE_DIRS - Directory to include to get ICU headers +# Note: always include ICU headers as, e.g., +# unicode/utypes.h +# ICU_LIBRARIES - Libraries to link against for the common ICU +# ICU_I18N_LIBRARIES - Libraries to link against for ICU internationaliation +# (note: in addition to ICU_LIBRARIES) + +# Look for the header file. +find_path( + ICU_INCLUDE_DIR + NAMES unicode/utypes.h + DOC "Include directory for the ICU library") +mark_as_advanced(ICU_INCLUDE_DIR) + +# Look for the library. +find_library( + ICU_LIBRARY + NAMES icuuc cygicuuc cygicuuc32 + DOC "Libraries to link against for the common parts of ICU") +mark_as_advanced(ICU_LIBRARY) + +# Copy the results to the output variables. +if(ICU_INCLUDE_DIR AND ICU_LIBRARY) + set(ICU_FOUND 1) + set(ICU_LIBRARIES ${ICU_LIBRARY}) + set(ICU_INCLUDE_DIRS ${ICU_INCLUDE_DIR}) + + # Look for the ICU internationalization libraries + find_library( + ICU_I18N_LIBRARY + NAMES icuin icui18n cygicuin cygicuin32 + DOC "Libraries to link against for ICU internationalization") + mark_as_advanced(ICU_I18N_LIBRARY) + if (ICU_I18N_LIBRARY) + set(ICU_I18N_FOUND 1) + set(ICU_I18N_LIBRARIES ${ICU_I18N_LIBRARY}) + else (ICU_I18N_LIBRARY) + set(ICU_I18N_FOUND 0) + set(ICU_I18N_LIBRARIES) + endif (ICU_I18N_LIBRARY) +else(ICU_INCLUDE_DIR AND ICU_LIBRARY) + set(ICU_FOUND 0) + set(ICU_I18N_FOUND 0) + set(ICU_LIBRARIES) + set(ICU_I18N_LIBRARIES) + set(ICU_INCLUDE_DIRS) +endif(ICU_INCLUDE_DIR AND ICU_LIBRARY) diff --git a/cmake/FindSword.cmake b/cmake/FindSword.cmake index 0df6618..8080895 100644 --- a/cmake/FindSword.cmake +++ b/cmake/FindSword.cmake @@ -2,119 +2,154 @@ SET (REQUIRED_SWORD_VERSION 1.5.9) SET (SIMPLE_RENDER_SWORD_VERSION 1.5.10) SET (MULTIVERSE_SWORD_VERSION 1.5.11.1) SET (SYSCONF_CHANGED_SWORD_VERSION 1.5.11.98) -SET (INTERNET_WARNING_SWORD_VERSION 1.5.11.98) +#SET (INTERNET_WARNING_SWORD_VERSION 1.5.11.98) # same as SYSCONF_CHANGED_SWORD_VERSION, treated together # This module looks for installed sword # # It will define the following values # SWORD_INCLUDE_DIR -# SWORD_LIBS - -IF (WIN32) - - SET(TRIAL_LIBRARY_PATHS - $ENV{SWORD_HOME}/lib${LIB_SUFFIX} - ${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX} - /usr/lib${LIB_SUFFIX} - /usr/local/lib${LIB_SUFFIX} - /sw/lib${LIB_SUFFIX} - ../sword-1.5.11/lib/vcppmake/vc8/ICUDebug - ../sword-1.5.11/lib/vcppmake/vc8/ICURelease - ) - SET(TRIAL_INCLUDE_PATHS - $ENV{SWORD_HOME}/include/sword - $ENV{SWORD_HOME}/include - ${CMAKE_INSTALL_PREFIX}/include/sword - ${CMAKE_INSTALL_PREFIX}/include - /sw/include - ../sword-1.5.11/include - ) - - FIND_LIBRARY(SWORD_LIBRARY sword - NAMES libsword - PATHS ${TRIAL_LIBRARY_PATHS}) - IF (SWORD_LIBRARY) - MESSAGE(STATUS "Found Sword library: ${SWORD_LIBRARY}") - ENDIF (SWORD_LIBRARY) - FIND_PATH(SWORD_INCLUDE_DIR - NAMES swmgr.h - PATHS ${TRIAL_INCLUDE_PATHS}) - - IF (SWORD_INCLUDE_DIR) - MESSAGE(STATUS "Found Sword include dir: ${SWORD_INCLUDE_DIR}") - ENDIF (SWORD_INCLUDE_DIR) - -ELSE(WIN32) - - EXECUTE_PROCESS(COMMAND pkg-config --atleast-version=${REQUIRED_SWORD_VERSION} sword - RESULT_VARIABLE SWORD_VERSION_OK - ) - EXECUTE_PROCESS(COMMAND pkg-config --atleast-version=${SIMPLE_RENDER_SWORD_VERSION} sword - RESULT_VARIABLE SIMPLE_RENDER_SWORD_OK - ) - EXECUTE_PROCESS(COMMAND pkg-config --atleast-version=${MULTIVERSE_SWORD_VERSION} sword - RESULT_VARIABLE MULTIVERSE_SWORD_OK - ) - EXECUTE_PROCESS(COMMAND pkg-config --atleast-version=${SYSCONF_CHANGED_SWORD_VERSION} sword - RESULT_VARIABLE SYSCONF_CHANGED_SWORD_OK - ) - EXECUTE_PROCESS(COMMAND pkg-config --atleast-version=${INTERNET_WARNING_SWORD_VERSION} sword - RESULT_VARIABLE INTERNET_WARNING_SWORD_OK - ) +# SWORD_LIBRARY +# SWORD_LIBRARY_DIR +# SWORD_CFLAGS + +IF(MSVC) + SET(SWORD_WIN32_LIBRARY_PATH ../sword/lib/vcppmake/vc8/ICUDebug) + SET(SWORD_WIN32_INCLUDE_PATH ../sword/include) +ENDIF(MSVC) + +SET(TRIAL_LIBRARY_PATHS + $ENV{SWORD_HOME}/lib${LIB_SUFFIX} + ${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX} + /usr/local/lib${LIB_SUFFIX} + /opt/local/lib${LIB_SUFFIX} + /usr/lib${LIB_SUFFIX} + /usr/lib64 + /usr/pkg/lib${LIB_SUFFIX} + ${SWORD_WIN32_LIBRARY_PATH} +) +SET(TRIAL_INCLUDE_PATHS + $ENV{SWORD_HOME}/include/sword + $ENV{SWORD_HOME}/include + ${CMAKE_INSTALL_PREFIX}/include/sword + ${CMAKE_INSTALL_PREFIX}/include + /usr/local/include/sword + /usr/local/include + /usr/include/sword + /usr/include + /sw/include/sword + /sw/include + /usr/pkg/include/sword + /usr/pkg/include + ${SWORD_WIN32_INCLUDE_PATH} +) +FIND_LIBRARY(SWORD_LIBRARY sword NAMES libsword PATHS ${TRIAL_LIBRARY_PATHS}) +IF (SWORD_LIBRARY) + MESSAGE(STATUS "Found Sword library: ${SWORD_LIBRARY}") + SET(SWORD_LIBRARY "sword") +ELSE (SWORD_LIBRARY) + MESSAGE(FATAL_ERROR "Could not find the Sword library.") +ENDIF (SWORD_LIBRARY) + +FIND_PATH(SWORD_LIBRARY_DIR NAMES libsword.a libsword.la libsword.so libsword.lib PATHS ${TRIAL_LIBRARY_PATHS} ENV CMAKE_LIBRARY_PATH) +IF (SWORD_LIBRARY_DIR) + MESSAGE(STATUS "Found Sword library dir: ${SWORD_LIBRARY_DIR}") +ELSE (SWORD_LIBRARY_DIR) + MESSAGE(FATAL_ERROR "Could not find the Sword library dir.") +ENDIF (SWORD_LIBRARY_DIR) + +FIND_PATH(SWORD_INCLUDE_DIR NAMES swmgr.h PATHS ${TRIAL_INCLUDE_PATHS}) +IF (SWORD_INCLUDE_DIR) + MESSAGE(STATUS "Found Sword include dir: ${SWORD_INCLUDE_DIR}") +ELSE (SWORD_INCLUDE_DIR) + MESSAGE(FATAL_ERROR "Sword include dir could not be found.") +ENDIF (SWORD_INCLUDE_DIR) - EXECUTE_PROCESS(COMMAND pkg-config --modversion sword - OUTPUT_VARIABLE SWORD_VERSION - OUTPUT_STRIP_TRAILING_WHITESPACE +# +# Check for minimum Sword version +# +MACRO(CHECK_SWORD_VERSION VERSION) + TRY_RUN(SWVERSIONTEST_RUN_RESULT SWVERSIONTEST_COMPILE_RESULT + ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/cmake/sword_version_compare.cpp + CMAKE_FLAGS + "-DINCLUDE_DIRECTORIES:STRING=${SWORD_INCLUDE_DIR}" + "-DLINK_DIRECTORIES:STRING=${SWORD_LIBRARY_DIR}" + "-DLINK_LIBRARIES:STRING=${SWORD_LIBRARY}" + COMPILE_OUTPUT_VARIABLE SWVERSIONTEST_COMPILE_OUTPUT + RUN_OUTPUT_VARIABLE SWVERSIONTEST_RUN_OUTPUT + ARGS ${VERSION} ) + IF(NOT SWVERSIONTEST_COMPILE_RESULT) + MESSAGE(FATAL_ERROR "Sword version check program could NOT be compiled: ${SWVERSIONTEST_COMPILE_OUTPUT}") + ENDIF(NOT SWVERSIONTEST_COMPILE_RESULT) +ENDMACRO(CHECK_SWORD_VERSION VERSION) - IF (SWORD_VERSION_OK EQUAL 0) +MESSAGE(STATUS "Checking for required Sword version ${REQUIRED_SWORD_VERSION}...") +CHECK_SWORD_VERSION(${REQUIRED_SWORD_VERSION}) - MESSAGE(STATUS "Sword version ${SWORD_VERSION} is ok") +IF(SWVERSIONTEST_RUN_RESULT EQUAL 0) + MESSAGE(STATUS "Installed Sword version is ok. Check program said: ${SWVERSIONTEST_RUN_OUTPUT}") +ELSE(SWVERSIONTEST_RUN_RESULT EQUAL 0) + MESSAGE(FATAL_ERROR "Installed Sword version is NOT ok! Check program said: ${SWVERSIONTEST_RUN_OUTPUT}") +ENDIF(SWVERSIONTEST_RUN_RESULT EQUAL 0) + +# +# Check for API changes that require compiler definitions +# - EXECUTE_PROCESS(COMMAND pkg-config --variable=includedir sword - OUTPUT_VARIABLE SWORD_INCLUDE_DIR - OUTPUT_STRIP_TRAILING_WHITESPACE - ) - SET(SWORD_INCLUDE_DIR "${SWORD_INCLUDE_DIR}/sword") - MESSAGE(STATUS "Sword include directory is ${SWORD_INCLUDE_DIR}") +# SIMPLE_RENDER +CHECK_SWORD_VERSION(${SIMPLE_RENDER_SWORD_VERSION}) +IF(SWVERSIONTEST_RUN_RESULT EQUAL 0) + SET (SWORD_CFLAGS "${SWORD_CFLAGS} -DSWORD_SIMPLERENDER") + MESSAGE(STATUS " Found simple render version of Sword.") +ENDIF(SWVERSIONTEST_RUN_RESULT EQUAL 0) - EXECUTE_PROCESS(COMMAND pkg-config --libs sword - OUTPUT_VARIABLE SWORD_LIBS - OUTPUT_STRIP_TRAILING_WHITESPACE - ) - MESSAGE(STATUS "Sword lib linker flags to be used: ${SWORD_LIBS}") +# MULTIVERSE +CHECK_SWORD_VERSION(${MULTIVERSE_SWORD_VERSION}) +IF(SWVERSIONTEST_RUN_RESULT EQUAL 0) + SET (SWORD_CFLAGS "${SWORD_CFLAGS} -DSWORD_MULTIVERSE") + MESSAGE(STATUS " Found multiverse version of Sword.") +ENDIF(SWVERSIONTEST_RUN_RESULT EQUAL 0) - ELSE (SWORD_VERSION_OK EQUAL 0) +# SYSCONF_CHANGED and INTERNET_WARNING +CHECK_SWORD_VERSION(${SYSCONF_CHANGED_SWORD_VERSION}) +IF(SWVERSIONTEST_RUN_RESULT EQUAL 0) + SET (SWORD_CFLAGS "${SWORD_CFLAGS} -DSWORD_SYSCONF_CHANGED -DSWORD_INTERNET_WARNING") + MESSAGE(STATUS " Found sysconf_changed and internet_warning version of Sword.") +ENDIF(SWVERSIONTEST_RUN_RESULT EQUAL 0) - IF (SWORD_VERSION) - MESSAGE(FATAL_ERROR "Sword version ${SWORD_VERSION} does not match the required ${REQUIRED_SWORD_VERSION}") - ELSE (SWORD_VERSION) - MESSAGE(FATAL_ERROR "Sword not found") - ENDIF (SWORD_VERSION) +MESSAGE(STATUS "SWORD_CFLAGS: ${SWORD_CFLAGS}") - ENDIF (SWORD_VERSION_OK EQUAL 0) +# +# Sword linker flag detection +# +MACRO(CHECK_SWORD_LINK_LIBRARIES FLAGS) + TRY_COMPILE(SWLINKER_CHECK_COMPILE_RESULT + ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/cmake/sword_linker_check.cpp + CMAKE_FLAGS + "-DINCLUDE_DIRECTORIES:STRING=${SWORD_INCLUDE_DIR}" + "-DLINK_DIRECTORIES:STRING=${SWORD_LIBRARY_DIR};${CLUCENE_LIBRARY_DIR}" + "-DLINK_LIBRARIES:STRING=${FLAGS}" + OUTPUT_VARIABLE SWLINKER_CHECK_COMPILE_OUTPUT +) +ENDMACRO(CHECK_SWORD_LINK_LIBRARIES FLAGS) -ENDIF (WIN32) +#CURL_LIBRARIES and ICU_LIBRARIES are optional, empty if not found +CHECK_SWORD_LINK_LIBRARIES("${CLUCENE_LIBRARY};${SWORD_LIBRARY};${CURL_LIBRARIES};${ICU_LIBRARIES};${ICU_I18N_LIBRARIES};${ZLIB_LIBRARIES}") +IF(SWLINKER_CHECK_COMPILE_RESULT) + MESSAGE(STATUS "Sword linker check compiled ok.") + # SWORD_LIBRARY can stay unchanged +ELSE(SWLINKER_CHECK_COMPILE_RESULT) + MESSAGE(STATUS "Sword linker check could NOT be compiled. It seems that you need additional libraries for the linker.") + MESSAGE(STATUS "Here is the detailed output of the compilation and linking process:") + MESSAGE(FATAL_ERROR "${SWLINKER_CHECK_COMPILE_OUTPUT}") +ENDIF(SWLINKER_CHECK_COMPILE_RESULT) -IF (MULTIVERSE_SWORD_OK EQUAL 0) - SET (SWORD_CFLAGS "${SWORD_CFLAGS} -DSWORD_MULTIVERSE") -ENDIF (MULTIVERSE_SWORD_OK EQUAL 0) -IF (SIMPLE_RENDER_SWORD_OK EQUAL 0) - SET (SWORD_CFLAGS "${SWORD_CFLAGS} -DSWORD_SIMPLERENDER") -ENDIF (SIMPLE_RENDER_SWORD_OK EQUAL 0) -IF (SYSCONF_CHANGED_SWORD_OK EQUAL 0) - SET (SWORD_CFLAGS "${SWORD_CFLAGS} -DSWORD_SYSCONF_CHANGED") -ENDIF (SYSCONF_CHANGED_SWORD_OK EQUAL 0) -IF (INTERNET_WARNING_SWORD_OK EQUAL 0) - SET (SWORD_CFLAGS "${SWORD_CFLAGS} -DSWORD_INTERNET_WARNING") -ENDIF (INTERNET_WARNING_SWORD_OK EQUAL 0) MARK_AS_ADVANCED( SWORD_INCLUDE_DIR - SWORD_LIBS + SWORD_LIBRARY + SWORD_LIBRARY_DIR SWORD_CFLAGS ) - -MESSAGE(STATUS "SWORD_CFLAGS: ${SWORD_CFLAGS}") diff --git a/cmake/sword_linker_check.cpp b/cmake/sword_linker_check.cpp new file mode 100644 index 0000000..465e1cf --- /dev/null +++ b/cmake/sword_linker_check.cpp @@ -0,0 +1,27 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2008 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + +/* + * Use some important Sword classes to see if the linker flags work correctly + */ + +#include <iostream> + +#include <swmgr.h> +#include <installmgr.h> +#include <ftptrans.h> + +int main(int argc, char* argv[]) +{ + sword::SWMgr mgr; + sword::InstallMgr imgr; + sword::FTPTransport trans("example.com"); + + return 0; +} diff --git a/cmake/sword_version_compare.cpp b/cmake/sword_version_compare.cpp new file mode 100644 index 0000000..f67a5c9 --- /dev/null +++ b/cmake/sword_version_compare.cpp @@ -0,0 +1,23 @@ +/********* +* +* This file is part of BibleTime's source code, http://www.bibletime.info/. +* +* Copyright 1999-2008 by the BibleTime developers. +* The BibleTime source code is licensed under the GNU General Public License version 2.0. +* +**********/ + +/* + * Check if Sword's current version is equal or larger than the version given to the program (first commandline argument) + */ + +#include <iostream> + +#include <swversion.h> + +int main(int argc, char* argv[]) +{ + sword::SWVersion testversion(argv[1]); + std::cout << "Your installed Sword version is: " << sword::SWVersion::currentVersion.getText(); + return (sword::SWVersion::currentVersion >= testversion) ? 0 : 1; +} |