mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
Commit for CMake and build scripts to recognize OpenBSD. To keep this commit relatively short, this just deals with the rather simple and uncontroversial changes to the build system. Note that OpenBSD calls "x86_64" as "amd64", Since the Swift stdlib will be put in a subdirectory named after ARCH, to ensure the standard library is properly found later, we use the native architecture name for OpenBSD in the build system rather than trying to deal with the difference the other way around.
41 lines
1.5 KiB
CMake
41 lines
1.5 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_DIRS ICU_${MODULE}_LIBRARIES)
|
|
|
|
pkg_check_modules(PC_ICU_${MODULE} QUIET icu-${module})
|
|
if(NOT PKG_CONFIG_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()
|
|
|
|
find_path(ICU_${MODULE}_INCLUDE_DIRS unicode
|
|
HINTS ${PC_ICU_${MODULE}_INCLUDE_DIRS})
|
|
find_library(ICU_${MODULE}_LIBRARIES NAMES icu${module} ${ICU_${MODULE}_LIB_NAME}
|
|
HINTS ${PC_ICU_${MODULE}_LIBRARY_DIRS})
|
|
endforeach()
|
|
|
|
foreach(sdk ANDROID;FREEBSD;OPENBSD;LINUX;WINDOWS;HAIKU)
|
|
foreach(MODULE ${ICU_FIND_COMPONENTS})
|
|
string(TOUPPER "${MODULE}" MODULE)
|
|
if("${SWIFT_${sdk}_${SWIFT_HOST_VARIANT_ARCH}_ICU_${MODULE}_INCLUDE}" STREQUAL "")
|
|
set(SWIFT_${sdk}_${SWIFT_HOST_VARIANT_ARCH}_ICU_${MODULE}_INCLUDE ${ICU_${MODULE}_INCLUDE_DIRS} CACHE STRING "" FORCE)
|
|
endif()
|
|
if("${SWIFT_${sdk}_${SWIFT_HOST_VARIANT_ARCH}_ICU_${MODULE}}" STREQUAL "")
|
|
set(SWIFT_${sdk}_${SWIFT_HOST_VARIANT_ARCH}_ICU_${MODULE} ${ICU_${MODULE}_LIBRARIES} CACHE STRING "" FORCE)
|
|
endif()
|
|
endforeach()
|
|
endforeach()
|
|
|
|
find_package_handle_standard_args(ICU DEFAULT_MSG ${ICU_REQUIRED})
|
|
mark_as_advanced(${ICU_REQUIRED})
|