ferencd@0: # This module can find the International Components for Unicode (ICU) Library ferencd@0: # ferencd@0: # Requirements: ferencd@0: # - CMake >= 2.8.3 (for new version of find_package_handle_standard_args) ferencd@0: # ferencd@0: # The following variables will be defined for your use: ferencd@0: # - ICU_FOUND : were all of your specified components found (include dependencies)? ferencd@0: # - ICU_INCLUDE_DIRS : ICU include directory ferencd@0: # - ICU_LIBRARIES : ICU libraries ferencd@0: # - ICU_VERSION : complete version of ICU (x.y.z) ferencd@0: # - ICU_MAJOR_VERSION : major version of ICU ferencd@0: # - ICU_MINOR_VERSION : minor version of ICU ferencd@0: # - ICU_PATCH_VERSION : patch version of ICU ferencd@0: # - ICU__FOUND : were found? (FALSE for non specified component if it is not a dependency) ferencd@0: # ferencd@0: # For windows or non standard installation, define ICU_ROOT variable to point to the root installation of ICU. Two ways: ferencd@0: # - run cmake with -DICU_ROOT= ferencd@0: # - define an environment variable with the same name before running cmake ferencd@0: # With cmake-gui, before pressing "Configure": ferencd@0: # 1) Press "Add Entry" button ferencd@0: # 2) Add a new entry defined as: ferencd@0: # - Name: ICU_ROOT ferencd@0: # - Type: choose PATH in the selection list ferencd@0: # - Press "..." button and select the root installation of ICU ferencd@0: # ferencd@0: # Example Usage: ferencd@0: # ferencd@0: # 1. Copy this file in the root of your project source directory ferencd@0: # 2. Then, tell CMake to search this non-standard module in your project directory by adding to your CMakeLists.txt: ferencd@0: # set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}) ferencd@0: # 3. Finally call find_package() once, here are some examples to pick from ferencd@0: # ferencd@0: # Require ICU 4.4 or later ferencd@0: # find_package(ICU 4.4 REQUIRED) ferencd@0: # ferencd@0: # if(ICU_FOUND) ferencd@0: # include_directories(${ICU_INCLUDE_DIRS}) ferencd@0: # add_executable(myapp myapp.c) ferencd@0: # target_link_libraries(myapp ${ICU_LIBRARIES}) ferencd@0: # endif(ICU_FOUND) ferencd@0: ferencd@0: #============================================================================= ferencd@0: # Copyright (c) 2011-2012, julp ferencd@0: # https://github.com/julp/FindICU.cmake ferencd@0: # ferencd@0: # Distributed under the OSI-approved BSD License ferencd@0: # ferencd@0: # This software is distributed WITHOUT ANY WARRANTY; without even the ferencd@0: # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. ferencd@0: #============================================================================= ferencd@0: ferencd@0: find_package(PkgConfig QUIET) ferencd@0: ferencd@0: ########## Private ########## ferencd@0: set(ICU_PUBLIC_VAR_NS "ICU") # Prefix for all ICU relative public variables ferencd@0: set(ICU_PRIVATE_VAR_NS "_${ICU_PUBLIC_VAR_NS}") # Prefix for all ICU relative internal variables ferencd@0: set(PC_ICU_PRIVATE_VAR_NS "_PC${ICU_PRIVATE_VAR_NS}") # Prefix for all pkg-config relative internal variables ferencd@0: ferencd@0: function(icudebug _VARNAME) ferencd@0: if(${ICU_PUBLIC_VAR_NS}_DEBUG) ferencd@0: if(DEFINED ${ICU_PUBLIC_VAR_NS}_${_VARNAME}) ferencd@0: message("${ICU_PUBLIC_VAR_NS}_${_VARNAME} = ${${ICU_PUBLIC_VAR_NS}_${_VARNAME}}") ferencd@0: else(DEFINED ${ICU_PUBLIC_VAR_NS}_${_VARNAME}) ferencd@0: message("${ICU_PUBLIC_VAR_NS}_${_VARNAME} = ") ferencd@0: endif(DEFINED ${ICU_PUBLIC_VAR_NS}_${_VARNAME}) ferencd@0: endif(${ICU_PUBLIC_VAR_NS}_DEBUG) ferencd@0: endfunction(icudebug) ferencd@0: ferencd@0: set(${ICU_PRIVATE_VAR_NS}_ROOT "") ferencd@0: if(DEFINED ENV{ICU_ROOT}) ferencd@0: set(${ICU_PRIVATE_VAR_NS}_ROOT "$ENV{ICU_ROOT}") ferencd@0: endif(DEFINED ENV{ICU_ROOT}) ferencd@0: if (DEFINED ICU_ROOT) ferencd@0: set(${ICU_PRIVATE_VAR_NS}_ROOT "${ICU_ROOT}") ferencd@0: endif(DEFINED ICU_ROOT) ferencd@0: ferencd@0: set(${ICU_PRIVATE_VAR_NS}_BIN_SUFFIXES ) ferencd@0: set(${ICU_PRIVATE_VAR_NS}_LIB_SUFFIXES ) ferencd@0: if(CMAKE_SIZEOF_VOID_P EQUAL 8) ferencd@0: list(APPEND ${ICU_PRIVATE_VAR_NS}_BIN_SUFFIXES "bin64") ferencd@0: list(APPEND ${ICU_PRIVATE_VAR_NS}_LIB_SUFFIXES "lib64") ferencd@0: endif(CMAKE_SIZEOF_VOID_P EQUAL 8) ferencd@0: list(APPEND ${ICU_PRIVATE_VAR_NS}_BIN_SUFFIXES "bin") ferencd@0: list(APPEND ${ICU_PRIVATE_VAR_NS}_LIB_SUFFIXES "lib") ferencd@0: ferencd@0: set(${ICU_PRIVATE_VAR_NS}_COMPONENTS ) ferencd@0: # ... ferencd@0: macro(icu_declare_component _NAME) ferencd@0: list(APPEND ${ICU_PRIVATE_VAR_NS}_COMPONENTS ${_NAME}) ferencd@0: set("${ICU_PRIVATE_VAR_NS}_COMPONENTS_${_NAME}" ${ARGN}) ferencd@0: endmacro(icu_declare_component) ferencd@0: ferencd@0: icu_declare_component(data icudata) ferencd@0: icu_declare_component(uc icuuc) # Common and Data libraries ferencd@0: icu_declare_component(i18n icui18n icuin) # Internationalization library ferencd@0: icu_declare_component(io icuio ustdio) # Stream and I/O Library ferencd@0: icu_declare_component(le icule) # Layout library ferencd@0: icu_declare_component(lx iculx) # Paragraph Layout library ferencd@0: ferencd@0: ########## Public ########## ferencd@0: set(${ICU_PUBLIC_VAR_NS}_FOUND TRUE) ferencd@0: set(${ICU_PUBLIC_VAR_NS}_LIBRARIES ) ferencd@0: set(${ICU_PUBLIC_VAR_NS}_INCLUDE_DIRS ) ferencd@0: set(${ICU_PUBLIC_VAR_NS}_C_FLAGS "") ferencd@0: set(${ICU_PUBLIC_VAR_NS}_CXX_FLAGS "") ferencd@0: set(${ICU_PUBLIC_VAR_NS}_CPP_FLAGS "") ferencd@0: set(${ICU_PUBLIC_VAR_NS}_C_SHARED_FLAGS "") ferencd@0: set(${ICU_PUBLIC_VAR_NS}_CXX_SHARED_FLAGS "") ferencd@0: set(${ICU_PUBLIC_VAR_NS}_CPP_SHARED_FLAGS "") ferencd@0: foreach(${ICU_PRIVATE_VAR_NS}_COMPONENT ${${ICU_PRIVATE_VAR_NS}_COMPONENTS}) ferencd@0: string(TOUPPER "${${ICU_PRIVATE_VAR_NS}_COMPONENT}" ${ICU_PRIVATE_VAR_NS}_UPPER_COMPONENT) ferencd@0: set("${ICU_PUBLIC_VAR_NS}_${${ICU_PRIVATE_VAR_NS}_UPPER_COMPONENT}_FOUND" FALSE) # may be done in the icu_declare_component macro ferencd@0: endforeach(${ICU_PRIVATE_VAR_NS}_COMPONENT) ferencd@0: ferencd@0: # Check components ferencd@0: if(NOT ${ICU_PUBLIC_VAR_NS}_FIND_COMPONENTS) # uc required at least ferencd@0: set(${ICU_PUBLIC_VAR_NS}_FIND_COMPONENTS uc) ferencd@0: else(NOT ${ICU_PUBLIC_VAR_NS}_FIND_COMPONENTS) ferencd@0: list(APPEND ${ICU_PUBLIC_VAR_NS}_FIND_COMPONENTS uc) ferencd@0: list(REMOVE_DUPLICATES ${ICU_PUBLIC_VAR_NS}_FIND_COMPONENTS) ferencd@0: foreach(${ICU_PRIVATE_VAR_NS}_COMPONENT ${${ICU_PUBLIC_VAR_NS}_FIND_COMPONENTS}) ferencd@0: if(NOT DEFINED ${ICU_PRIVATE_VAR_NS}_COMPONENTS_${${ICU_PRIVATE_VAR_NS}_COMPONENT}) ferencd@0: message(FATAL_ERROR "Unknown ICU component: ${${ICU_PRIVATE_VAR_NS}_COMPONENT}") ferencd@0: endif(NOT DEFINED ${ICU_PRIVATE_VAR_NS}_COMPONENTS_${${ICU_PRIVATE_VAR_NS}_COMPONENT}) ferencd@0: endforeach(${ICU_PRIVATE_VAR_NS}_COMPONENT) ferencd@0: endif(NOT ${ICU_PUBLIC_VAR_NS}_FIND_COMPONENTS) ferencd@0: ferencd@0: # Includes ferencd@0: find_path( ferencd@0: ${ICU_PUBLIC_VAR_NS}_INCLUDE_DIRS ferencd@0: NAMES unicode/utypes.h utypes.h ferencd@0: HINTS ${${ICU_PRIVATE_VAR_NS}_ROOT} ferencd@0: PATH_SUFFIXES "include" ferencd@0: DOC "Include directories for ICU" ferencd@0: ) ferencd@0: ferencd@0: if(${ICU_PUBLIC_VAR_NS}_INCLUDE_DIRS) ferencd@0: ########## ########## ferencd@0: if(EXISTS "${${ICU_PUBLIC_VAR_NS}_INCLUDE_DIRS}/unicode/uvernum.h") # ICU >= 4 ferencd@0: file(READ "${${ICU_PUBLIC_VAR_NS}_INCLUDE_DIRS}/unicode/uvernum.h" ${ICU_PRIVATE_VAR_NS}_VERSION_HEADER_CONTENTS) ferencd@0: elseif(EXISTS "${${ICU_PUBLIC_VAR_NS}_INCLUDE_DIRS}/unicode/uversion.h") # ICU [2;4[ ferencd@0: file(READ "${${ICU_PUBLIC_VAR_NS}_INCLUDE_DIRS}/unicode/uversion.h" ${ICU_PRIVATE_VAR_NS}_VERSION_HEADER_CONTENTS) ferencd@0: elseif(EXISTS "${${ICU_PUBLIC_VAR_NS}_INCLUDE_DIRS}/unicode/utypes.h") # ICU [1.4;2[ ferencd@0: file(READ "${${ICU_PUBLIC_VAR_NS}_INCLUDE_DIRS}/unicode/utypes.h" ${ICU_PRIVATE_VAR_NS}_VERSION_HEADER_CONTENTS) ferencd@0: elseif(EXISTS "${${ICU_PUBLIC_VAR_NS}_INCLUDE_DIRS}/utypes.h") # ICU 1.3 ferencd@0: file(READ "${${ICU_PUBLIC_VAR_NS}_INCLUDE_DIRS}/utypes.h" ${ICU_PRIVATE_VAR_NS}_VERSION_HEADER_CONTENTS) ferencd@0: else() ferencd@0: message(FATAL_ERROR "ICU version header not found") ferencd@0: endif() ferencd@0: ferencd@0: if(${ICU_PRIVATE_VAR_NS}_VERSION_HEADER_CONTENTS MATCHES ".*# *define *ICU_VERSION *\"([0-9]+)\".*") # ICU 1.3 ferencd@0: # [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) ferencd@0: set(${ICU_PUBLIC_VAR_NS}_MAJOR_VERSION "1") ferencd@0: set(${ICU_PUBLIC_VAR_NS}_MINOR_VERSION "${CMAKE_MATCH_1}") ferencd@0: set(${ICU_PUBLIC_VAR_NS}_PATCH_VERSION "0") ferencd@0: elseif(${ICU_PRIVATE_VAR_NS}_VERSION_HEADER_CONTENTS MATCHES ".*# *define *U_ICU_VERSION_MAJOR_NUM *([0-9]+).*") ferencd@0: set(${ICU_PUBLIC_VAR_NS}_MAJOR_VERSION "${CMAKE_MATCH_1}") ferencd@0: # ferencd@0: # Since version 4.9.1, ICU release version numbering was totaly changed, see: ferencd@0: # - http://site.icu-project.org/download/49 ferencd@0: # - http://userguide.icu-project.org/design#TOC-Version-Numbers-in-ICU ferencd@0: # ferencd@0: if(${ICU_PUBLIC_VAR_NS}_MAJOR_VERSION LESS 49) ferencd@0: 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}") ferencd@0: 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}") ferencd@0: else(${ICU_PUBLIC_VAR_NS}_MAJOR_VERSION LESS 49) ferencd@0: string(REGEX MATCH [0-9]$ ${ICU_PUBLIC_VAR_NS}_MINOR_VERSION "${${ICU_PUBLIC_VAR_NS}_MAJOR_VERSION}") ferencd@0: string(REGEX REPLACE [0-9]$ "" ${ICU_PUBLIC_VAR_NS}_MAJOR_VERSION "${${ICU_PUBLIC_VAR_NS}_MAJOR_VERSION}") ferencd@0: 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}") ferencd@0: endif(${ICU_PUBLIC_VAR_NS}_MAJOR_VERSION LESS 49) ferencd@0: elseif(${ICU_PRIVATE_VAR_NS}_VERSION_HEADER_CONTENTS MATCHES ".*# *define *U_ICU_VERSION *\"(([0-9]+)(\\.[0-9]+)*)\".*") # ICU [1.4;1.8[ ferencd@0: # [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 ferencd@0: set(${ICU_PRIVATE_VAR_NS}_FULL_VERSION "${CMAKE_MATCH_1}") # copy CMAKE_MATCH_1, no longer valid on the following if ferencd@0: if(${ICU_PRIVATE_VAR_NS}_FULL_VERSION MATCHES "^([0-9]+)\\.([0-9]+)$") ferencd@0: set(${ICU_PUBLIC_VAR_NS}_MAJOR_VERSION "${CMAKE_MATCH_1}") ferencd@0: set(${ICU_PUBLIC_VAR_NS}_MINOR_VERSION "${CMAKE_MATCH_2}") ferencd@0: set(${ICU_PUBLIC_VAR_NS}_PATCH_VERSION "0") ferencd@0: elseif(${ICU_PRIVATE_VAR_NS}_FULL_VERSION MATCHES "^([0-9]+)\\.([0-9]+)\\.([0-9]+)") ferencd@0: set(${ICU_PUBLIC_VAR_NS}_MAJOR_VERSION "${CMAKE_MATCH_1}") ferencd@0: set(${ICU_PUBLIC_VAR_NS}_MINOR_VERSION "${CMAKE_MATCH_2}") ferencd@0: set(${ICU_PUBLIC_VAR_NS}_PATCH_VERSION "${CMAKE_MATCH_3}") ferencd@0: endif() ferencd@0: else() ferencd@0: message(FATAL_ERROR "failed to detect ICU version") ferencd@0: endif() ferencd@0: set(${ICU_PUBLIC_VAR_NS}_VERSION "${${ICU_PUBLIC_VAR_NS}_MAJOR_VERSION}.${${ICU_PUBLIC_VAR_NS}_MINOR_VERSION}.${${ICU_PUBLIC_VAR_NS}_PATCH_VERSION}") ferencd@0: ########## ########## ferencd@0: ferencd@0: # Check dependencies (implies pkg-config) ferencd@0: if(PKG_CONFIG_FOUND) ferencd@0: set(${ICU_PRIVATE_VAR_NS}_COMPONENTS_DUP ${${ICU_PUBLIC_VAR_NS}_FIND_COMPONENTS}) ferencd@0: foreach(${ICU_PRIVATE_VAR_NS}_COMPONENT ${${ICU_PRIVATE_VAR_NS}_COMPONENTS_DUP}) ferencd@0: pkg_check_modules(PC_ICU_PRIVATE_VAR_NS "icu-${${ICU_PRIVATE_VAR_NS}_COMPONENT}" QUIET) ferencd@0: ferencd@0: if(${PC_ICU_PRIVATE_VAR_NS}_FOUND) ferencd@0: foreach(${PC_ICU_PRIVATE_VAR_NS}_LIBRARY ${PC_ICU_LIBRARIES}) ferencd@0: string(REGEX REPLACE "^icu" "" ${PC_ICU_PRIVATE_VAR_NS}_STRIPPED_LIBRARY ${${PC_ICU_PRIVATE_VAR_NS}_LIBRARY}) ferencd@0: list(APPEND ${ICU_PUBLIC_VAR_NS}_FIND_COMPONENTS ${${PC_ICU_PRIVATE_VAR_NS}_STRIPPED_LIBRARY}) ferencd@0: endforeach(${PC_ICU_PRIVATE_VAR_NS}_LIBRARY) ferencd@0: endif(${PC_ICU_PRIVATE_VAR_NS}_FOUND) ferencd@0: endforeach(${ICU_PRIVATE_VAR_NS}_COMPONENT) ferencd@0: list(REMOVE_DUPLICATES ${ICU_PUBLIC_VAR_NS}_FIND_COMPONENTS) ferencd@0: endif(PKG_CONFIG_FOUND) ferencd@0: ferencd@0: # Check libraries ferencd@0: foreach(${ICU_PRIVATE_VAR_NS}_COMPONENT ${${ICU_PUBLIC_VAR_NS}_FIND_COMPONENTS}) ferencd@0: set(${ICU_PRIVATE_VAR_NS}_POSSIBLE_RELEASE_NAMES ) ferencd@0: set(${ICU_PRIVATE_VAR_NS}_POSSIBLE_DEBUG_NAMES ) ferencd@0: foreach(${ICU_PRIVATE_VAR_NS}_BASE_NAME ${${ICU_PRIVATE_VAR_NS}_COMPONENTS_${${ICU_PRIVATE_VAR_NS}_COMPONENT}}) ferencd@0: list(APPEND ${ICU_PRIVATE_VAR_NS}_POSSIBLE_RELEASE_NAMES "${${ICU_PRIVATE_VAR_NS}_BASE_NAME}") ferencd@0: list(APPEND ${ICU_PRIVATE_VAR_NS}_POSSIBLE_DEBUG_NAMES "${${ICU_PRIVATE_VAR_NS}_BASE_NAME}d") ferencd@0: list(APPEND ${ICU_PRIVATE_VAR_NS}_POSSIBLE_RELEASE_NAMES "${${ICU_PRIVATE_VAR_NS}_BASE_NAME}${ICU_MAJOR_VERSION}${ICU_MINOR_VERSION}") ferencd@0: list(APPEND ${ICU_PRIVATE_VAR_NS}_POSSIBLE_DEBUG_NAMES "${${ICU_PRIVATE_VAR_NS}_BASE_NAME}${ICU_MAJOR_VERSION}${ICU_MINOR_VERSION}d") ferencd@0: endforeach(${ICU_PRIVATE_VAR_NS}_BASE_NAME) ferencd@0: ferencd@0: find_library( ferencd@0: ${ICU_PRIVATE_VAR_NS}_LIB_RELEASE_${${ICU_PRIVATE_VAR_NS}_COMPONENT} ferencd@0: NAMES ${${ICU_PRIVATE_VAR_NS}_POSSIBLE_RELEASE_NAMES} ferencd@0: HINTS ${${ICU_PRIVATE_VAR_NS}_ROOT} ferencd@0: PATH_SUFFIXES ${_ICU_LIB_SUFFIXES} ferencd@0: DOC "Release libraries for ICU" ferencd@0: ) ferencd@0: find_library( ferencd@0: ${ICU_PRIVATE_VAR_NS}_LIB_DEBUG_${${ICU_PRIVATE_VAR_NS}_COMPONENT} ferencd@0: NAMES ${${ICU_PRIVATE_VAR_NS}_POSSIBLE_DEBUG_NAMES} ferencd@0: HINTS ${${ICU_PRIVATE_VAR_NS}_ROOT} ferencd@0: PATH_SUFFIXES ${_ICU_LIB_SUFFIXES} ferencd@0: DOC "Debug libraries for ICU" ferencd@0: ) ferencd@0: ferencd@0: string(TOUPPER "${${ICU_PRIVATE_VAR_NS}_COMPONENT}" ${ICU_PRIVATE_VAR_NS}_UPPER_COMPONENT) ferencd@0: 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 ferencd@0: set("${ICU_PUBLIC_VAR_NS}_${${ICU_PRIVATE_VAR_NS}_UPPER_COMPONENT}_FOUND" FALSE) ferencd@0: set("${ICU_PUBLIC_VAR_NS}_FOUND" FALSE) ferencd@0: 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 ferencd@0: set("${ICU_PUBLIC_VAR_NS}_${${ICU_PRIVATE_VAR_NS}_UPPER_COMPONENT}_FOUND" TRUE) ferencd@0: if(NOT ${ICU_PRIVATE_VAR_NS}_LIB_RELEASE_${${ICU_PRIVATE_VAR_NS}_COMPONENT}) # release not found => we are in debug ferencd@0: set(${ICU_PRIVATE_VAR_NS}_LIB_${${ICU_PRIVATE_VAR_NS}_COMPONENT} "${${ICU_PRIVATE_VAR_NS}_LIB_DEBUG_${${ICU_PRIVATE_VAR_NS}_COMPONENT}}") ferencd@0: elseif(NOT ${ICU_PRIVATE_VAR_NS}_LIB_DEBUG_${${ICU_PRIVATE_VAR_NS}_COMPONENT}) # debug not found => we are in release ferencd@0: set(${ICU_PRIVATE_VAR_NS}_LIB_${${ICU_PRIVATE_VAR_NS}_COMPONENT} "${${ICU_PRIVATE_VAR_NS}_LIB_RELEASE_${${ICU_PRIVATE_VAR_NS}_COMPONENT}}") ferencd@0: else() # both found ferencd@0: set( ferencd@0: ${ICU_PRIVATE_VAR_NS}_LIB_${${ICU_PRIVATE_VAR_NS}_COMPONENT} ferencd@0: optimized ${${ICU_PRIVATE_VAR_NS}_LIB_RELEASE_${${ICU_PRIVATE_VAR_NS}_COMPONENT}} ferencd@0: debug ${${ICU_PRIVATE_VAR_NS}_LIB_DEBUG_${${ICU_PRIVATE_VAR_NS}_COMPONENT}} ferencd@0: ) ferencd@0: endif() ferencd@0: list(APPEND ${ICU_PUBLIC_VAR_NS}_LIBRARIES ${${ICU_PRIVATE_VAR_NS}_LIB_${${ICU_PRIVATE_VAR_NS}_COMPONENT}}) ferencd@0: 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}) ferencd@0: endforeach(${ICU_PRIVATE_VAR_NS}_COMPONENT) ferencd@0: ferencd@0: # Try to find out compiler flags ferencd@0: find_program(${ICU_PUBLIC_VAR_NS}_CONFIG_EXECUTABLE HINTS ${${ICU_PRIVATE_VAR_NS}_ROOT} icu-config) ferencd@0: if(${ICU_PUBLIC_VAR_NS}_CONFIG_EXECUTABLE) ferencd@0: execute_process(COMMAND ${${ICU_PUBLIC_VAR_NS}_CONFIG_EXECUTABLE} --cflags OUTPUT_VARIABLE ${ICU_PUBLIC_VAR_NS}_C_FLAGS OUTPUT_STRIP_TRAILING_WHITESPACE) ferencd@0: execute_process(COMMAND ${${ICU_PUBLIC_VAR_NS}_CONFIG_EXECUTABLE} --cxxflags OUTPUT_VARIABLE ${ICU_PUBLIC_VAR_NS}_CXX_FLAGS OUTPUT_STRIP_TRAILING_WHITESPACE) ferencd@0: execute_process(COMMAND ${${ICU_PUBLIC_VAR_NS}_CONFIG_EXECUTABLE} --cppflags OUTPUT_VARIABLE ${ICU_PUBLIC_VAR_NS}_CPP_FLAGS OUTPUT_STRIP_TRAILING_WHITESPACE) ferencd@0: ferencd@0: execute_process(COMMAND ${${ICU_PUBLIC_VAR_NS}_CONFIG_EXECUTABLE} --cflags-dynamic OUTPUT_VARIABLE ${ICU_PUBLIC_VAR_NS}_C_SHARED_FLAGS OUTPUT_STRIP_TRAILING_WHITESPACE) ferencd@0: execute_process(COMMAND ${${ICU_PUBLIC_VAR_NS}_CONFIG_EXECUTABLE} --cxxflags-dynamic OUTPUT_VARIABLE ${ICU_PUBLIC_VAR_NS}_CXX_SHARED_FLAGS OUTPUT_STRIP_TRAILING_WHITESPACE) ferencd@0: execute_process(COMMAND ${${ICU_PUBLIC_VAR_NS}_CONFIG_EXECUTABLE} --cppflags-dynamic OUTPUT_VARIABLE ${ICU_PUBLIC_VAR_NS}_CPP_SHARED_FLAGS OUTPUT_STRIP_TRAILING_WHITESPACE) ferencd@0: endif(${ICU_PUBLIC_VAR_NS}_CONFIG_EXECUTABLE) ferencd@0: ferencd@0: # Check find_package arguments ferencd@0: include(FindPackageHandleStandardArgs) ferencd@0: if(${ICU_PUBLIC_VAR_NS}_FIND_REQUIRED AND NOT ${ICU_PUBLIC_VAR_NS}_FIND_QUIETLY) ferencd@0: find_package_handle_standard_args( ferencd@0: ${ICU_PUBLIC_VAR_NS} ferencd@0: REQUIRED_VARS ${ICU_PUBLIC_VAR_NS}_LIBRARIES ${ICU_PUBLIC_VAR_NS}_INCLUDE_DIRS ferencd@0: VERSION_VAR ${ICU_PUBLIC_VAR_NS}_VERSION ferencd@0: ) ferencd@0: else(${ICU_PUBLIC_VAR_NS}_FIND_REQUIRED AND NOT ${ICU_PUBLIC_VAR_NS}_FIND_QUIETLY) ferencd@0: find_package_handle_standard_args(${ICU_PUBLIC_VAR_NS} "ICU not found" ${ICU_PUBLIC_VAR_NS}_LIBRARIES ${ICU_PUBLIC_VAR_NS}_INCLUDE_DIRS) ferencd@0: endif(${ICU_PUBLIC_VAR_NS}_FIND_REQUIRED AND NOT ${ICU_PUBLIC_VAR_NS}_FIND_QUIETLY) ferencd@0: else(${ICU_PUBLIC_VAR_NS}_INCLUDE_DIRS) ferencd@0: if(${ICU_PUBLIC_VAR_NS}_FIND_REQUIRED AND NOT ${ICU_PUBLIC_VAR_NS}_FIND_QUIETLY) ferencd@0: message(FATAL_ERROR "Could not find ICU include directory") ferencd@0: endif(${ICU_PUBLIC_VAR_NS}_FIND_REQUIRED AND NOT ${ICU_PUBLIC_VAR_NS}_FIND_QUIETLY) ferencd@0: endif(${ICU_PUBLIC_VAR_NS}_INCLUDE_DIRS) ferencd@0: ferencd@0: mark_as_advanced( ferencd@0: ${ICU_PUBLIC_VAR_NS}_INCLUDE_DIRS ferencd@0: ${ICU_PUBLIC_VAR_NS}_LIBRARIES ferencd@0: ) ferencd@0: ferencd@0: # IN (args) ferencd@0: icudebug("FIND_COMPONENTS") ferencd@0: icudebug("FIND_REQUIRED") ferencd@0: icudebug("FIND_QUIETLY") ferencd@0: icudebug("FIND_VERSION") ferencd@0: # OUT ferencd@0: # Found ferencd@0: icudebug("FOUND") ferencd@0: icudebug("UC_FOUND") ferencd@0: icudebug("I18N_FOUND") ferencd@0: icudebug("IO_FOUND") ferencd@0: icudebug("LE_FOUND") ferencd@0: icudebug("LX_FOUND") ferencd@0: icudebug("DATA_FOUND") ferencd@0: # Flags ferencd@0: icudebug("C_FLAGS") ferencd@0: icudebug("CPP_FLAGS") ferencd@0: icudebug("CXX_FLAGS") ferencd@0: icudebug("C_SHARED_FLAGS") ferencd@0: icudebug("CPP_SHARED_FLAGS") ferencd@0: icudebug("CXX_SHARED_FLAGS") ferencd@0: # Linking ferencd@0: icudebug("INCLUDE_DIRS") ferencd@0: icudebug("LIBRARIES") ferencd@0: # Version ferencd@0: icudebug("MAJOR_VERSION") ferencd@0: icudebug("MINOR_VERSION") ferencd@0: icudebug("PATCH_VERSION") ferencd@0: icudebug("VERSION")