diff --git a/CMakeLists.txt b/CMakeLists.txt index 5cbd06a..1d3a2d2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,5 +1,4 @@ -# 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 +# TODO: limit pkg-config version to >= 0.14, demo, utilities, doc, tests # use BUILD_SHARED_LIBS # convince perl swig bindings to build properly # @@ -13,7 +12,7 @@ # all posterity and eternity, wherever such transfer is possible. Where it is # not, then this file is released under the GPLv2 by myself. PROJECT(libsword CXX C) -CMAKE_MINIMUM_REQUIRED(VERSION 2.6.0) +CMAKE_MINIMUM_REQUIRED(VERSION 3.7.0) SET(SWORD_VERSION 1.8.1) # Make sure it's an out-of-stream build @@ -56,7 +55,8 @@ IF(MSVC) ELSE(MSVC) FIND_PACKAGE(BZIP2 QUIET) FIND_PACKAGE(XZ QUIET) - FIND_PACKAGE(ICU QUIET) + FIND_PACKAGE(ICU + COMPONENTS data i18n io uc) FIND_PACKAGE(CURL QUIET) ENDIF(MSVC) FIND_PACKAGE(CLucene QUIET) @@ -237,7 +237,11 @@ ENDIF(WITH_CLUCENE) IF(WITH_ICU) INCLUDE_DIRECTORIES(${ICU_INCLUDE_DIRS}) ADD_DEFINITIONS(${ICU_DEFINITIONS}) - SET(SWORD_LINK_LIBRARIES ${SWORD_LINK_LIBRARIES} ${ICU_LIBRARIES} ${ICU_I18N_LIBRARIES}) + MESSAGE(STATUS "ICU Version: ${ICU_VERSION}") + IF("${ICU_VERSION}" VERSION_GREATER "61") + ADD_DEFINITIONS(-DU_USING_ICU_NAMESPACE) + ENDIF("${ICU_VERSION}" VERSION_GREATER "61") + SET(SWORD_LINK_LIBRARIES ${SWORD_LINK_LIBRARIES} ${ICU_LIBRARIES}) ENDIF(WITH_ICU) IF(REGEX_FOUND AND CROSS_COMPILE_MINGW32) SET(SWORD_LINK_LIBRARIES ${SWORD_LINK_LIBRARIES} ${REGEX_LIBRARY}) diff --git a/cmake/FindICU.cmake b/cmake/FindICU.cmake deleted file mode 100644 index 451c2f3..0000000 --- a/cmake/FindICU.cmake +++ /dev/null @@ -1,68 +0,0 @@ -# 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") - if(MSVC) - find_library(ICU_DATA_LIBRARY - NAMES icudt - DOC "Libraries to link against for ICU data") - set(ICU_LIBRARIES ${ICU_LIBRARIES} ${ICU_DATA_LIBRARY}) - endif(MSVC) - mark_as_advanced(ICU_I18N_LIBRARY) - mark_as_advanced(ICU_DATA_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) - -IF(ICU_FOUND) - IF(NOT ICU_FIND_QUIETLY) - MESSAGE(STATUS "ICU: Yes ${ICU_I18N_LIBRARY}") - ENDIF(NOT ICU_FIND_QUIETLY) -ELSE(ICU_FOUND) - IF(ICU_FIND_REQUIRED) - MESSAGE(FATAL_ERROR "ICU: No") - ENDIF(ICU_FIND_REQUIRED) -ENDIF(ICU_FOUND) diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 30818a8..08bc573 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -75,10 +75,12 @@ ENDFOREACH(TEST ${test_PROGRAMS}) ######################################################################################## # The following tests require extra libraries to run -# -FOREACH(ICUTEST icutest translittest) - TARGET_LINK_LIBRARIES(${ICUTEST} ${ICU_LIBRARIES} ${ICU_I18N_LIBRARIES}) -ENDFOREACH(ICUTEST icutest translittest) +# +IF(WITH_ICU) + FOREACH(ICUTEST icutest translittest) + TARGET_LINK_LIBRARIES(${ICUTEST} ${ICU_LIBRARIES} ${ICU_I18N_LIBRARIES}) + ENDFOREACH(ICUTEST icutest translittest) +ENDIF(WITH_ICU) # Excluded until I know we have the tests working ADD_SUBDIRECTORY(testsuite)