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")