Skip to content

Commit f39defa

Browse files
authored
Merge pull request swiftlang#23825 from compnerd/researching-search-paths
Adjust ICU include path handling for cross-compiling android
2 parents e0f79dc + 7e79874 commit f39defa

File tree

1 file changed

+24
-15
lines changed

1 file changed

+24
-15
lines changed

cmake/modules/AddSwift.cmake

Lines changed: 24 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -318,6 +318,30 @@ function(_add_variant_c_compile_flags)
318318
endforeach()
319319
endif()
320320

321+
set(ICU_UC_INCLUDE_DIR ${SWIFT_${CFLAGS_SDK}_${CFLAGS_ARCH}_ICU_UC_INCLUDE})
322+
if(NOT "${ICU_UC_INCLUDE_DIR}" STREQUAL "" AND
323+
NOT "${ICU_UC_INCLUDE_DIR}" STREQUAL "/usr/include" AND
324+
NOT "${ICU_UC_INCLUDE_DIR}" STREQUAL "/usr/${SWIFT_SDK_${CFLAGS_SDK}_ARCH_${CFLAGS_ARCH}_TRIPLE}/include" AND
325+
NOT "${ICU_UC_INCLUDE_DIR}" STREQUAL "/usr/${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK}_ARCH_${SWIFT_HOST_VARIANT_ARCH}_TRIPLE}/include")
326+
if(SWIFT_COMPILER_IS_MSVC_LIKE)
327+
list(APPEND result -I;${ICU_UC_INCLUDE_DIR})
328+
else()
329+
list(APPEND result -isystem;${ICU_UC_INCLUDE_DIR})
330+
endif()
331+
endif()
332+
333+
set(ICU_I18N_INCLUDE_DIR ${SWIFT_${CFLAGS_SDK}_${CFLAGS_ARCH}_ICU_I18N_INCLUDE})
334+
if(NOT "${ICU_I18N_INCLUDE_DIR}" STREQUAL "" AND
335+
NOT "${ICU_I18N_INCLUDE_DIR}" STREQUAL "/usr/include" AND
336+
NOT "${ICU_I18N_INCLUDE_DIR}" STREQUAL "/usr/${SWIFT_SDK_${CFLAGS_SDK}_ARCH_${CFLAGS_ARCH}_TRIPLE}/include" AND
337+
NOT "${ICU_I18N_INCLUDE_DIR}" STREQUAL "/usr/${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK}_ARCH_${SWIFT_HOST_VARIANT_ARCH}_TRIPLE}/include")
338+
if(SWIFT_COMPILER_IS_MSVC_LIKE)
339+
list(APPEND result -I;${ICU_I18N_INCLUDE_DIR})
340+
else()
341+
list(APPEND result -isystem;${ICU_I18N_INCLUDE_DIR})
342+
endif()
343+
endif()
344+
321345
set("${CFLAGS_RESULT_VAR_NAME}" "${result}" PARENT_SCOPE)
322346
endfunction()
323347

@@ -960,21 +984,6 @@ function(_add_swift_library_single target name)
960984
endif()
961985
_set_target_prefix_and_suffix("${target}" "${libkind}" "${SWIFTLIB_SINGLE_SDK}")
962986

963-
if(SWIFTLIB_SINGLE_TARGET_LIBRARY)
964-
if(NOT "${SWIFT_${SWIFTLIB_SINGLE_SDK}_${SWIFTLIB_SINGLE_ARCHITECTURE}_ICU_UC_INCLUDE}" STREQUAL "" AND
965-
NOT "${SWIFT_${SWIFTLIB_SINGLE_SDK}_${SWIFTLIB_SINGLE_ARCHITECTURE}_ICU_UC_INCLUDE}" STREQUAL "/usr/include" AND
966-
NOT "${SWIFT_${SWIFTLIB_SINGLE_SDK}_${SWIFTLIB_SINGLE_ARCHITECTURE}_ICU_UC_INCLUDE}" STREQUAL "/usr/${SWIFT_SDK_${SWIFTLIB_SINGLE_SDK}_ARCH_${SWIFTLIB_SINGLE_ARCHITECTURE}_TRIPLE}/include" AND
967-
NOT "${SWIFT_${SWIFTLIB_SINGLE_SDK}_${SWIFTLIB_SINGLE_ARCHITECTURE}_ICU_UC_INCLUDE}" STREQUAL "/usr/${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK}_ARCH_${SWIFT_HOST_VARIANT_ARCH}_TRIPLE}/include")
968-
target_include_directories("${target}" SYSTEM PRIVATE "${SWIFT_${SWIFTLIB_SINGLE_SDK}_${SWIFTLIB_SINGLE_ARCHITECTURE}_ICU_UC_INCLUDE}")
969-
endif()
970-
if(NOT "${SWIFT_${SWIFTLIB_SINGLE_SDK}_${SWIFTLIB_SINGLE_ARCHITECTURE}_ICU_I18N_INCLUDE}" STREQUAL "" AND
971-
NOT "${SWIFT_${SWIFTLIB_SINGLE_SDK}_${SWIFTLIB_SINGLE_ARCHITECTURE}_ICU_I18N_INCLUDE}" STREQUAL "/usr/include" AND
972-
NOT "${SWIFT_${SWIFTLIB_SINGLE_SDK}_${SWIFTLIB_SINGLE_ARCHITECTURE}_ICU_I18N_INCLUDE}" STREQUAL "/usr/${SWIFT_SDK_${SWIFTLIB_SINGLE_SDK}_ARCH_${SWIFTLIB_SINGLE_ARCHITECTURE}_TRIPLE}/include" AND
973-
NOT "${SWIFT_${SWIFTLIB_SINGLE_SDK}_${SWIFTLIB_SINGLE_ARCHITECTURE}_ICU_I18N_INCLUDE}" STREQUAL "/usr/${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK}_ARCH_${SWIFT_HOST_VARIANT_ARCH}_TRIPLE}/include")
974-
target_include_directories("${target}" SYSTEM PRIVATE "${SWIFT_${SWIFTLIB_SINGLE_SDK}_${SWIFTLIB_SINGLE_ARCHITECTURE}_ICU_I18N_INCLUDE}")
975-
endif()
976-
endif()
977-
978987
if("${SWIFTLIB_SINGLE_SDK}" STREQUAL "WINDOWS")
979988
swift_windows_include_for_arch(${SWIFTLIB_SINGLE_ARCHITECTURE} SWIFTLIB_INCLUDE)
980989
target_include_directories("${target}" SYSTEM PRIVATE ${SWIFTLIB_INCLUDE})

0 commit comments

Comments
 (0)