@@ -294,7 +294,7 @@ endfunction()
294
294
function (_add_variant_link_flags )
295
295
set (oneValueArgs SDK ARCH BUILD_TYPE ENABLE_ASSERTIONS ANALYZE_CODE_COVERAGE
296
296
DEPLOYMENT_VERSION_OSX DEPLOYMENT_VERSION_IOS DEPLOYMENT_VERSION_TVOS DEPLOYMENT_VERSION_WATCHOS
297
- RESULT_VAR_NAME ENABLE_LTO LTO_OBJECT_NAME )
297
+ RESULT_VAR_NAME ENABLE_LTO LTO_OBJECT_NAME LIBRARY_SEARCH_DIRECTORIES )
298
298
cmake_parse_arguments (LFLAGS
299
299
""
300
300
"${oneValueArgs} "
@@ -310,6 +310,7 @@ function(_add_variant_link_flags)
310
310
endif ()
311
311
312
312
set (result ${${LFLAGS_RESULT_VAR_NAME}} )
313
+ set (library_search_directories ${${LFLAGS_LIBRARY_SEARCH_DIRECTORIES}} )
313
314
314
315
_add_variant_c_compile_link_flags (
315
316
SDK "${LFLAGS_SDK} "
@@ -337,8 +338,9 @@ function(_add_variant_link_flags)
337
338
elseif ("${LFLAGS_SDK} " STREQUAL "ANDROID" )
338
339
list (APPEND result
339
340
"-ldl"
340
- "-L${SWIFT_ANDROID_PREBUILT_PATH} /lib/gcc/arm-linux-androideabi/${SWIFT_ANDROID_NDK_GCC_VERSION} .x"
341
341
"${SWIFT_ANDROID_NDK_PATH} /sources/cxx-stl/llvm-libc++/libs/armeabi-v7a/libc++_shared.so" )
342
+ list (APPEND library_search_directories
343
+ "${SWIFT_ANDROID_PREBUILT_PATH} /lib/gcc/arm-linux-androideabi/${SWIFT_ANDROID_NDK_GCC_VERSION} .x" )
342
344
else ()
343
345
list (APPEND result "-lobjc" )
344
346
@@ -357,13 +359,14 @@ function(_add_variant_link_flags)
357
359
endif ()
358
360
359
361
if (NOT "${SWIFT_${LFLAGS_SDK} _ICU_UC}" STREQUAL "" )
360
- list (APPEND result "-L ${SWIFT_${sdk} _ICU_UC}" )
362
+ list (APPEND library_search_directories " ${SWIFT_${sdk} _ICU_UC}" )
361
363
endif ()
362
364
if (NOT "${SWIFT_${LFLAGS_SDK} _ICU_I18N}" STREQUAL "" )
363
- list (APPEND result "-L ${SWIFT_${sdk} _ICU_I18N}" )
365
+ list (APPEND library_search_directories " ${SWIFT_${sdk} _ICU_I18N}" )
364
366
endif ()
365
367
366
368
set ("${LFLAGS_RESULT_VAR_NAME} " "${result} " PARENT_SCOPE )
369
+ set ("${LFLAGS_LIBRARY_SEARCH_DIRECTORIES} " "${library_search_directories} " PARENT_SCOPE )
367
370
endfunction ()
368
371
369
372
# Look up extra flags for a module that matches a regexp.
@@ -460,6 +463,14 @@ function(_add_swift_lipo_target)
460
463
endif ()
461
464
endfunction ()
462
465
466
+ function (swift_target_link_search_directories target directories )
467
+ set (STLD_FLAGS "" )
468
+ foreach (directory ${directories} )
469
+ set (STLD_FLAGS " ${CMAKE_LIBRARY_PATH_FLAG}${directory} " )
470
+ endforeach ()
471
+ set_property (TARGET ${target} APPEND_STRING PROPERTY LINK_FLAGS ${STLD_FLAGS} )
472
+ endfunction ()
473
+
463
474
# Add a single variant of a new Swift library.
464
475
#
465
476
# Usage:
@@ -988,6 +999,10 @@ function(_add_swift_library_single target name)
988
999
# Don't set PROPERTY COMPILE_FLAGS or LINK_FLAGS directly.
989
1000
set (c_compile_flags ${SWIFTLIB_SINGLE_C_COMPILE_FLAGS} )
990
1001
set (link_flags ${SWIFTLIB_SINGLE_LINK_FLAGS} )
1002
+ set (library_search_directories
1003
+ "${SWIFTLIB_DIR} /${SWIFTLIB_SINGLE_SUBDIR} "
1004
+ "${SWIFT_NATIVE_SWIFT_TOOLS_PATH} /../lib/swift/${SWIFTLIB_SINGLE_SUBDIR} "
1005
+ "${SWIFT_NATIVE_SWIFT_TOOLS_PATH} /../lib/swift/${SWIFT_SDK_${SWIFTLIB_SINGLE_SDK} _LIB_SUBDIR}" )
991
1006
992
1007
# Add variant-specific flags.
993
1008
if (SWIFTLIB_SINGLE_TARGET_LIBRARY )
@@ -1029,6 +1044,7 @@ function(_add_swift_library_single target name)
1029
1044
DEPLOYMENT_VERSION_TVOS "${SWIFTLIB_DEPLOYMENT_VERSION_TVOS} "
1030
1045
DEPLOYMENT_VERSION_WATCHOS "${SWIFTLIB_DEPLOYMENT_VERSION_WATCHOS} "
1031
1046
RESULT_VAR_NAME link_flags
1047
+ LIBRARY_SEARCH_DIRECTORIES library_search_directories
1032
1048
)
1033
1049
1034
1050
if (SWIFT_ENABLE_GOLD_LINKER AND
@@ -1081,7 +1097,8 @@ function(_add_swift_library_single target name)
1081
1097
set_property (TARGET "${target} " APPEND_STRING PROPERTY
1082
1098
COMPILE_FLAGS " ${c_compile_flags} " )
1083
1099
set_property (TARGET "${target} " APPEND_STRING PROPERTY
1084
- 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}" )
1100
+ LINK_FLAGS " ${link_flags} " )
1101
+ swift_target_link_search_directories (${target} ${library_search_directories} )
1085
1102
1086
1103
# Adjust the linked libraries for windows targets. On Windows, the link is
1087
1104
# performed against the import library, and the runtime uses the dll. Not
@@ -1133,8 +1150,12 @@ function(_add_swift_library_single target name)
1133
1150
if (target_static )
1134
1151
set_property (TARGET "${target_static} " APPEND_STRING PROPERTY
1135
1152
COMPILE_FLAGS " ${c_compile_flags} " )
1136
- set_property (TARGET "${target_static} " APPEND_STRING PROPERTY
1137
- 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}" )
1153
+ set (library_search_directories
1154
+ "${SWIFTSTATICLIB_DIR} /${SWIFTLIB_SINGLE_SUBDIR} "
1155
+ "${SWIFT_NATIVE_SWIFT_TOOLS_PATH} /../lib/swift/${SWIFTLIB_SINGLE_SUBDIR} "
1156
+ "${SWIFT_NATIVE_SWIFT_TOOLS_PATH} /../lib/swift/${SWIFT_SDK_${SWIFTLIB_SINGLE_SDK} _LIB_SUBDIR}" )
1157
+ swift_target_link_search_directories (${target_static}
1158
+ ${library_search_directories} )
1138
1159
target_link_libraries ("${target_static} " PRIVATE
1139
1160
${SWIFTLIB_SINGLE_PRIVATE_LINK_LIBRARIES} )
1140
1161
endif ()
@@ -1773,9 +1794,6 @@ function(_add_swift_executable_single name)
1773
1794
ANALYZE_CODE_COVERAGE "${SWIFT_ANALYZE_CODE_COVERAGE} "
1774
1795
RESULT_VAR_NAME link_flags )
1775
1796
1776
- list (APPEND link_flags
1777
- "-L${SWIFTLIB_DIR} /${SWIFT_SDK_${SWIFTEXE_SINGLE_SDK} _LIB_SUBDIR}" )
1778
-
1779
1797
if (SWIFTEXE_SINGLE_DISABLE_ASLR )
1780
1798
list (APPEND link_flags "-Wl,-no_pie" )
1781
1799
endif ()
@@ -1839,6 +1857,8 @@ function(_add_swift_executable_single name)
1839
1857
1840
1858
set_property (TARGET ${name} APPEND_STRING PROPERTY
1841
1859
COMPILE_FLAGS " ${c_compile_flags} " )
1860
+ swift_target_link_search_directories (${name}
1861
+ "${SWIFTLIB_DIR} /${SWIFT_SDK_${SWIFTEXE_SINGLE_SDK} _LIB_SUBDIR}" )
1842
1862
set_property (TARGET ${name} APPEND_STRING PROPERTY
1843
1863
LINK_FLAGS " ${link_flags} " )
1844
1864
if (SWIFT_PARALLEL_LINK_JOBS )
0 commit comments