Mercurial > thymian
comparison 3rdparty/vmime/cmake/FindICU.cmake @ 0:a4671277546c tip
created the repository for the thymian project
| author | ferencd |
|---|---|
| date | Tue, 17 Aug 2021 11:19:54 +0200 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| -1:000000000000 | 0:a4671277546c |
|---|---|
| 1 # This module can find the International Components for Unicode (ICU) Library | |
| 2 # | |
| 3 # Requirements: | |
| 4 # - CMake >= 2.8.3 (for new version of find_package_handle_standard_args) | |
| 5 # | |
| 6 # The following variables will be defined for your use: | |
| 7 # - ICU_FOUND : were all of your specified components found (include dependencies)? | |
| 8 # - ICU_INCLUDE_DIRS : ICU include directory | |
| 9 # - ICU_LIBRARIES : ICU libraries | |
| 10 # - ICU_VERSION : complete version of ICU (x.y.z) | |
| 11 # - ICU_MAJOR_VERSION : major version of ICU | |
| 12 # - ICU_MINOR_VERSION : minor version of ICU | |
| 13 # - ICU_PATCH_VERSION : patch version of ICU | |
| 14 # - ICU_<COMPONENT>_FOUND : were <COMPONENT> found? (FALSE for non specified component if it is not a dependency) | |
| 15 # | |
| 16 # For windows or non standard installation, define ICU_ROOT variable to point to the root installation of ICU. Two ways: | |
| 17 # - run cmake with -DICU_ROOT=<PATH> | |
| 18 # - define an environment variable with the same name before running cmake | |
| 19 # With cmake-gui, before pressing "Configure": | |
| 20 # 1) Press "Add Entry" button | |
| 21 # 2) Add a new entry defined as: | |
| 22 # - Name: ICU_ROOT | |
| 23 # - Type: choose PATH in the selection list | |
| 24 # - Press "..." button and select the root installation of ICU | |
| 25 # | |
| 26 # Example Usage: | |
| 27 # | |
| 28 # 1. Copy this file in the root of your project source directory | |
| 29 # 2. Then, tell CMake to search this non-standard module in your project directory by adding to your CMakeLists.txt: | |
| 30 # set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}) | |
| 31 # 3. Finally call find_package() once, here are some examples to pick from | |
| 32 # | |
| 33 # Require ICU 4.4 or later | |
| 34 # find_package(ICU 4.4 REQUIRED) | |
| 35 # | |
| 36 # if(ICU_FOUND) | |
| 37 # include_directories(${ICU_INCLUDE_DIRS}) | |
| 38 # add_executable(myapp myapp.c) | |
| 39 # target_link_libraries(myapp ${ICU_LIBRARIES}) | |
| 40 # endif(ICU_FOUND) | |
| 41 | |
| 42 #============================================================================= | |
| 43 # Copyright (c) 2011-2012, julp | |
| 44 # https://github.com/julp/FindICU.cmake | |
| 45 # | |
| 46 # Distributed under the OSI-approved BSD License | |
| 47 # | |
| 48 # This software is distributed WITHOUT ANY WARRANTY; without even the | |
| 49 # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | |
| 50 #============================================================================= | |
| 51 | |
| 52 find_package(PkgConfig QUIET) | |
| 53 | |
| 54 ########## Private ########## | |
| 55 set(ICU_PUBLIC_VAR_NS "ICU") # Prefix for all ICU relative public variables | |
| 56 set(ICU_PRIVATE_VAR_NS "_${ICU_PUBLIC_VAR_NS}") # Prefix for all ICU relative internal variables | |
| 57 set(PC_ICU_PRIVATE_VAR_NS "_PC${ICU_PRIVATE_VAR_NS}") # Prefix for all pkg-config relative internal variables | |
| 58 | |
| 59 function(icudebug _VARNAME) | |
| 60 if(${ICU_PUBLIC_VAR_NS}_DEBUG) | |
| 61 if(DEFINED ${ICU_PUBLIC_VAR_NS}_${_VARNAME}) | |
| 62 message("${ICU_PUBLIC_VAR_NS}_${_VARNAME} = ${${ICU_PUBLIC_VAR_NS}_${_VARNAME}}") | |
| 63 else(DEFINED ${ICU_PUBLIC_VAR_NS}_${_VARNAME}) | |
| 64 message("${ICU_PUBLIC_VAR_NS}_${_VARNAME} = <UNDEFINED>") | |
| 65 endif(DEFINED ${ICU_PUBLIC_VAR_NS}_${_VARNAME}) | |
| 66 endif(${ICU_PUBLIC_VAR_NS}_DEBUG) | |
| 67 endfunction(icudebug) | |
| 68 | |
| 69 set(${ICU_PRIVATE_VAR_NS}_ROOT "") | |
| 70 if(DEFINED ENV{ICU_ROOT}) | |
| 71 set(${ICU_PRIVATE_VAR_NS}_ROOT "$ENV{ICU_ROOT}") | |
| 72 endif(DEFINED ENV{ICU_ROOT}) | |
| 73 if (DEFINED ICU_ROOT) | |
| 74 set(${ICU_PRIVATE_VAR_NS}_ROOT "${ICU_ROOT}") | |
| 75 endif(DEFINED ICU_ROOT) | |
| 76 | |
| 77 set(${ICU_PRIVATE_VAR_NS}_BIN_SUFFIXES ) | |
| 78 set(${ICU_PRIVATE_VAR_NS}_LIB_SUFFIXES ) | |
| 79 if(CMAKE_SIZEOF_VOID_P EQUAL 8) | |
| 80 list(APPEND ${ICU_PRIVATE_VAR_NS}_BIN_SUFFIXES "bin64") | |
| 81 list(APPEND ${ICU_PRIVATE_VAR_NS}_LIB_SUFFIXES "lib64") | |
| 82 endif(CMAKE_SIZEOF_VOID_P EQUAL 8) | |
| 83 list(APPEND ${ICU_PRIVATE_VAR_NS}_BIN_SUFFIXES "bin") | |
| 84 list(APPEND ${ICU_PRIVATE_VAR_NS}_LIB_SUFFIXES "lib") | |
| 85 | |
| 86 set(${ICU_PRIVATE_VAR_NS}_COMPONENTS ) | |
| 87 # <icu component name> <library name 1> ... <library name N> | |
| 88 macro(icu_declare_component _NAME) | |
| 89 list(APPEND ${ICU_PRIVATE_VAR_NS}_COMPONENTS ${_NAME}) | |
| 90 set("${ICU_PRIVATE_VAR_NS}_COMPONENTS_${_NAME}" ${ARGN}) | |
| 91 endmacro(icu_declare_component) | |
| 92 | |
| 93 icu_declare_component(data icudata) | |
| 94 icu_declare_component(uc icuuc) # Common and Data libraries | |
| 95 icu_declare_component(i18n icui18n icuin) # Internationalization library | |
| 96 icu_declare_component(io icuio ustdio) # Stream and I/O Library | |
| 97 icu_declare_component(le icule) # Layout library | |
| 98 icu_declare_component(lx iculx) # Paragraph Layout library | |
| 99 | |
| 100 ########## Public ########## | |
| 101 set(${ICU_PUBLIC_VAR_NS}_FOUND TRUE) | |
| 102 set(${ICU_PUBLIC_VAR_NS}_LIBRARIES ) | |
| 103 set(${ICU_PUBLIC_VAR_NS}_INCLUDE_DIRS ) | |
| 104 set(${ICU_PUBLIC_VAR_NS}_C_FLAGS "") | |
| 105 set(${ICU_PUBLIC_VAR_NS}_CXX_FLAGS "") | |
| 106 set(${ICU_PUBLIC_VAR_NS}_CPP_FLAGS "") | |
| 107 set(${ICU_PUBLIC_VAR_NS}_C_SHARED_FLAGS "") | |
| 108 set(${ICU_PUBLIC_VAR_NS}_CXX_SHARED_FLAGS "") | |
| 109 set(${ICU_PUBLIC_VAR_NS}_CPP_SHARED_FLAGS "") | |
| 110 foreach(${ICU_PRIVATE_VAR_NS}_COMPONENT ${${ICU_PRIVATE_VAR_NS}_COMPONENTS}) | |
| 111 string(TOUPPER "${${ICU_PRIVATE_VAR_NS}_COMPONENT}" ${ICU_PRIVATE_VAR_NS}_UPPER_COMPONENT) | |
| 112 set("${ICU_PUBLIC_VAR_NS}_${${ICU_PRIVATE_VAR_NS}_UPPER_COMPONENT}_FOUND" FALSE) # may be done in the icu_declare_component macro | |
| 113 endforeach(${ICU_PRIVATE_VAR_NS}_COMPONENT) | |
| 114 | |
| 115 # Check components | |
| 116 if(NOT ${ICU_PUBLIC_VAR_NS}_FIND_COMPONENTS) # uc required at least | |
| 117 set(${ICU_PUBLIC_VAR_NS}_FIND_COMPONENTS uc) | |
| 118 else(NOT ${ICU_PUBLIC_VAR_NS}_FIND_COMPONENTS) | |
| 119 list(APPEND ${ICU_PUBLIC_VAR_NS}_FIND_COMPONENTS uc) | |
| 120 list(REMOVE_DUPLICATES ${ICU_PUBLIC_VAR_NS}_FIND_COMPONENTS) | |
| 121 foreach(${ICU_PRIVATE_VAR_NS}_COMPONENT ${${ICU_PUBLIC_VAR_NS}_FIND_COMPONENTS}) | |
| 122 if(NOT DEFINED ${ICU_PRIVATE_VAR_NS}_COMPONENTS_${${ICU_PRIVATE_VAR_NS}_COMPONENT}) | |
| 123 message(FATAL_ERROR "Unknown ICU component: ${${ICU_PRIVATE_VAR_NS}_COMPONENT}") | |
| 124 endif(NOT DEFINED ${ICU_PRIVATE_VAR_NS}_COMPONENTS_${${ICU_PRIVATE_VAR_NS}_COMPONENT}) | |
| 125 endforeach(${ICU_PRIVATE_VAR_NS}_COMPONENT) | |
| 126 endif(NOT ${ICU_PUBLIC_VAR_NS}_FIND_COMPONENTS) | |
| 127 | |
| 128 # Includes | |
| 129 find_path( | |
| 130 ${ICU_PUBLIC_VAR_NS}_INCLUDE_DIRS | |
| 131 NAMES unicode/utypes.h utypes.h | |
| 132 HINTS ${${ICU_PRIVATE_VAR_NS}_ROOT} | |
| 133 PATH_SUFFIXES "include" | |
| 134 DOC "Include directories for ICU" | |
| 135 ) | |
| 136 | |
| 137 if(${ICU_PUBLIC_VAR_NS}_INCLUDE_DIRS) | |
| 138 ########## <part to keep synced with tests/version/CMakeLists.txt> ########## | |
| 139 if(EXISTS "${${ICU_PUBLIC_VAR_NS}_INCLUDE_DIRS}/unicode/uvernum.h") # ICU >= 4 | |
| 140 file(READ "${${ICU_PUBLIC_VAR_NS}_INCLUDE_DIRS}/unicode/uvernum.h" ${ICU_PRIVATE_VAR_NS}_VERSION_HEADER_CONTENTS) | |
| 141 elseif(EXISTS "${${ICU_PUBLIC_VAR_NS}_INCLUDE_DIRS}/unicode/uversion.h") # ICU [2;4[ | |
| 142 file(READ "${${ICU_PUBLIC_VAR_NS}_INCLUDE_DIRS}/unicode/uversion.h" ${ICU_PRIVATE_VAR_NS}_VERSION_HEADER_CONTENTS) | |
| 143 elseif(EXISTS "${${ICU_PUBLIC_VAR_NS}_INCLUDE_DIRS}/unicode/utypes.h") # ICU [1.4;2[ | |
| 144 file(READ "${${ICU_PUBLIC_VAR_NS}_INCLUDE_DIRS}/unicode/utypes.h" ${ICU_PRIVATE_VAR_NS}_VERSION_HEADER_CONTENTS) | |
| 145 elseif(EXISTS "${${ICU_PUBLIC_VAR_NS}_INCLUDE_DIRS}/utypes.h") # ICU 1.3 | |
| 146 file(READ "${${ICU_PUBLIC_VAR_NS}_INCLUDE_DIRS}/utypes.h" ${ICU_PRIVATE_VAR_NS}_VERSION_HEADER_CONTENTS) | |
| 147 else() | |
| 148 message(FATAL_ERROR "ICU version header not found") | |
| 149 endif() | |
| 150 | |
| 151 if(${ICU_PRIVATE_VAR_NS}_VERSION_HEADER_CONTENTS MATCHES ".*# *define *ICU_VERSION *\"([0-9]+)\".*") # ICU 1.3 | |
| 152 # [1.3;1.4[ as #define ICU_VERSION "3" (no patch version, ie all 1.3.X versions will be detected as 1.3.0) | |
| 153 set(${ICU_PUBLIC_VAR_NS}_MAJOR_VERSION "1") | |
| 154 set(${ICU_PUBLIC_VAR_NS}_MINOR_VERSION "${CMAKE_MATCH_1}") | |
| 155 set(${ICU_PUBLIC_VAR_NS}_PATCH_VERSION "0") | |
| 156 elseif(${ICU_PRIVATE_VAR_NS}_VERSION_HEADER_CONTENTS MATCHES ".*# *define *U_ICU_VERSION_MAJOR_NUM *([0-9]+).*") | |
| 157 set(${ICU_PUBLIC_VAR_NS}_MAJOR_VERSION "${CMAKE_MATCH_1}") | |
| 158 # | |
| 159 # Since version 4.9.1, ICU release version numbering was totaly changed, see: | |
| 160 # - http://site.icu-project.org/download/49 | |
| 161 # - http://userguide.icu-project.org/design#TOC-Version-Numbers-in-ICU | |
| 162 # | |
| 163 if(${ICU_PUBLIC_VAR_NS}_MAJOR_VERSION LESS 49) | |
| 164 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}") | |
| 165 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}") | |
| 166 else(${ICU_PUBLIC_VAR_NS}_MAJOR_VERSION LESS 49) | |
| 167 string(REGEX MATCH [0-9]$ ${ICU_PUBLIC_VAR_NS}_MINOR_VERSION "${${ICU_PUBLIC_VAR_NS}_MAJOR_VERSION}") | |
| 168 string(REGEX REPLACE [0-9]$ "" ${ICU_PUBLIC_VAR_NS}_MAJOR_VERSION "${${ICU_PUBLIC_VAR_NS}_MAJOR_VERSION}") | |
| 169 string(REGEX REPLACE ".*# *define *U_ICU_VERSION_MINOR_NUM *([0-9]+).*" "\\1" ${ICU_PUBLIC_VAR_NS}_PATCH_VERSION "${${ICU_PRIVATE_VAR_NS}_VERSION_HEADER_CONTENTS}") | |
| 170 endif(${ICU_PUBLIC_VAR_NS}_MAJOR_VERSION LESS 49) | |
| 171 elseif(${ICU_PRIVATE_VAR_NS}_VERSION_HEADER_CONTENTS MATCHES ".*# *define *U_ICU_VERSION *\"(([0-9]+)(\\.[0-9]+)*)\".*") # ICU [1.4;1.8[ | |
| 172 # [1.4;1.8[ as #define U_ICU_VERSION "1.4.1.2" but it seems that some 1.4.1(?:\.\d)? have releasing error and appears as 1.4.0 | |
| 173 set(${ICU_PRIVATE_VAR_NS}_FULL_VERSION "${CMAKE_MATCH_1}") # copy CMAKE_MATCH_1, no longer valid on the following if | |
| 174 if(${ICU_PRIVATE_VAR_NS}_FULL_VERSION MATCHES "^([0-9]+)\\.([0-9]+)$") | |
| 175 set(${ICU_PUBLIC_VAR_NS}_MAJOR_VERSION "${CMAKE_MATCH_1}") | |
| 176 set(${ICU_PUBLIC_VAR_NS}_MINOR_VERSION "${CMAKE_MATCH_2}") | |
| 177 set(${ICU_PUBLIC_VAR_NS}_PATCH_VERSION "0") | |
| 178 elseif(${ICU_PRIVATE_VAR_NS}_FULL_VERSION MATCHES "^([0-9]+)\\.([0-9]+)\\.([0-9]+)") | |
| 179 set(${ICU_PUBLIC_VAR_NS}_MAJOR_VERSION "${CMAKE_MATCH_1}") | |
| 180 set(${ICU_PUBLIC_VAR_NS}_MINOR_VERSION "${CMAKE_MATCH_2}") | |
| 181 set(${ICU_PUBLIC_VAR_NS}_PATCH_VERSION "${CMAKE_MATCH_3}") | |
| 182 endif() | |
| 183 else() | |
| 184 message(FATAL_ERROR "failed to detect ICU version") | |
| 185 endif() | |
| 186 set(${ICU_PUBLIC_VAR_NS}_VERSION "${${ICU_PUBLIC_VAR_NS}_MAJOR_VERSION}.${${ICU_PUBLIC_VAR_NS}_MINOR_VERSION}.${${ICU_PUBLIC_VAR_NS}_PATCH_VERSION}") | |
| 187 ########## </part to keep synced with tests/version/CMakeLists.txt> ########## | |
| 188 | |
| 189 # Check dependencies (implies pkg-config) | |
| 190 if(PKG_CONFIG_FOUND) | |
| 191 set(${ICU_PRIVATE_VAR_NS}_COMPONENTS_DUP ${${ICU_PUBLIC_VAR_NS}_FIND_COMPONENTS}) | |
| 192 foreach(${ICU_PRIVATE_VAR_NS}_COMPONENT ${${ICU_PRIVATE_VAR_NS}_COMPONENTS_DUP}) | |
| 193 pkg_check_modules(PC_ICU_PRIVATE_VAR_NS "icu-${${ICU_PRIVATE_VAR_NS}_COMPONENT}" QUIET) | |
| 194 | |
| 195 if(${PC_ICU_PRIVATE_VAR_NS}_FOUND) | |
| 196 foreach(${PC_ICU_PRIVATE_VAR_NS}_LIBRARY ${PC_ICU_LIBRARIES}) | |
| 197 string(REGEX REPLACE "^icu" "" ${PC_ICU_PRIVATE_VAR_NS}_STRIPPED_LIBRARY ${${PC_ICU_PRIVATE_VAR_NS}_LIBRARY}) | |
| 198 list(APPEND ${ICU_PUBLIC_VAR_NS}_FIND_COMPONENTS ${${PC_ICU_PRIVATE_VAR_NS}_STRIPPED_LIBRARY}) | |
| 199 endforeach(${PC_ICU_PRIVATE_VAR_NS}_LIBRARY) | |
| 200 endif(${PC_ICU_PRIVATE_VAR_NS}_FOUND) | |
| 201 endforeach(${ICU_PRIVATE_VAR_NS}_COMPONENT) | |
| 202 list(REMOVE_DUPLICATES ${ICU_PUBLIC_VAR_NS}_FIND_COMPONENTS) | |
| 203 endif(PKG_CONFIG_FOUND) | |
| 204 | |
| 205 # Check libraries | |
| 206 foreach(${ICU_PRIVATE_VAR_NS}_COMPONENT ${${ICU_PUBLIC_VAR_NS}_FIND_COMPONENTS}) | |
| 207 set(${ICU_PRIVATE_VAR_NS}_POSSIBLE_RELEASE_NAMES ) | |
| 208 set(${ICU_PRIVATE_VAR_NS}_POSSIBLE_DEBUG_NAMES ) | |
| 209 foreach(${ICU_PRIVATE_VAR_NS}_BASE_NAME ${${ICU_PRIVATE_VAR_NS}_COMPONENTS_${${ICU_PRIVATE_VAR_NS}_COMPONENT}}) | |
| 210 list(APPEND ${ICU_PRIVATE_VAR_NS}_POSSIBLE_RELEASE_NAMES "${${ICU_PRIVATE_VAR_NS}_BASE_NAME}") | |
| 211 list(APPEND ${ICU_PRIVATE_VAR_NS}_POSSIBLE_DEBUG_NAMES "${${ICU_PRIVATE_VAR_NS}_BASE_NAME}d") | |
| 212 list(APPEND ${ICU_PRIVATE_VAR_NS}_POSSIBLE_RELEASE_NAMES "${${ICU_PRIVATE_VAR_NS}_BASE_NAME}${ICU_MAJOR_VERSION}${ICU_MINOR_VERSION}") | |
| 213 list(APPEND ${ICU_PRIVATE_VAR_NS}_POSSIBLE_DEBUG_NAMES "${${ICU_PRIVATE_VAR_NS}_BASE_NAME}${ICU_MAJOR_VERSION}${ICU_MINOR_VERSION}d") | |
| 214 endforeach(${ICU_PRIVATE_VAR_NS}_BASE_NAME) | |
| 215 | |
| 216 find_library( | |
| 217 ${ICU_PRIVATE_VAR_NS}_LIB_RELEASE_${${ICU_PRIVATE_VAR_NS}_COMPONENT} | |
| 218 NAMES ${${ICU_PRIVATE_VAR_NS}_POSSIBLE_RELEASE_NAMES} | |
| 219 HINTS ${${ICU_PRIVATE_VAR_NS}_ROOT} | |
| 220 PATH_SUFFIXES ${_ICU_LIB_SUFFIXES} | |
| 221 DOC "Release libraries for ICU" | |
| 222 ) | |
| 223 find_library( | |
| 224 ${ICU_PRIVATE_VAR_NS}_LIB_DEBUG_${${ICU_PRIVATE_VAR_NS}_COMPONENT} | |
| 225 NAMES ${${ICU_PRIVATE_VAR_NS}_POSSIBLE_DEBUG_NAMES} | |
| 226 HINTS ${${ICU_PRIVATE_VAR_NS}_ROOT} | |
| 227 PATH_SUFFIXES ${_ICU_LIB_SUFFIXES} | |
| 228 DOC "Debug libraries for ICU" | |
| 229 ) | |
| 230 | |
| 231 string(TOUPPER "${${ICU_PRIVATE_VAR_NS}_COMPONENT}" ${ICU_PRIVATE_VAR_NS}_UPPER_COMPONENT) | |
| 232 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}) # both not found | |
| 233 set("${ICU_PUBLIC_VAR_NS}_${${ICU_PRIVATE_VAR_NS}_UPPER_COMPONENT}_FOUND" FALSE) | |
| 234 set("${ICU_PUBLIC_VAR_NS}_FOUND" FALSE) | |
| 235 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}) # one or both found | |
| 236 set("${ICU_PUBLIC_VAR_NS}_${${ICU_PRIVATE_VAR_NS}_UPPER_COMPONENT}_FOUND" TRUE) | |
| 237 if(NOT ${ICU_PRIVATE_VAR_NS}_LIB_RELEASE_${${ICU_PRIVATE_VAR_NS}_COMPONENT}) # release not found => we are in debug | |
| 238 set(${ICU_PRIVATE_VAR_NS}_LIB_${${ICU_PRIVATE_VAR_NS}_COMPONENT} "${${ICU_PRIVATE_VAR_NS}_LIB_DEBUG_${${ICU_PRIVATE_VAR_NS}_COMPONENT}}") | |
| 239 elseif(NOT ${ICU_PRIVATE_VAR_NS}_LIB_DEBUG_${${ICU_PRIVATE_VAR_NS}_COMPONENT}) # debug not found => we are in release | |
| 240 set(${ICU_PRIVATE_VAR_NS}_LIB_${${ICU_PRIVATE_VAR_NS}_COMPONENT} "${${ICU_PRIVATE_VAR_NS}_LIB_RELEASE_${${ICU_PRIVATE_VAR_NS}_COMPONENT}}") | |
| 241 else() # both found | |
| 242 set( | |
| 243 ${ICU_PRIVATE_VAR_NS}_LIB_${${ICU_PRIVATE_VAR_NS}_COMPONENT} | |
| 244 optimized ${${ICU_PRIVATE_VAR_NS}_LIB_RELEASE_${${ICU_PRIVATE_VAR_NS}_COMPONENT}} | |
| 245 debug ${${ICU_PRIVATE_VAR_NS}_LIB_DEBUG_${${ICU_PRIVATE_VAR_NS}_COMPONENT}} | |
| 246 ) | |
| 247 endif() | |
| 248 list(APPEND ${ICU_PUBLIC_VAR_NS}_LIBRARIES ${${ICU_PRIVATE_VAR_NS}_LIB_${${ICU_PRIVATE_VAR_NS}_COMPONENT}}) | |
| 249 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}) | |
| 250 endforeach(${ICU_PRIVATE_VAR_NS}_COMPONENT) | |
| 251 | |
| 252 # Try to find out compiler flags | |
| 253 find_program(${ICU_PUBLIC_VAR_NS}_CONFIG_EXECUTABLE HINTS ${${ICU_PRIVATE_VAR_NS}_ROOT} icu-config) | |
| 254 if(${ICU_PUBLIC_VAR_NS}_CONFIG_EXECUTABLE) | |
| 255 execute_process(COMMAND ${${ICU_PUBLIC_VAR_NS}_CONFIG_EXECUTABLE} --cflags OUTPUT_VARIABLE ${ICU_PUBLIC_VAR_NS}_C_FLAGS OUTPUT_STRIP_TRAILING_WHITESPACE) | |
| 256 execute_process(COMMAND ${${ICU_PUBLIC_VAR_NS}_CONFIG_EXECUTABLE} --cxxflags OUTPUT_VARIABLE ${ICU_PUBLIC_VAR_NS}_CXX_FLAGS OUTPUT_STRIP_TRAILING_WHITESPACE) | |
| 257 execute_process(COMMAND ${${ICU_PUBLIC_VAR_NS}_CONFIG_EXECUTABLE} --cppflags OUTPUT_VARIABLE ${ICU_PUBLIC_VAR_NS}_CPP_FLAGS OUTPUT_STRIP_TRAILING_WHITESPACE) | |
| 258 | |
| 259 execute_process(COMMAND ${${ICU_PUBLIC_VAR_NS}_CONFIG_EXECUTABLE} --cflags-dynamic OUTPUT_VARIABLE ${ICU_PUBLIC_VAR_NS}_C_SHARED_FLAGS OUTPUT_STRIP_TRAILING_WHITESPACE) | |
| 260 execute_process(COMMAND ${${ICU_PUBLIC_VAR_NS}_CONFIG_EXECUTABLE} --cxxflags-dynamic OUTPUT_VARIABLE ${ICU_PUBLIC_VAR_NS}_CXX_SHARED_FLAGS OUTPUT_STRIP_TRAILING_WHITESPACE) | |
| 261 execute_process(COMMAND ${${ICU_PUBLIC_VAR_NS}_CONFIG_EXECUTABLE} --cppflags-dynamic OUTPUT_VARIABLE ${ICU_PUBLIC_VAR_NS}_CPP_SHARED_FLAGS OUTPUT_STRIP_TRAILING_WHITESPACE) | |
| 262 endif(${ICU_PUBLIC_VAR_NS}_CONFIG_EXECUTABLE) | |
| 263 | |
| 264 # Check find_package arguments | |
| 265 include(FindPackageHandleStandardArgs) | |
| 266 if(${ICU_PUBLIC_VAR_NS}_FIND_REQUIRED AND NOT ${ICU_PUBLIC_VAR_NS}_FIND_QUIETLY) | |
| 267 find_package_handle_standard_args( | |
| 268 ${ICU_PUBLIC_VAR_NS} | |
| 269 REQUIRED_VARS ${ICU_PUBLIC_VAR_NS}_LIBRARIES ${ICU_PUBLIC_VAR_NS}_INCLUDE_DIRS | |
| 270 VERSION_VAR ${ICU_PUBLIC_VAR_NS}_VERSION | |
| 271 ) | |
| 272 else(${ICU_PUBLIC_VAR_NS}_FIND_REQUIRED AND NOT ${ICU_PUBLIC_VAR_NS}_FIND_QUIETLY) | |
| 273 find_package_handle_standard_args(${ICU_PUBLIC_VAR_NS} "ICU not found" ${ICU_PUBLIC_VAR_NS}_LIBRARIES ${ICU_PUBLIC_VAR_NS}_INCLUDE_DIRS) | |
| 274 endif(${ICU_PUBLIC_VAR_NS}_FIND_REQUIRED AND NOT ${ICU_PUBLIC_VAR_NS}_FIND_QUIETLY) | |
| 275 else(${ICU_PUBLIC_VAR_NS}_INCLUDE_DIRS) | |
| 276 if(${ICU_PUBLIC_VAR_NS}_FIND_REQUIRED AND NOT ${ICU_PUBLIC_VAR_NS}_FIND_QUIETLY) | |
| 277 message(FATAL_ERROR "Could not find ICU include directory") | |
| 278 endif(${ICU_PUBLIC_VAR_NS}_FIND_REQUIRED AND NOT ${ICU_PUBLIC_VAR_NS}_FIND_QUIETLY) | |
| 279 endif(${ICU_PUBLIC_VAR_NS}_INCLUDE_DIRS) | |
| 280 | |
| 281 mark_as_advanced( | |
| 282 ${ICU_PUBLIC_VAR_NS}_INCLUDE_DIRS | |
| 283 ${ICU_PUBLIC_VAR_NS}_LIBRARIES | |
| 284 ) | |
| 285 | |
| 286 # IN (args) | |
| 287 icudebug("FIND_COMPONENTS") | |
| 288 icudebug("FIND_REQUIRED") | |
| 289 icudebug("FIND_QUIETLY") | |
| 290 icudebug("FIND_VERSION") | |
| 291 # OUT | |
| 292 # Found | |
| 293 icudebug("FOUND") | |
| 294 icudebug("UC_FOUND") | |
| 295 icudebug("I18N_FOUND") | |
| 296 icudebug("IO_FOUND") | |
| 297 icudebug("LE_FOUND") | |
| 298 icudebug("LX_FOUND") | |
| 299 icudebug("DATA_FOUND") | |
| 300 # Flags | |
| 301 icudebug("C_FLAGS") | |
| 302 icudebug("CPP_FLAGS") | |
| 303 icudebug("CXX_FLAGS") | |
| 304 icudebug("C_SHARED_FLAGS") | |
| 305 icudebug("CPP_SHARED_FLAGS") | |
| 306 icudebug("CXX_SHARED_FLAGS") | |
| 307 # Linking | |
| 308 icudebug("INCLUDE_DIRS") | |
| 309 icudebug("LIBRARIES") | |
| 310 # Version | |
| 311 icudebug("MAJOR_VERSION") | |
| 312 icudebug("MINOR_VERSION") | |
| 313 icudebug("PATCH_VERSION") | |
| 314 icudebug("VERSION") |
