mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
If you don't have PkgConfig, you'll need to pass the following to CMake: ``` -DICU_UC_INCLUDE_DIRS="%swift_source_dir%/icu/include"^ -DICU_UC_LIBRARY_DIRS="%swift_source_dir%/icu/lib64"^ -DICU_I18N_INCLUDE_DIRS="%swift_source_dir%/icu/include"^ -DICU_I18N_LIBRARY_DIRS="%swift_source_dir%/icu/lib64"^ -DICU_UC_LIB_NAME="icuuc"^ -DICU_I18N_LIB_NAME="icuin" ``` icu
48 lines
1.7 KiB
CMake
48 lines
1.7 KiB
CMake
# Find libicu's libraries
|
|
|
|
include(FindPackageHandleStandardArgs)
|
|
|
|
find_package(PkgConfig)
|
|
|
|
set(ICU_REQUIRED)
|
|
foreach(MODULE ${ICU_FIND_COMPONENTS})
|
|
string(TOUPPER "${MODULE}" MODULE)
|
|
string(TOLOWER "${MODULE}" module)
|
|
list(APPEND ICU_REQUIRED
|
|
ICU_${MODULE}_INCLUDE_DIR ICU_${MODULE}_LIBRARIES)
|
|
|
|
pkg_check_modules(PC_ICU_${MODULE} QUIET icu-${module})
|
|
if(NOT ${PKGCONFIG_FOUND})
|
|
# PkgConfig doesn't exist on this system, so we manually provide hints via CMake.
|
|
set(PC_ICU_${MODULE}_INCLUDE_DIRS "${ICU_${MODULE}_INCLUDE_DIRS}")
|
|
set(PC_ICU_${MODULE}_LIBRARY_DIRS "${ICU_${MODULE}_LIBRARY_DIRS}")
|
|
endif()
|
|
|
|
if((${PC_ICU_${MODULE}_FOUND}) OR (NOT ${PKGCONFIG_FOUND}))
|
|
set(ICU_${MODULE}_DEFINITIONS ${PC_ICU_${MODULE}_CFLAGS_OTHER})
|
|
|
|
find_path(ICU_${MODULE}_INCLUDE_DIR unicode
|
|
HINTS ${PC_ICU_${MODULE}_INCLUDEDIR} ${PC_ICU_${MODULE}_INCLUDE_DIRS})
|
|
set(ICU_${MODULE}_INCLUDE_DIRS ${ICU_${MODULE}_INCLUDE_DIR})
|
|
|
|
find_library(ICU_${MODULE}_LIBRARY NAMES icu${module} ${ICU_${MODULE}_LIB_NAME}
|
|
HINTS ${PC_ICU_${MODULE}_LIBDIR} ${PC_ICU_${MODULE}_LIBRARY_DIRS})
|
|
set(ICU_${MODULE}_LIBRARIES ${ICU_${MODULE}_LIBRARY})
|
|
endif()
|
|
endforeach()
|
|
|
|
foreach(sdk ANDROID;FREEBSD;LINUX;WINDOWS)
|
|
foreach(MODULE ${ICU_FIND_COMPONENTS})
|
|
string(TOUPPER "${MODULE}" MODULE)
|
|
if("${SWIFT_${sdk}_ICU_${MODULE}_INCLUDE}" STREQUAL "")
|
|
set(SWIFT_${sdk}_ICU_${MODULE}_INCLUDE ${ICU_${MODULE}_INCLUDE_DIRS})
|
|
endif()
|
|
if("${SWIFT_${sdk}_ICU_${MODULE}}" STREQUAL "")
|
|
set(SWIFT_${sdk}_ICU_${MODULE} ${ICU_${MODULE}_LIBRARY})
|
|
endif()
|
|
endforeach()
|
|
endforeach()
|
|
|
|
find_package_handle_standard_args(ICU DEFAULT_MSG ${ICU_REQUIRED})
|
|
mark_as_advanced(${ICU_REQUIRED})
|