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-2013, julp 44# 45# Distributed under the OSI-approved BSD License 46# 47# This software is distributed WITHOUT ANY WARRANTY; without even the 48# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 49#============================================================================= 50 51find_package(PkgConfig QUIET) 52 53########## Private ########## 54if(NOT DEFINED ICU_PUBLIC_VAR_NS) 55 set(ICU_PUBLIC_VAR_NS "ICU") # Prefix for all ICU relative public variables 56endif(NOT DEFINED ICU_PUBLIC_VAR_NS) 57if(NOT DEFINED ICU_PRIVATE_VAR_NS) 58 set(ICU_PRIVATE_VAR_NS "_${ICU_PUBLIC_VAR_NS}") # Prefix for all ICU relative internal variables 59endif(NOT DEFINED ICU_PRIVATE_VAR_NS) 60if(NOT DEFINED PC_ICU_PRIVATE_VAR_NS) 61 set(PC_ICU_PRIVATE_VAR_NS "_PC${ICU_PRIVATE_VAR_NS}") # Prefix for all pkg-config relative internal variables 62endif(NOT DEFINED PC_ICU_PRIVATE_VAR_NS) 63 64function(icudebug _VARNAME) 65 if(${ICU_PUBLIC_VAR_NS}_DEBUG) 66 if(DEFINED ${ICU_PUBLIC_VAR_NS}_${_VARNAME}) 67 message("${ICU_PUBLIC_VAR_NS}_${_VARNAME} = ${${ICU_PUBLIC_VAR_NS}_${_VARNAME}}") 68 else(DEFINED ${ICU_PUBLIC_VAR_NS}_${_VARNAME}) 69 message("${ICU_PUBLIC_VAR_NS}_${_VARNAME} = <UNDEFINED>") 70 endif(DEFINED ${ICU_PUBLIC_VAR_NS}_${_VARNAME}) 71 endif(${ICU_PUBLIC_VAR_NS}_DEBUG) 72endfunction(icudebug) 73 74set(${ICU_PRIVATE_VAR_NS}_ROOT "") 75if(DEFINED ENV{ICU_ROOT}) 76 set(${ICU_PRIVATE_VAR_NS}_ROOT "$ENV{ICU_ROOT}") 77endif(DEFINED ENV{ICU_ROOT}) 78if (DEFINED ICU_ROOT) 79 set(${ICU_PRIVATE_VAR_NS}_ROOT "${ICU_ROOT}") 80endif(DEFINED ICU_ROOT) 81 82set(${ICU_PRIVATE_VAR_NS}_BIN_SUFFIXES ) 83set(${ICU_PRIVATE_VAR_NS}_LIB_SUFFIXES ) 84if(CMAKE_SIZEOF_VOID_P EQUAL 8) 85 list(APPEND ${ICU_PRIVATE_VAR_NS}_BIN_SUFFIXES "bin64") 86 list(APPEND ${ICU_PRIVATE_VAR_NS}_LIB_SUFFIXES "lib64") 87endif(CMAKE_SIZEOF_VOID_P EQUAL 8) 88list(APPEND ${ICU_PRIVATE_VAR_NS}_BIN_SUFFIXES "bin") 89list(APPEND ${ICU_PRIVATE_VAR_NS}_LIB_SUFFIXES "lib") 90 91set(${ICU_PRIVATE_VAR_NS}_COMPONENTS ) 92# <icu component name> <library name 1> ... <library name N> 93macro(icu_declare_component _NAME) 94 list(APPEND ${ICU_PRIVATE_VAR_NS}_COMPONENTS ${_NAME}) 95 set("${ICU_PRIVATE_VAR_NS}_COMPONENTS_${_NAME}" ${ARGN}) 96endmacro(icu_declare_component) 97 98icu_declare_component(data icudata) 99icu_declare_component(uc icuuc) # Common and Data libraries 100icu_declare_component(i18n icui18n icuin) # Internationalization library 101icu_declare_component(io icuio ustdio) # Stream and I/O Library 102icu_declare_component(le icule) # Layout library 103icu_declare_component(lx iculx) # Paragraph Layout library 104 105########## Public ########## 106set(${ICU_PUBLIC_VAR_NS}_FOUND TRUE) 107set(${ICU_PUBLIC_VAR_NS}_LIBRARIES ) 108set(${ICU_PUBLIC_VAR_NS}_INCLUDE_DIRS ) 109set(${ICU_PUBLIC_VAR_NS}_C_FLAGS "") 110set(${ICU_PUBLIC_VAR_NS}_CXX_FLAGS "") 111set(${ICU_PUBLIC_VAR_NS}_CPP_FLAGS "") 112set(${ICU_PUBLIC_VAR_NS}_C_SHARED_FLAGS "") 113set(${ICU_PUBLIC_VAR_NS}_CXX_SHARED_FLAGS "") 114set(${ICU_PUBLIC_VAR_NS}_CPP_SHARED_FLAGS "") 115foreach(${ICU_PRIVATE_VAR_NS}_COMPONENT ${${ICU_PRIVATE_VAR_NS}_COMPONENTS}) 116 string(TOUPPER "${${ICU_PRIVATE_VAR_NS}_COMPONENT}" ${ICU_PRIVATE_VAR_NS}_UPPER_COMPONENT) 117 set("${ICU_PUBLIC_VAR_NS}_${${ICU_PRIVATE_VAR_NS}_UPPER_COMPONENT}_FOUND" FALSE) # may be done in the icu_declare_component macro 118endforeach(${ICU_PRIVATE_VAR_NS}_COMPONENT) 119 120# Check components 121if(NOT ${ICU_PUBLIC_VAR_NS}_FIND_COMPONENTS) # uc required at least 122 set(${ICU_PUBLIC_VAR_NS}_FIND_COMPONENTS uc) 123else(NOT ${ICU_PUBLIC_VAR_NS}_FIND_COMPONENTS) 124 list(APPEND ${ICU_PUBLIC_VAR_NS}_FIND_COMPONENTS uc) 125 list(REMOVE_DUPLICATES ${ICU_PUBLIC_VAR_NS}_FIND_COMPONENTS) 126 foreach(${ICU_PRIVATE_VAR_NS}_COMPONENT ${${ICU_PUBLIC_VAR_NS}_FIND_COMPONENTS}) 127 if(NOT DEFINED ${ICU_PRIVATE_VAR_NS}_COMPONENTS_${${ICU_PRIVATE_VAR_NS}_COMPONENT}) 128 message(FATAL_ERROR "Unknown ICU component: ${${ICU_PRIVATE_VAR_NS}_COMPONENT}") 129 endif(NOT DEFINED ${ICU_PRIVATE_VAR_NS}_COMPONENTS_${${ICU_PRIVATE_VAR_NS}_COMPONENT}) 130 endforeach(${ICU_PRIVATE_VAR_NS}_COMPONENT) 131endif(NOT ${ICU_PUBLIC_VAR_NS}_FIND_COMPONENTS) 132 133# Includes 134find_path( 135 ${ICU_PUBLIC_VAR_NS}_INCLUDE_DIRS 136 NAMES unicode/utypes.h utypes.h 137 HINTS ${${ICU_PRIVATE_VAR_NS}_ROOT} 138 PATH_SUFFIXES "include" 139 DOC "Include directories for ICU" 140) 141 142if(${ICU_PUBLIC_VAR_NS}_INCLUDE_DIRS) 143 ########## <part to keep synced with tests/version/CMakeLists.txt> ########## 144 if(EXISTS "${${ICU_PUBLIC_VAR_NS}_INCLUDE_DIRS}/unicode/uvernum.h") # ICU >= 4 145 file(READ "${${ICU_PUBLIC_VAR_NS}_INCLUDE_DIRS}/unicode/uvernum.h" ${ICU_PRIVATE_VAR_NS}_VERSION_HEADER_CONTENTS) 146 elseif(EXISTS "${${ICU_PUBLIC_VAR_NS}_INCLUDE_DIRS}/unicode/uversion.h") # ICU [2;4[ 147 file(READ "${${ICU_PUBLIC_VAR_NS}_INCLUDE_DIRS}/unicode/uversion.h" ${ICU_PRIVATE_VAR_NS}_VERSION_HEADER_CONTENTS) 148 elseif(EXISTS "${${ICU_PUBLIC_VAR_NS}_INCLUDE_DIRS}/unicode/utypes.h") # ICU [1.4;2[ 149 file(READ "${${ICU_PUBLIC_VAR_NS}_INCLUDE_DIRS}/unicode/utypes.h" ${ICU_PRIVATE_VAR_NS}_VERSION_HEADER_CONTENTS) 150 elseif(EXISTS "${${ICU_PUBLIC_VAR_NS}_INCLUDE_DIRS}/utypes.h") # ICU 1.3 151 file(READ "${${ICU_PUBLIC_VAR_NS}_INCLUDE_DIRS}/utypes.h" ${ICU_PRIVATE_VAR_NS}_VERSION_HEADER_CONTENTS) 152 else() 153 message(FATAL_ERROR "ICU version header not found") 154 endif() 155 156 if(${ICU_PRIVATE_VAR_NS}_VERSION_HEADER_CONTENTS MATCHES ".*# *define *ICU_VERSION *\"([0-9]+)\".*") # ICU 1.3 157 # [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) 158 set(${ICU_PUBLIC_VAR_NS}_MAJOR_VERSION "1") 159 set(${ICU_PUBLIC_VAR_NS}_MINOR_VERSION "${CMAKE_MATCH_1}") 160 set(${ICU_PUBLIC_VAR_NS}_PATCH_VERSION "0") 161 elseif(${ICU_PRIVATE_VAR_NS}_VERSION_HEADER_CONTENTS MATCHES ".*# *define *U_ICU_VERSION_MAJOR_NUM *([0-9]+).*") 162 # 163 # Since version 4.9.1, ICU release version numbering was totaly changed, see: 164 # - http://site.icu-project.org/download/49 165 # - http://userguide.icu-project.org/design#TOC-Version-Numbers-in-ICU 166 # 167 set(${ICU_PUBLIC_VAR_NS}_MAJOR_VERSION "${CMAKE_MATCH_1}") 168 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}") 169 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}") 170 elseif(${ICU_PRIVATE_VAR_NS}_VERSION_HEADER_CONTENTS MATCHES ".*# *define *U_ICU_VERSION *\"(([0-9]+)(\\.[0-9]+)*)\".*") # ICU [1.4;1.8[ 171 # [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 172 set(${ICU_PRIVATE_VAR_NS}_FULL_VERSION "${CMAKE_MATCH_1}") # copy CMAKE_MATCH_1, no longer valid on the following if 173 if(${ICU_PRIVATE_VAR_NS}_FULL_VERSION MATCHES "^([0-9]+)\\.([0-9]+)$") 174 set(${ICU_PUBLIC_VAR_NS}_MAJOR_VERSION "${CMAKE_MATCH_1}") 175 set(${ICU_PUBLIC_VAR_NS}_MINOR_VERSION "${CMAKE_MATCH_2}") 176 set(${ICU_PUBLIC_VAR_NS}_PATCH_VERSION "0") 177 elseif(${ICU_PRIVATE_VAR_NS}_FULL_VERSION MATCHES "^([0-9]+)\\.([0-9]+)\\.([0-9]+)") 178 set(${ICU_PUBLIC_VAR_NS}_MAJOR_VERSION "${CMAKE_MATCH_1}") 179 set(${ICU_PUBLIC_VAR_NS}_MINOR_VERSION "${CMAKE_MATCH_2}") 180 set(${ICU_PUBLIC_VAR_NS}_PATCH_VERSION "${CMAKE_MATCH_3}") 181 endif() 182 else() 183 message(FATAL_ERROR "failed to detect ICU version") 184 endif() 185 set(${ICU_PUBLIC_VAR_NS}_VERSION "${${ICU_PUBLIC_VAR_NS}_MAJOR_VERSION}.${${ICU_PUBLIC_VAR_NS}_MINOR_VERSION}.${${ICU_PUBLIC_VAR_NS}_PATCH_VERSION}") 186 ########## </part to keep synced with tests/version/CMakeLists.txt> ########## 187 188 # Check dependencies (implies pkg-config) 189 if(PKG_CONFIG_FOUND) 190 set(${ICU_PRIVATE_VAR_NS}_COMPONENTS_DUP ${${ICU_PUBLIC_VAR_NS}_FIND_COMPONENTS}) 191 foreach(${ICU_PRIVATE_VAR_NS}_COMPONENT ${${ICU_PRIVATE_VAR_NS}_COMPONENTS_DUP}) 192 pkg_check_modules(PC_ICU_PRIVATE_VAR_NS "icu-${${ICU_PRIVATE_VAR_NS}_COMPONENT}" QUIET) 193 194 if(${PC_ICU_PRIVATE_VAR_NS}_FOUND) 195 foreach(${PC_ICU_PRIVATE_VAR_NS}_LIBRARY ${PC_ICU_LIBRARIES}) 196 string(REGEX REPLACE "^icu" "" ${PC_ICU_PRIVATE_VAR_NS}_STRIPPED_LIBRARY ${${PC_ICU_PRIVATE_VAR_NS}_LIBRARY}) 197 list(APPEND ${ICU_PUBLIC_VAR_NS}_FIND_COMPONENTS ${${PC_ICU_PRIVATE_VAR_NS}_STRIPPED_LIBRARY}) 198 endforeach(${PC_ICU_PRIVATE_VAR_NS}_LIBRARY) 199 endif(${PC_ICU_PRIVATE_VAR_NS}_FOUND) 200 endforeach(${ICU_PRIVATE_VAR_NS}_COMPONENT) 201 list(REMOVE_DUPLICATES ${ICU_PUBLIC_VAR_NS}_FIND_COMPONENTS) 202 endif(PKG_CONFIG_FOUND) 203 204 # Check libraries 205 foreach(${ICU_PRIVATE_VAR_NS}_COMPONENT ${${ICU_PUBLIC_VAR_NS}_FIND_COMPONENTS}) 206 set(${ICU_PRIVATE_VAR_NS}_POSSIBLE_RELEASE_NAMES ) 207 set(${ICU_PRIVATE_VAR_NS}_POSSIBLE_DEBUG_NAMES ) 208 foreach(${ICU_PRIVATE_VAR_NS}_BASE_NAME ${${ICU_PRIVATE_VAR_NS}_COMPONENTS_${${ICU_PRIVATE_VAR_NS}_COMPONENT}}) 209 list(APPEND ${ICU_PRIVATE_VAR_NS}_POSSIBLE_RELEASE_NAMES "${${ICU_PRIVATE_VAR_NS}_BASE_NAME}") 210 list(APPEND ${ICU_PRIVATE_VAR_NS}_POSSIBLE_DEBUG_NAMES "${${ICU_PRIVATE_VAR_NS}_BASE_NAME}d") 211 list(APPEND ${ICU_PRIVATE_VAR_NS}_POSSIBLE_RELEASE_NAMES "${${ICU_PRIVATE_VAR_NS}_BASE_NAME}${ICU_MAJOR_VERSION}${ICU_MINOR_VERSION}") 212 list(APPEND ${ICU_PRIVATE_VAR_NS}_POSSIBLE_DEBUG_NAMES "${${ICU_PRIVATE_VAR_NS}_BASE_NAME}${ICU_MAJOR_VERSION}${ICU_MINOR_VERSION}d") 213 endforeach(${ICU_PRIVATE_VAR_NS}_BASE_NAME) 214 215 find_library( 216 ${ICU_PRIVATE_VAR_NS}_LIB_RELEASE_${${ICU_PRIVATE_VAR_NS}_COMPONENT} 217 NAMES ${${ICU_PRIVATE_VAR_NS}_POSSIBLE_RELEASE_NAMES} 218 HINTS ${${ICU_PRIVATE_VAR_NS}_ROOT} 219 PATH_SUFFIXES ${_ICU_LIB_SUFFIXES} 220 DOC "Release libraries for ICU" 221 ) 222 find_library( 223 ${ICU_PRIVATE_VAR_NS}_LIB_DEBUG_${${ICU_PRIVATE_VAR_NS}_COMPONENT} 224 NAMES ${${ICU_PRIVATE_VAR_NS}_POSSIBLE_DEBUG_NAMES} 225 HINTS ${${ICU_PRIVATE_VAR_NS}_ROOT} 226 PATH_SUFFIXES ${_ICU_LIB_SUFFIXES} 227 DOC "Debug libraries for ICU" 228 ) 229 230 string(TOUPPER "${${ICU_PRIVATE_VAR_NS}_COMPONENT}" ${ICU_PRIVATE_VAR_NS}_UPPER_COMPONENT) 231 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 232 set("${ICU_PUBLIC_VAR_NS}_${${ICU_PRIVATE_VAR_NS}_UPPER_COMPONENT}_FOUND" FALSE) 233 set("${ICU_PUBLIC_VAR_NS}_FOUND" FALSE) 234 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 235 set("${ICU_PUBLIC_VAR_NS}_${${ICU_PRIVATE_VAR_NS}_UPPER_COMPONENT}_FOUND" TRUE) 236 if(NOT ${ICU_PRIVATE_VAR_NS}_LIB_RELEASE_${${ICU_PRIVATE_VAR_NS}_COMPONENT}) # release not found => we are in debug 237 set(${ICU_PRIVATE_VAR_NS}_LIB_${${ICU_PRIVATE_VAR_NS}_COMPONENT} "${${ICU_PRIVATE_VAR_NS}_LIB_DEBUG_${${ICU_PRIVATE_VAR_NS}_COMPONENT}}") 238 elseif(NOT ${ICU_PRIVATE_VAR_NS}_LIB_DEBUG_${${ICU_PRIVATE_VAR_NS}_COMPONENT}) # debug not found => we are in release 239 set(${ICU_PRIVATE_VAR_NS}_LIB_${${ICU_PRIVATE_VAR_NS}_COMPONENT} "${${ICU_PRIVATE_VAR_NS}_LIB_RELEASE_${${ICU_PRIVATE_VAR_NS}_COMPONENT}}") 240 else() # both found 241 set( 242 ${ICU_PRIVATE_VAR_NS}_LIB_${${ICU_PRIVATE_VAR_NS}_COMPONENT} 243 optimized ${${ICU_PRIVATE_VAR_NS}_LIB_RELEASE_${${ICU_PRIVATE_VAR_NS}_COMPONENT}} 244 debug ${${ICU_PRIVATE_VAR_NS}_LIB_DEBUG_${${ICU_PRIVATE_VAR_NS}_COMPONENT}} 245 ) 246 endif() 247 list(APPEND ${ICU_PUBLIC_VAR_NS}_LIBRARIES ${${ICU_PRIVATE_VAR_NS}_LIB_${${ICU_PRIVATE_VAR_NS}_COMPONENT}}) 248 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}) 249 endforeach(${ICU_PRIVATE_VAR_NS}_COMPONENT) 250 251 # Try to find out compiler flags 252 find_program(${ICU_PUBLIC_VAR_NS}_CONFIG_EXECUTABLE icu-config HINTS ${${ICU_PRIVATE_VAR_NS}_ROOT}) 253 if(${ICU_PUBLIC_VAR_NS}_CONFIG_EXECUTABLE) 254 execute_process(COMMAND ${${ICU_PUBLIC_VAR_NS}_CONFIG_EXECUTABLE} --cflags OUTPUT_VARIABLE ${ICU_PUBLIC_VAR_NS}_C_FLAGS OUTPUT_STRIP_TRAILING_WHITESPACE) 255 execute_process(COMMAND ${${ICU_PUBLIC_VAR_NS}_CONFIG_EXECUTABLE} --cxxflags OUTPUT_VARIABLE ${ICU_PUBLIC_VAR_NS}_CXX_FLAGS OUTPUT_STRIP_TRAILING_WHITESPACE) 256 execute_process(COMMAND ${${ICU_PUBLIC_VAR_NS}_CONFIG_EXECUTABLE} --cppflags OUTPUT_VARIABLE ${ICU_PUBLIC_VAR_NS}_CPP_FLAGS OUTPUT_STRIP_TRAILING_WHITESPACE) 257 258 execute_process(COMMAND ${${ICU_PUBLIC_VAR_NS}_CONFIG_EXECUTABLE} --cflags-dynamic OUTPUT_VARIABLE ${ICU_PUBLIC_VAR_NS}_C_SHARED_FLAGS OUTPUT_STRIP_TRAILING_WHITESPACE) 259 execute_process(COMMAND ${${ICU_PUBLIC_VAR_NS}_CONFIG_EXECUTABLE} --cxxflags-dynamic OUTPUT_VARIABLE ${ICU_PUBLIC_VAR_NS}_CXX_SHARED_FLAGS OUTPUT_STRIP_TRAILING_WHITESPACE) 260 execute_process(COMMAND ${${ICU_PUBLIC_VAR_NS}_CONFIG_EXECUTABLE} --cppflags-dynamic OUTPUT_VARIABLE ${ICU_PUBLIC_VAR_NS}_CPP_SHARED_FLAGS OUTPUT_STRIP_TRAILING_WHITESPACE) 261 endif(${ICU_PUBLIC_VAR_NS}_CONFIG_EXECUTABLE) 262 263 # Check find_package arguments 264 include(FindPackageHandleStandardArgs) 265 if(${ICU_PUBLIC_VAR_NS}_FIND_REQUIRED AND NOT ${ICU_PUBLIC_VAR_NS}_FIND_QUIETLY) 266 find_package_handle_standard_args( 267 ${ICU_PUBLIC_VAR_NS} 268 REQUIRED_VARS ${ICU_PUBLIC_VAR_NS}_LIBRARIES ${ICU_PUBLIC_VAR_NS}_INCLUDE_DIRS 269 VERSION_VAR ${ICU_PUBLIC_VAR_NS}_VERSION 270 ) 271 else(${ICU_PUBLIC_VAR_NS}_FIND_REQUIRED AND NOT ${ICU_PUBLIC_VAR_NS}_FIND_QUIETLY) 272 find_package_handle_standard_args(${ICU_PUBLIC_VAR_NS} "ICU not found" ${ICU_PUBLIC_VAR_NS}_LIBRARIES ${ICU_PUBLIC_VAR_NS}_INCLUDE_DIRS) 273 endif(${ICU_PUBLIC_VAR_NS}_FIND_REQUIRED AND NOT ${ICU_PUBLIC_VAR_NS}_FIND_QUIETLY) 274else(${ICU_PUBLIC_VAR_NS}_INCLUDE_DIRS) 275 if(${ICU_PUBLIC_VAR_NS}_FIND_REQUIRED AND NOT ${ICU_PUBLIC_VAR_NS}_FIND_QUIETLY) 276 message(FATAL_ERROR "Could not find ICU include directory") 277 endif(${ICU_PUBLIC_VAR_NS}_FIND_REQUIRED AND NOT ${ICU_PUBLIC_VAR_NS}_FIND_QUIETLY) 278endif(${ICU_PUBLIC_VAR_NS}_INCLUDE_DIRS) 279 280mark_as_advanced( 281 ${ICU_PUBLIC_VAR_NS}_INCLUDE_DIRS 282 ${ICU_PUBLIC_VAR_NS}_LIBRARIES 283) 284 285# IN (args) 286icudebug("FIND_COMPONENTS") 287icudebug("FIND_REQUIRED") 288icudebug("FIND_QUIETLY") 289icudebug("FIND_VERSION") 290# OUT 291# Found 292icudebug("FOUND") 293icudebug("UC_FOUND") 294icudebug("I18N_FOUND") 295icudebug("IO_FOUND") 296icudebug("LE_FOUND") 297icudebug("LX_FOUND") 298icudebug("DATA_FOUND") 299# Flags 300icudebug("C_FLAGS") 301icudebug("CPP_FLAGS") 302icudebug("CXX_FLAGS") 303icudebug("C_SHARED_FLAGS") 304icudebug("CPP_SHARED_FLAGS") 305icudebug("CXX_SHARED_FLAGS") 306# Linking 307icudebug("INCLUDE_DIRS") 308icudebug("LIBRARIES") 309# Version 310icudebug("MAJOR_VERSION") 311icudebug("MINOR_VERSION") 312icudebug("PATCH_VERSION") 313icudebug("VERSION") 314