File: FindICU.cmake

package info (click to toggle)
tarantool 2.6.0-1.2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 85,396 kB
  • sloc: ansic: 513,775; cpp: 69,493; sh: 25,650; python: 19,190; perl: 14,973; makefile: 4,176; yacc: 1,329; sql: 1,074; pascal: 620; ruby: 190; awk: 18; lisp: 7
file content (70 lines) | stat: -rw-r--r-- 2,059 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
# - Find ICU header and library
# The module defines the following variables:
#
#  ICU_FOUND - true if ICU was found
#  ICU_INCLUDE_DIRS - the directory of the ICU headers
#  ICU_LIBRARIES - the ICU libraries needed for linking
#

if(DEFINED ICU_ROOT)
    set(ICU_FIND_OPTS NO_CMAKE NO_CMAKE_SYSTEM_PATH)
    set(ICU_FIND_LIBRARY_HINTS "${ICU_ROOT}/lib")
    set(ICU_FIND_PATH_HINTS "${ICU_ROOT}/include")
else()
    set(ICU_FIND_OPTS)
    set(ICU_FIND_LIBRARY_HINTS)
    set(ICU_FIND_PATH_HINTS)
endif()

find_path(ICU_INCLUDE_DIR
    unicode/ucol.h
    HINTS ${ICU_FIND_PATH_HINTS}
    ${ICU_FIND_OPTS}
)

if(BUILD_STATIC)
    set(ICU_I18N_LIB_NAME libicui18n.a)
    set(ICU_UC_LIB_NAME libicuuc.a)
    set(ICU_DATA_LIB_NAME libicudata.a)
else()
    set(ICU_I18N_LIB_NAME icui18n)
    set(ICU_UC_LIB_NAME icuuc)
    set(ICU_DATA_LIB_NAME icudata)
endif()

find_library(ICU_LIBRARY_I18N NAMES ${ICU_I18N_LIB_NAME}
    HINTS ${ICU_FIND_LIBRARY_HINTS}
    ${ICU_FIND_OPTS}
)
find_library(ICU_LIBRARY_UC NAMES ${ICU_UC_LIB_NAME}
    HINTS ${ICU_FIND_LIBRARY_HINTS}
    ${ICU_FIND_OPTS}
)

find_library(ICU_LIBRARY_DATA NAMES ${ICU_DATA_LIB_NAME}
    HINTS ${ICU_FIND_LIBRARY_HINTS}
    ${ICU_FIND_OPTS}
)

include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(ICU
    REQUIRED_VARS ICU_INCLUDE_DIR ICU_LIBRARY_I18N ICU_LIBRARY_UC)
set(ICU_INCLUDE_DIRS ${ICU_INCLUDE_DIR})
set(ICU_LIBRARIES ${ICU_LIBRARY_I18N} ${ICU_LIBRARY_UC} ${ICU_LIBRARY_DATA} ${CMAKE_DL_LIBS})
mark_as_advanced(ICU_INCLUDE_DIR ICU_INCLUDE_DIRS
        ICU_LIBRARY_I18N ICU_LIBRARY_UC ICU_LIBRARIES)

#
# Check presence of ucol_strcollUTF8 function from ICU
#
set(CMAKE_REQUIRED_LIBRARIES ${ICU_LIBRARIES})
set(CMAKE_REQUIRED_INCLUDES ${ICU_INCLUDE_DIRS})
set(CMAKE_REQUIRED_FLAGS "-std=c++11")
set(CMAKE_REQUIRED_DEFINITIONS "")
check_cxx_source_compiles("#include <unicode/ucol.h>
int main(void) {
    return (int)ucol_strcollUTF8(0, 0, 0, 0, 0, 0);
}" HAVE_ICU_STRCOLLUTF8)
set(CMAKE_REQUIRED_LIBRARIES "")
set(CMAKE_REQUIRED_INCLUDES "")
set(CMAKE_REQUIRED_FLAGS "")