123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311 |
- if(NOT DEFINED ICU_PUBLIC_VAR_NS)
- set(ICU_PUBLIC_VAR_NS "ICU")
- endif(NOT DEFINED ICU_PUBLIC_VAR_NS)
- if(NOT DEFINED ICU_PRIVATE_VAR_NS)
- set(ICU_PRIVATE_VAR_NS "_${ICU_PUBLIC_VAR_NS}")
- endif(NOT DEFINED ICU_PRIVATE_VAR_NS)
- if(NOT DEFINED PC_ICU_PRIVATE_VAR_NS)
- set(PC_ICU_PRIVATE_VAR_NS "_PC${ICU_PRIVATE_VAR_NS}")
- endif(NOT DEFINED PC_ICU_PRIVATE_VAR_NS)
- function(icudebug _VARNAME)
- if(${ICU_PUBLIC_VAR_NS}_DEBUG)
- if(DEFINED ${ICU_PUBLIC_VAR_NS}_${_VARNAME})
- message("${ICU_PUBLIC_VAR_NS}_${_VARNAME} = ${${ICU_PUBLIC_VAR_NS}_${_VARNAME}}")
- else(DEFINED ${ICU_PUBLIC_VAR_NS}_${_VARNAME})
- message("${ICU_PUBLIC_VAR_NS}_${_VARNAME} = <UNDEFINED>")
- endif(DEFINED ${ICU_PUBLIC_VAR_NS}_${_VARNAME})
- endif(${ICU_PUBLIC_VAR_NS}_DEBUG)
- endfunction(icudebug)
- set(${ICU_PRIVATE_VAR_NS}_ROOT "")
- if(DEFINED ENV{ICU_ROOT})
- set(${ICU_PRIVATE_VAR_NS}_ROOT "$ENV{ICU_ROOT}")
- endif(DEFINED ENV{ICU_ROOT})
- if (DEFINED ICU_ROOT)
- set(${ICU_PRIVATE_VAR_NS}_ROOT "${ICU_ROOT}")
- endif(DEFINED ICU_ROOT)
- set(${ICU_PRIVATE_VAR_NS}_BIN_SUFFIXES )
- set(${ICU_PRIVATE_VAR_NS}_LIB_SUFFIXES )
- if(CMAKE_SIZEOF_VOID_P EQUAL 8)
- list(APPEND ${ICU_PRIVATE_VAR_NS}_BIN_SUFFIXES "bin64")
- list(APPEND ${ICU_PRIVATE_VAR_NS}_LIB_SUFFIXES "lib64")
- endif(CMAKE_SIZEOF_VOID_P EQUAL 8)
- list(APPEND ${ICU_PRIVATE_VAR_NS}_BIN_SUFFIXES "bin")
- list(APPEND ${ICU_PRIVATE_VAR_NS}_LIB_SUFFIXES "lib")
- set(${ICU_PRIVATE_VAR_NS}_COMPONENTS )
- macro(icu_declare_component _NAME)
- list(APPEND ${ICU_PRIVATE_VAR_NS}_COMPONENTS ${_NAME})
- set("${ICU_PRIVATE_VAR_NS}_COMPONENTS_${_NAME}" ${ARGN})
- endmacro(icu_declare_component)
- icu_declare_component(data icudata)
- icu_declare_component(uc icuuc)
- icu_declare_component(i18n icui18n icuin)
- icu_declare_component(io icuio ustdio)
- icu_declare_component(le icule)
- icu_declare_component(lx iculx)
- set(${ICU_PUBLIC_VAR_NS}_FOUND TRUE)
- set(${ICU_PUBLIC_VAR_NS}_LIBRARIES )
- set(${ICU_PUBLIC_VAR_NS}_INCLUDE_DIRS )
- set(${ICU_PUBLIC_VAR_NS}_C_FLAGS "")
- set(${ICU_PUBLIC_VAR_NS}_CXX_FLAGS "")
- set(${ICU_PUBLIC_VAR_NS}_CPP_FLAGS "")
- set(${ICU_PUBLIC_VAR_NS}_C_SHARED_FLAGS "")
- set(${ICU_PUBLIC_VAR_NS}_CXX_SHARED_FLAGS "")
- set(${ICU_PUBLIC_VAR_NS}_CPP_SHARED_FLAGS "")
- foreach(${ICU_PRIVATE_VAR_NS}_COMPONENT ${${ICU_PRIVATE_VAR_NS}_COMPONENTS})
- string(TOUPPER "${${ICU_PRIVATE_VAR_NS}_COMPONENT}" ${ICU_PRIVATE_VAR_NS}_UPPER_COMPONENT)
- set("${ICU_PUBLIC_VAR_NS}_${${ICU_PRIVATE_VAR_NS}_UPPER_COMPONENT}_FOUND" FALSE)
- endforeach(${ICU_PRIVATE_VAR_NS}_COMPONENT)
- if(NOT ${ICU_PUBLIC_VAR_NS}_FIND_COMPONENTS)
- set(${ICU_PUBLIC_VAR_NS}_FIND_COMPONENTS uc)
- else(NOT ${ICU_PUBLIC_VAR_NS}_FIND_COMPONENTS)
- list(APPEND ${ICU_PUBLIC_VAR_NS}_FIND_COMPONENTS uc)
- list(REMOVE_DUPLICATES ${ICU_PUBLIC_VAR_NS}_FIND_COMPONENTS)
- foreach(${ICU_PRIVATE_VAR_NS}_COMPONENT ${${ICU_PUBLIC_VAR_NS}_FIND_COMPONENTS})
- if(NOT DEFINED ${ICU_PRIVATE_VAR_NS}_COMPONENTS_${${ICU_PRIVATE_VAR_NS}_COMPONENT})
- message(FATAL_ERROR "Unknown ICU component: ${${ICU_PRIVATE_VAR_NS}_COMPONENT}")
- endif(NOT DEFINED ${ICU_PRIVATE_VAR_NS}_COMPONENTS_${${ICU_PRIVATE_VAR_NS}_COMPONENT})
- endforeach(${ICU_PRIVATE_VAR_NS}_COMPONENT)
- endif(NOT ${ICU_PUBLIC_VAR_NS}_FIND_COMPONENTS)
- find_path(
- ${ICU_PUBLIC_VAR_NS}_INCLUDE_DIRS
- NAMES unicode/utypes.h utypes.h
- HINTS ${${ICU_PRIVATE_VAR_NS}_ROOT}
- PATH_SUFFIXES "include"
- DOC "Include directories for ICU"
- )
- if(${ICU_PUBLIC_VAR_NS}_INCLUDE_DIRS)
-
- if(EXISTS "${${ICU_PUBLIC_VAR_NS}_INCLUDE_DIRS}/unicode/uvernum.h")
- file(READ "${${ICU_PUBLIC_VAR_NS}_INCLUDE_DIRS}/unicode/uvernum.h" ${ICU_PRIVATE_VAR_NS}_VERSION_HEADER_CONTENTS)
- elseif(EXISTS "${${ICU_PUBLIC_VAR_NS}_INCLUDE_DIRS}/unicode/uversion.h")
- file(READ "${${ICU_PUBLIC_VAR_NS}_INCLUDE_DIRS}/unicode/uversion.h" ${ICU_PRIVATE_VAR_NS}_VERSION_HEADER_CONTENTS)
- elseif(EXISTS "${${ICU_PUBLIC_VAR_NS}_INCLUDE_DIRS}/unicode/utypes.h")
- file(READ "${${ICU_PUBLIC_VAR_NS}_INCLUDE_DIRS}/unicode/utypes.h" ${ICU_PRIVATE_VAR_NS}_VERSION_HEADER_CONTENTS)
- elseif(EXISTS "${${ICU_PUBLIC_VAR_NS}_INCLUDE_DIRS}/utypes.h")
- file(READ "${${ICU_PUBLIC_VAR_NS}_INCLUDE_DIRS}/utypes.h" ${ICU_PRIVATE_VAR_NS}_VERSION_HEADER_CONTENTS)
- else()
- message(FATAL_ERROR "ICU version header not found")
- endif()
- if(${ICU_PRIVATE_VAR_NS}_VERSION_HEADER_CONTENTS MATCHES ".*# *define *ICU_VERSION *\"([0-9]+)\".*")
-
- set(${ICU_PUBLIC_VAR_NS}_MAJOR_VERSION "1")
- set(${ICU_PUBLIC_VAR_NS}_MINOR_VERSION "${CMAKE_MATCH_1}")
- set(${ICU_PUBLIC_VAR_NS}_PATCH_VERSION "0")
- elseif(${ICU_PRIVATE_VAR_NS}_VERSION_HEADER_CONTENTS MATCHES ".*# *define *U_ICU_VERSION_MAJOR_NUM *([0-9]+).*")
-
-
-
-
-
- set(${ICU_PUBLIC_VAR_NS}_MAJOR_VERSION "${CMAKE_MATCH_1}")
- string(REGEX REPLACE ".*# *define *U_ICU_VERSION_MINOR_NUM *([0-9]+).*" "\\1" ${ICU_PUBLIC_VAR_NS}_MINOR_VERSION "${${ICU_PRIVATE_VAR_NS}_VERSION_HEADER_CONTENTS}")
- string(REGEX REPLACE ".*# *define *U_ICU_VERSION_PATCHLEVEL_NUM *([0-9]+).*" "\\1" ${ICU_PUBLIC_VAR_NS}_PATCH_VERSION "${${ICU_PRIVATE_VAR_NS}_VERSION_HEADER_CONTENTS}")
- elseif(${ICU_PRIVATE_VAR_NS}_VERSION_HEADER_CONTENTS MATCHES ".*# *define *U_ICU_VERSION *\"(([0-9]+)(\\.[0-9]+)*)\".*")
-
- set(${ICU_PRIVATE_VAR_NS}_FULL_VERSION "${CMAKE_MATCH_1}")
- if(${ICU_PRIVATE_VAR_NS}_FULL_VERSION MATCHES "^([0-9]+)\\.([0-9]+)$")
- set(${ICU_PUBLIC_VAR_NS}_MAJOR_VERSION "${CMAKE_MATCH_1}")
- set(${ICU_PUBLIC_VAR_NS}_MINOR_VERSION "${CMAKE_MATCH_2}")
- set(${ICU_PUBLIC_VAR_NS}_PATCH_VERSION "0")
- elseif(${ICU_PRIVATE_VAR_NS}_FULL_VERSION MATCHES "^([0-9]+)\\.([0-9]+)\\.([0-9]+)")
- set(${ICU_PUBLIC_VAR_NS}_MAJOR_VERSION "${CMAKE_MATCH_1}")
- set(${ICU_PUBLIC_VAR_NS}_MINOR_VERSION "${CMAKE_MATCH_2}")
- set(${ICU_PUBLIC_VAR_NS}_PATCH_VERSION "${CMAKE_MATCH_3}")
- endif()
- else()
- message(FATAL_ERROR "failed to detect ICU version")
- endif()
- set(${ICU_PUBLIC_VAR_NS}_VERSION "${${ICU_PUBLIC_VAR_NS}_MAJOR_VERSION}.${${ICU_PUBLIC_VAR_NS}_MINOR_VERSION}.${${ICU_PUBLIC_VAR_NS}_PATCH_VERSION}")
-
-
- if(PKG_CONFIG_FOUND)
- set(${ICU_PRIVATE_VAR_NS}_COMPONENTS_DUP ${${ICU_PUBLIC_VAR_NS}_FIND_COMPONENTS})
- foreach(${ICU_PRIVATE_VAR_NS}_COMPONENT ${${ICU_PRIVATE_VAR_NS}_COMPONENTS_DUP})
- pkg_check_modules(PC_ICU_PRIVATE_VAR_NS "icu-${${ICU_PRIVATE_VAR_NS}_COMPONENT}" QUIET)
- if(${PC_ICU_PRIVATE_VAR_NS}_FOUND)
- foreach(${PC_ICU_PRIVATE_VAR_NS}_LIBRARY ${PC_ICU_LIBRARIES})
- string(REGEX REPLACE "^icu" "" ${PC_ICU_PRIVATE_VAR_NS}_STRIPPED_LIBRARY ${${PC_ICU_PRIVATE_VAR_NS}_LIBRARY})
- list(APPEND ${ICU_PUBLIC_VAR_NS}_FIND_COMPONENTS ${${PC_ICU_PRIVATE_VAR_NS}_STRIPPED_LIBRARY})
- endforeach(${PC_ICU_PRIVATE_VAR_NS}_LIBRARY)
- endif(${PC_ICU_PRIVATE_VAR_NS}_FOUND)
- endforeach(${ICU_PRIVATE_VAR_NS}_COMPONENT)
- list(REMOVE_DUPLICATES ${ICU_PUBLIC_VAR_NS}_FIND_COMPONENTS)
- endif(PKG_CONFIG_FOUND)
-
- foreach(${ICU_PRIVATE_VAR_NS}_COMPONENT ${${ICU_PUBLIC_VAR_NS}_FIND_COMPONENTS})
- set(${ICU_PRIVATE_VAR_NS}_POSSIBLE_RELEASE_NAMES )
- set(${ICU_PRIVATE_VAR_NS}_POSSIBLE_DEBUG_NAMES )
- foreach(${ICU_PRIVATE_VAR_NS}_BASE_NAME ${${ICU_PRIVATE_VAR_NS}_COMPONENTS_${${ICU_PRIVATE_VAR_NS}_COMPONENT}})
- list(APPEND ${ICU_PRIVATE_VAR_NS}_POSSIBLE_RELEASE_NAMES "${${ICU_PRIVATE_VAR_NS}_BASE_NAME}")
- list(APPEND ${ICU_PRIVATE_VAR_NS}_POSSIBLE_DEBUG_NAMES "${${ICU_PRIVATE_VAR_NS}_BASE_NAME}d")
- list(APPEND ${ICU_PRIVATE_VAR_NS}_POSSIBLE_RELEASE_NAMES "${${ICU_PRIVATE_VAR_NS}_BASE_NAME}${ICU_MAJOR_VERSION}${ICU_MINOR_VERSION}")
- list(APPEND ${ICU_PRIVATE_VAR_NS}_POSSIBLE_DEBUG_NAMES "${${ICU_PRIVATE_VAR_NS}_BASE_NAME}${ICU_MAJOR_VERSION}${ICU_MINOR_VERSION}d")
- endforeach(${ICU_PRIVATE_VAR_NS}_BASE_NAME)
- find_library(
- ${ICU_PRIVATE_VAR_NS}_LIB_RELEASE_${${ICU_PRIVATE_VAR_NS}_COMPONENT}
- NAMES ${${ICU_PRIVATE_VAR_NS}_POSSIBLE_RELEASE_NAMES}
- HINTS ${${ICU_PRIVATE_VAR_NS}_ROOT}
- PATH_SUFFIXES ${_ICU_LIB_SUFFIXES}
- DOC "Release libraries for ICU"
- )
- find_library(
- ${ICU_PRIVATE_VAR_NS}_LIB_DEBUG_${${ICU_PRIVATE_VAR_NS}_COMPONENT}
- NAMES ${${ICU_PRIVATE_VAR_NS}_POSSIBLE_DEBUG_NAMES}
- HINTS ${${ICU_PRIVATE_VAR_NS}_ROOT}
- PATH_SUFFIXES ${_ICU_LIB_SUFFIXES}
- DOC "Debug libraries for ICU"
- )
- string(TOUPPER "${${ICU_PRIVATE_VAR_NS}_COMPONENT}" ${ICU_PRIVATE_VAR_NS}_UPPER_COMPONENT)
- if(NOT ${ICU_PRIVATE_VAR_NS}_LIB_RELEASE_${${ICU_PRIVATE_VAR_NS}_COMPONENT} AND NOT ${ICU_PRIVATE_VAR_NS}_LIB_DEBUG_${${ICU_PRIVATE_VAR_NS}_COMPONENT})
- set("${ICU_PUBLIC_VAR_NS}_${${ICU_PRIVATE_VAR_NS}_UPPER_COMPONENT}_FOUND" FALSE)
- set("${ICU_PUBLIC_VAR_NS}_FOUND" FALSE)
- else(NOT ${ICU_PRIVATE_VAR_NS}_LIB_RELEASE_${${ICU_PRIVATE_VAR_NS}_COMPONENT} AND NOT ${ICU_PRIVATE_VAR_NS}_LIB_DEBUG_${${ICU_PRIVATE_VAR_NS}_COMPONENT})
- set("${ICU_PUBLIC_VAR_NS}_${${ICU_PRIVATE_VAR_NS}_UPPER_COMPONENT}_FOUND" TRUE)
- if(NOT ${ICU_PRIVATE_VAR_NS}_LIB_RELEASE_${${ICU_PRIVATE_VAR_NS}_COMPONENT})
- set(${ICU_PRIVATE_VAR_NS}_LIB_${${ICU_PRIVATE_VAR_NS}_COMPONENT} "${${ICU_PRIVATE_VAR_NS}_LIB_DEBUG_${${ICU_PRIVATE_VAR_NS}_COMPONENT}}")
- elseif(NOT ${ICU_PRIVATE_VAR_NS}_LIB_DEBUG_${${ICU_PRIVATE_VAR_NS}_COMPONENT})
- set(${ICU_PRIVATE_VAR_NS}_LIB_${${ICU_PRIVATE_VAR_NS}_COMPONENT} "${${ICU_PRIVATE_VAR_NS}_LIB_RELEASE_${${ICU_PRIVATE_VAR_NS}_COMPONENT}}")
- else()
- set(
- ${ICU_PRIVATE_VAR_NS}_LIB_${${ICU_PRIVATE_VAR_NS}_COMPONENT}
- optimized ${${ICU_PRIVATE_VAR_NS}_LIB_RELEASE_${${ICU_PRIVATE_VAR_NS}_COMPONENT}}
- debug ${${ICU_PRIVATE_VAR_NS}_LIB_DEBUG_${${ICU_PRIVATE_VAR_NS}_COMPONENT}}
- )
- endif()
- list(APPEND ${ICU_PUBLIC_VAR_NS}_LIBRARIES ${${ICU_PRIVATE_VAR_NS}_LIB_${${ICU_PRIVATE_VAR_NS}_COMPONENT}})
- endif(NOT ${ICU_PRIVATE_VAR_NS}_LIB_RELEASE_${${ICU_PRIVATE_VAR_NS}_COMPONENT} AND NOT ${ICU_PRIVATE_VAR_NS}_LIB_DEBUG_${${ICU_PRIVATE_VAR_NS}_COMPONENT})
- endforeach(${ICU_PRIVATE_VAR_NS}_COMPONENT)
-
- find_program(${ICU_PUBLIC_VAR_NS}_CONFIG_EXECUTABLE icu-config HINTS ${${ICU_PRIVATE_VAR_NS}_ROOT})
- if(${ICU_PUBLIC_VAR_NS}_CONFIG_EXECUTABLE)
- execute_process(COMMAND ${${ICU_PUBLIC_VAR_NS}_CONFIG_EXECUTABLE} --cflags OUTPUT_VARIABLE ${ICU_PUBLIC_VAR_NS}_C_FLAGS OUTPUT_STRIP_TRAILING_WHITESPACE)
- execute_process(COMMAND ${${ICU_PUBLIC_VAR_NS}_CONFIG_EXECUTABLE} --cxxflags OUTPUT_VARIABLE ${ICU_PUBLIC_VAR_NS}_CXX_FLAGS OUTPUT_STRIP_TRAILING_WHITESPACE)
- execute_process(COMMAND ${${ICU_PUBLIC_VAR_NS}_CONFIG_EXECUTABLE} --cppflags OUTPUT_VARIABLE ${ICU_PUBLIC_VAR_NS}_CPP_FLAGS OUTPUT_STRIP_TRAILING_WHITESPACE)
- execute_process(COMMAND ${${ICU_PUBLIC_VAR_NS}_CONFIG_EXECUTABLE} --cflags-dynamic OUTPUT_VARIABLE ${ICU_PUBLIC_VAR_NS}_C_SHARED_FLAGS OUTPUT_STRIP_TRAILING_WHITESPACE)
- execute_process(COMMAND ${${ICU_PUBLIC_VAR_NS}_CONFIG_EXECUTABLE} --cxxflags-dynamic OUTPUT_VARIABLE ${ICU_PUBLIC_VAR_NS}_CXX_SHARED_FLAGS OUTPUT_STRIP_TRAILING_WHITESPACE)
- execute_process(COMMAND ${${ICU_PUBLIC_VAR_NS}_CONFIG_EXECUTABLE} --cppflags-dynamic OUTPUT_VARIABLE ${ICU_PUBLIC_VAR_NS}_CPP_SHARED_FLAGS OUTPUT_STRIP_TRAILING_WHITESPACE)
- endif(${ICU_PUBLIC_VAR_NS}_CONFIG_EXECUTABLE)
-
- include(FindPackageHandleStandardArgs)
- if(${ICU_PUBLIC_VAR_NS}_FIND_REQUIRED AND NOT ${ICU_PUBLIC_VAR_NS}_FIND_QUIETLY)
- find_package_handle_standard_args(
- ${ICU_PUBLIC_VAR_NS}
- REQUIRED_VARS ${ICU_PUBLIC_VAR_NS}_LIBRARIES ${ICU_PUBLIC_VAR_NS}_INCLUDE_DIRS
- VERSION_VAR ${ICU_PUBLIC_VAR_NS}_VERSION
- )
- else(${ICU_PUBLIC_VAR_NS}_FIND_REQUIRED AND NOT ${ICU_PUBLIC_VAR_NS}_FIND_QUIETLY)
- find_package_handle_standard_args(${ICU_PUBLIC_VAR_NS} "ICU not found" ${ICU_PUBLIC_VAR_NS}_LIBRARIES ${ICU_PUBLIC_VAR_NS}_INCLUDE_DIRS)
- endif(${ICU_PUBLIC_VAR_NS}_FIND_REQUIRED AND NOT ${ICU_PUBLIC_VAR_NS}_FIND_QUIETLY)
- else(${ICU_PUBLIC_VAR_NS}_INCLUDE_DIRS)
- if(${ICU_PUBLIC_VAR_NS}_FIND_REQUIRED AND NOT ${ICU_PUBLIC_VAR_NS}_FIND_QUIETLY)
- message(FATAL_ERROR "Could not find ICU include directory")
- endif(${ICU_PUBLIC_VAR_NS}_FIND_REQUIRED AND NOT ${ICU_PUBLIC_VAR_NS}_FIND_QUIETLY)
- endif(${ICU_PUBLIC_VAR_NS}_INCLUDE_DIRS)
- mark_as_advanced(
- ${ICU_PUBLIC_VAR_NS}_INCLUDE_DIRS
- ${ICU_PUBLIC_VAR_NS}_LIBRARIES
- )
- icudebug("FIND_COMPONENTS")
- icudebug("FIND_REQUIRED")
- icudebug("FIND_QUIETLY")
- icudebug("FIND_VERSION")
- icudebug("FOUND")
- icudebug("UC_FOUND")
- icudebug("I18N_FOUND")
- icudebug("IO_FOUND")
- icudebug("LE_FOUND")
- icudebug("LX_FOUND")
- icudebug("DATA_FOUND")
- icudebug("C_FLAGS")
- icudebug("CPP_FLAGS")
- icudebug("CXX_FLAGS")
- icudebug("C_SHARED_FLAGS")
- icudebug("CPP_SHARED_FLAGS")
- icudebug("CXX_SHARED_FLAGS")
- icudebug("INCLUDE_DIRS")
- icudebug("LIBRARIES")
- icudebug("MAJOR_VERSION")
- icudebug("MINOR_VERSION")
- icudebug("PATCH_VERSION")
- icudebug("VERSION")
|