@@ -293,7 +293,7 @@ endfunction()
293
293
function (_add_variant_link_flags )
294
294
set (oneValueArgs SDK ARCH BUILD_TYPE ENABLE_ASSERTIONS ANALYZE_CODE_COVERAGE
295
295
DEPLOYMENT_VERSION_OSX DEPLOYMENT_VERSION_IOS DEPLOYMENT_VERSION_TVOS DEPLOYMENT_VERSION_WATCHOS
296
- RESULT_VAR_NAME ENABLE_LTO LTO_OBJECT_NAME )
296
+ RESULT_VAR_NAME ENABLE_LTO LTO_OBJECT_NAME LIBRARY_SEARCH_DIRECTORIES )
297
297
cmake_parse_arguments (LFLAGS
298
298
""
299
299
"${oneValueArgs} "
@@ -309,6 +309,7 @@ function(_add_variant_link_flags)
309
309
endif ()
310
310
311
311
set (result ${${LFLAGS_RESULT_VAR_NAME}} )
312
+ set (library_search_directories ${${LFLAGS_LIBRARY_SEARCH_DIRECTORIES}} )
312
313
313
314
_add_variant_c_compile_link_flags (
314
315
SDK "${LFLAGS_SDK} "
@@ -336,8 +337,9 @@ function(_add_variant_link_flags)
336
337
elseif ("${LFLAGS_SDK} " STREQUAL "ANDROID" )
337
338
list (APPEND result
338
339
"-ldl"
339
- "-L${SWIFT_ANDROID_PREBUILT_PATH} /lib/gcc/arm-linux-androideabi/${SWIFT_ANDROID_NDK_GCC_VERSION} .x"
340
340
"${SWIFT_ANDROID_NDK_PATH} /sources/cxx-stl/llvm-libc++/libs/armeabi-v7a/libc++_shared.so" )
341
+ list (APPEND library_search_directories
342
+ "${SWIFT_ANDROID_PREBUILT_PATH} /lib/gcc/arm-linux-androideabi/${SWIFT_ANDROID_NDK_GCC_VERSION} .x" )
341
343
else ()
342
344
list (APPEND result "-lobjc" )
343
345
@@ -356,13 +358,14 @@ function(_add_variant_link_flags)
356
358
endif ()
357
359
358
360
if (NOT "${SWIFT_${LFLAGS_SDK} _ICU_UC}" STREQUAL "" )
359
- list (APPEND result "-L ${SWIFT_${sdk} _ICU_UC}" )
361
+ list (APPEND library_search_directories " ${SWIFT_${sdk} _ICU_UC}" )
360
362
endif ()
361
363
if (NOT "${SWIFT_${LFLAGS_SDK} _ICU_I18N}" STREQUAL "" )
362
- list (APPEND result "-L ${SWIFT_${sdk} _ICU_I18N}" )
364
+ list (APPEND library_search_directories " ${SWIFT_${sdk} _ICU_I18N}" )
363
365
endif ()
364
366
365
367
set ("${LFLAGS_RESULT_VAR_NAME} " "${result} " PARENT_SCOPE )
368
+ set ("${LFLAGS_LIBRARY_SEARCH_DIRECTORIES} " "${library_search_directories} " PARENT_SCOPE )
366
369
endfunction ()
367
370
368
371
# Look up extra flags for a module that matches a regexp.
@@ -459,6 +462,14 @@ function(_add_swift_lipo_target)
459
462
endif ()
460
463
endfunction ()
461
464
465
+ function (swift_target_link_search_directories target directories )
466
+ set (STLD_FLAGS "" )
467
+ foreach (directory ${directories} )
468
+ set (STLD_FLAGS " ${CMAKE_LIBRARY_PATH_FLAG}${directory} " )
469
+ endforeach ()
470
+ set_property (TARGET ${target} APPEND_STRING PROPERTY LINK_FLAGS ${STLD_FLAGS} )
471
+ endfunction ()
472
+
462
473
# Add a single variant of a new Swift library.
463
474
#
464
475
# Usage:
@@ -999,6 +1010,10 @@ function(_add_swift_library_single target name)
999
1010
# Don't set PROPERTY COMPILE_FLAGS or LINK_FLAGS directly.
1000
1011
set (c_compile_flags ${SWIFTLIB_SINGLE_C_COMPILE_FLAGS} )
1001
1012
set (link_flags ${SWIFTLIB_SINGLE_LINK_FLAGS} )
1013
+ set (library_search_directories
1014
+ "${SWIFTLIB_DIR} /${SWIFTLIB_SINGLE_SUBDIR} "
1015
+ "${SWIFT_NATIVE_SWIFT_TOOLS_PATH} /../lib/swift/${SWIFTLIB_SINGLE_SUBDIR} "
1016
+ "${SWIFT_NATIVE_SWIFT_TOOLS_PATH} /../lib/swift/${SWIFT_SDK_${SWIFTLIB_SINGLE_SDK} _LIB_SUBDIR}" )
1002
1017
1003
1018
# Add variant-specific flags.
1004
1019
if (SWIFTLIB_SINGLE_TARGET_LIBRARY )
@@ -1040,6 +1055,7 @@ function(_add_swift_library_single target name)
1040
1055
DEPLOYMENT_VERSION_TVOS "${SWIFTLIB_DEPLOYMENT_VERSION_TVOS} "
1041
1056
DEPLOYMENT_VERSION_WATCHOS "${SWIFTLIB_DEPLOYMENT_VERSION_WATCHOS} "
1042
1057
RESULT_VAR_NAME link_flags
1058
+ LIBRARY_SEARCH_DIRECTORIES library_search_directories
1043
1059
)
1044
1060
1045
1061
if (SWIFT_ENABLE_GOLD_LINKER AND
@@ -1092,7 +1108,8 @@ function(_add_swift_library_single target name)
1092
1108
set_property (TARGET "${target} " APPEND_STRING PROPERTY
1093
1109
COMPILE_FLAGS " ${c_compile_flags} " )
1094
1110
set_property (TARGET "${target} " APPEND_STRING PROPERTY
1095
- LINK_FLAGS " ${link_flags} -L${SWIFTLIB_DIR} /${SWIFTLIB_SINGLE_SUBDIR} -L${SWIFT_NATIVE_SWIFT_TOOLS_PATH} /../lib/swift/${SWIFTLIB_SINGLE_SUBDIR} -L${SWIFT_NATIVE_SWIFT_TOOLS_PATH} /../lib/swift/${SWIFT_SDK_${SWIFTLIB_SINGLE_SDK} _LIB_SUBDIR}" )
1111
+ LINK_FLAGS " ${link_flags} " )
1112
+ swift_target_link_search_directories (${target} ${library_search_directories} )
1096
1113
1097
1114
# Adjust the linked libraries for windows targets. On Windows, the link is
1098
1115
# performed against the import library, and the runtime uses the dll. Not
@@ -1144,8 +1161,12 @@ function(_add_swift_library_single target name)
1144
1161
if (target_static )
1145
1162
set_property (TARGET "${target_static} " APPEND_STRING PROPERTY
1146
1163
COMPILE_FLAGS " ${c_compile_flags} " )
1147
- set_property (TARGET "${target_static} " APPEND_STRING PROPERTY
1148
- LINK_FLAGS " ${link_flags} -L${SWIFTSTATICLIB_DIR} /${SWIFTLIB_SINGLE_SUBDIR} -L${SWIFT_NATIVE_SWIFT_TOOLS_PATH} /../lib/swift/${SWIFTLIB_SINGLE_SUBDIR} -L${SWIFT_NATIVE_SWIFT_TOOLS_PATH} /../lib/swift/${SWIFT_SDK_${SWIFTLIB_SINGLE_SDK} _LIB_SUBDIR}" )
1164
+ set (library_search_directories
1165
+ "${SWIFTSTATICLIB_DIR} /${SWIFTLIB_SINGLE_SUBDIR} "
1166
+ "${SWIFT_NATIVE_SWIFT_TOOLS_PATH} /../lib/swift/${SWIFTLIB_SINGLE_SUBDIR} "
1167
+ "${SWIFT_NATIVE_SWIFT_TOOLS_PATH} /../lib/swift/${SWIFT_SDK_${SWIFTLIB_SINGLE_SDK} _LIB_SUBDIR}" )
1168
+ swift_target_link_search_directories (${target_static}
1169
+ ${library_search_directories} )
1149
1170
target_link_libraries ("${target_static} " PRIVATE
1150
1171
${SWIFTLIB_SINGLE_PRIVATE_LINK_LIBRARIES} )
1151
1172
endif ()
@@ -1784,9 +1805,6 @@ function(_add_swift_executable_single name)
1784
1805
ANALYZE_CODE_COVERAGE "${SWIFT_ANALYZE_CODE_COVERAGE} "
1785
1806
RESULT_VAR_NAME link_flags )
1786
1807
1787
- list (APPEND link_flags
1788
- "-L${SWIFTLIB_DIR} /${SWIFT_SDK_${SWIFTEXE_SINGLE_SDK} _LIB_SUBDIR}" )
1789
-
1790
1808
if (SWIFTEXE_SINGLE_DISABLE_ASLR )
1791
1809
list (APPEND link_flags "-Wl,-no_pie" )
1792
1810
endif ()
@@ -1852,6 +1870,8 @@ function(_add_swift_executable_single name)
1852
1870
1853
1871
set_property (TARGET ${name} APPEND_STRING PROPERTY
1854
1872
COMPILE_FLAGS " ${c_compile_flags} " )
1873
+ swift_target_link_search_directories (${name}
1874
+ "${SWIFTLIB_DIR} /${SWIFT_SDK_${SWIFTEXE_SINGLE_SDK} _LIB_SUBDIR}" )
1855
1875
set_property (TARGET ${name} APPEND_STRING PROPERTY
1856
1876
LINK_FLAGS " ${link_flags} " )
1857
1877
if (SWIFT_PARALLEL_LINK_JOBS )
0 commit comments