Skip to content

Commit bcbe8e7

Browse files
authored
Remove SWIFTLIB_SINGLE_TARGET_LIBRARY (#38978)
* Remove SWIFTLIB_SINGLE_TARGET_LIBRARY * Use NOSWIFTRT on BlocksRuntime
1 parent eae515c commit bcbe8e7

File tree

2 files changed

+28
-44
lines changed

2 files changed

+28
-44
lines changed

stdlib/cmake/modules/AddSwiftStdlib.cmake

Lines changed: 27 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -628,7 +628,6 @@ function(_add_swift_target_library_single target name)
628628
OBJECT_LIBRARY
629629
SHARED
630630
STATIC
631-
TARGET_LIBRARY
632631
INSTALL_WITH_SHARED)
633632
set(SWIFTLIB_SINGLE_single_parameter_options
634633
ARCHITECTURE
@@ -856,7 +855,7 @@ function(_add_swift_target_library_single target name)
856855
endforeach()
857856

858857
set(SWIFTLIB_SINGLE_XCODE_WORKAROUND_SOURCES)
859-
if(XCODE AND SWIFTLIB_SINGLE_TARGET_LIBRARY)
858+
if(XCODE)
860859
set(SWIFTLIB_SINGLE_XCODE_WORKAROUND_SOURCES
861860
# Note: the dummy.cpp source file provides no definitions. However,
862861
# it forces Xcode to properly link the static library.
@@ -879,8 +878,7 @@ function(_add_swift_target_library_single target name)
879878
target_include_directories(${target} BEFORE PRIVATE
880879
${SWIFT_SOURCE_DIR}/stdlib/include)
881880
if(("${SWIFT_SDK_${SWIFTLIB_SINGLE_SDK}_OBJECT_FORMAT}" STREQUAL "ELF" OR
882-
"${SWIFT_SDK_${SWIFTLIB_SINGLE_SDK}_OBJECT_FORMAT}" STREQUAL "COFF") AND
883-
SWIFTLIB_SINGLE_TARGET_LIBRARY)
881+
"${SWIFT_SDK_${SWIFTLIB_SINGLE_SDK}_OBJECT_FORMAT}" STREQUAL "COFF"))
884882
if("${libkind}" STREQUAL "SHARED" AND NOT SWIFTLIB_SINGLE_NOSWIFTRT)
885883
# TODO(compnerd) switch to the generator expression when cmake is upgraded
886884
# to a version which supports it.
@@ -943,27 +941,25 @@ function(_add_swift_target_library_single target name)
943941
SUFFIX ${LLVM_PLUGIN_EXT})
944942
endif()
945943

946-
if(SWIFTLIB_SINGLE_TARGET_LIBRARY)
947-
# Install runtime libraries to lib/swift instead of lib. This works around
948-
# the fact that -isysroot prevents linking to libraries in the system
949-
# /usr/lib if Swift is installed in /usr.
950-
set_target_properties("${target}" PROPERTIES
951-
LIBRARY_OUTPUT_DIRECTORY ${SWIFTLIB_DIR}/${SWIFTLIB_SINGLE_SUBDIR}
952-
ARCHIVE_OUTPUT_DIRECTORY ${SWIFTLIB_DIR}/${SWIFTLIB_SINGLE_SUBDIR})
953-
if(SWIFTLIB_SINGLE_SDK STREQUAL WINDOWS AND SWIFTLIB_SINGLE_IS_STDLIB_CORE
954-
AND libkind STREQUAL SHARED)
955-
add_custom_command(TARGET ${target} POST_BUILD
956-
COMMAND ${CMAKE_COMMAND} -E copy_if_different $<TARGET_FILE:${target}> ${SWIFTLIB_DIR}/${SWIFTLIB_SINGLE_SUBDIR})
957-
endif()
958-
959-
foreach(config ${CMAKE_CONFIGURATION_TYPES})
960-
string(TOUPPER ${config} config_upper)
961-
escape_path_for_xcode("${config}" "${SWIFTLIB_DIR}" config_lib_dir)
962-
set_target_properties(${target} PROPERTIES
963-
LIBRARY_OUTPUT_DIRECTORY_${config_upper} ${config_lib_dir}/${SWIFTLIB_SINGLE_SUBDIR}
964-
ARCHIVE_OUTPUT_DIRECTORY_${config_upper} ${config_lib_dir}/${SWIFTLIB_SINGLE_SUBDIR})
965-
endforeach()
966-
endif()
944+
# Install runtime libraries to lib/swift instead of lib. This works around
945+
# the fact that -isysroot prevents linking to libraries in the system
946+
# /usr/lib if Swift is installed in /usr.
947+
set_target_properties("${target}" PROPERTIES
948+
LIBRARY_OUTPUT_DIRECTORY ${SWIFTLIB_DIR}/${SWIFTLIB_SINGLE_SUBDIR}
949+
ARCHIVE_OUTPUT_DIRECTORY ${SWIFTLIB_DIR}/${SWIFTLIB_SINGLE_SUBDIR})
950+
if(SWIFTLIB_SINGLE_SDK STREQUAL WINDOWS AND SWIFTLIB_SINGLE_IS_STDLIB_CORE
951+
AND libkind STREQUAL SHARED)
952+
add_custom_command(TARGET ${target} POST_BUILD
953+
COMMAND ${CMAKE_COMMAND} -E copy_if_different $<TARGET_FILE:${target}> ${SWIFTLIB_DIR}/${SWIFTLIB_SINGLE_SUBDIR})
954+
endif()
955+
956+
foreach(config ${CMAKE_CONFIGURATION_TYPES})
957+
string(TOUPPER ${config} config_upper)
958+
escape_path_for_xcode("${config}" "${SWIFTLIB_DIR}" config_lib_dir)
959+
set_target_properties(${target} PROPERTIES
960+
LIBRARY_OUTPUT_DIRECTORY_${config_upper} ${config_lib_dir}/${SWIFTLIB_SINGLE_SUBDIR}
961+
ARCHIVE_OUTPUT_DIRECTORY_${config_upper} ${config_lib_dir}/${SWIFTLIB_SINGLE_SUBDIR})
962+
endforeach()
967963

968964
if(SWIFTLIB_SINGLE_SDK IN_LIST SWIFT_DARWIN_PLATFORMS)
969965
set(install_name_dir "@rpath")
@@ -999,9 +995,7 @@ function(_add_swift_target_library_single target name)
999995
# for an Android cross-build from a macOS host. Construct the proper linker
1000996
# flags manually in add_swift_target_library instead, see there with
1001997
# variable `swiftlib_link_flags_all`.
1002-
if(SWIFTLIB_SINGLE_TARGET_LIBRARY)
1003-
set_target_properties("${target}" PROPERTIES NO_SONAME TRUE)
1004-
endif()
998+
set_target_properties("${target}" PROPERTIES NO_SONAME TRUE)
1005999
# Only set the install RPATH if the toolchain and stdlib will be in Termux
10061000
# or some other native sysroot on Android.
10071001
if(NOT "${SWIFT_ANDROID_NATIVE_SYSROOT}" STREQUAL "")
@@ -1068,11 +1062,9 @@ function(_add_swift_target_library_single target name)
10681062

10691063
# Don't build standard libraries by default. We will enable building
10701064
# standard libraries that the user requested; the rest can be built on-demand.
1071-
if(SWIFTLIB_SINGLE_TARGET_LIBRARY)
1072-
foreach(t "${target}" ${target_static})
1073-
set_target_properties(${t} PROPERTIES EXCLUDE_FROM_ALL TRUE)
1074-
endforeach()
1075-
endif()
1065+
foreach(t "${target}" ${target_static})
1066+
set_target_properties(${t} PROPERTIES EXCLUDE_FROM_ALL TRUE)
1067+
endforeach()
10761068

10771069
# Handle linking and dependencies.
10781070
add_dependencies_multiple_targets(
@@ -1147,15 +1139,8 @@ function(_add_swift_target_library_single target name)
11471139
list(APPEND library_search_directories "${SWIFT_SDK_${sdk}_ARCH_${arch}_PATH}/usr/lib/swift")
11481140

11491141
# Add variant-specific flags.
1150-
if(SWIFTLIB_SINGLE_TARGET_LIBRARY)
1151-
set(build_type "${SWIFT_STDLIB_BUILD_TYPE}")
1152-
set(enable_assertions "${SWIFT_STDLIB_ASSERTIONS}")
1153-
else()
1154-
set(build_type "${CMAKE_BUILD_TYPE}")
1155-
set(enable_assertions "${LLVM_ENABLE_ASSERTIONS}")
1156-
set(analyze_code_coverage "${SWIFT_ANALYZE_CODE_COVERAGE}")
1157-
endif()
1158-
1142+
set(build_type "${SWIFT_STDLIB_BUILD_TYPE}")
1143+
set(enable_assertions "${SWIFT_STDLIB_ASSERTIONS}")
11591144
set(lto_type "${SWIFT_STDLIB_ENABLE_LTO}")
11601145

11611146
_add_target_variant_c_compile_flags(
@@ -1994,7 +1979,6 @@ function(add_swift_target_library name)
19941979
${SWIFTLIB_OBJECT_LIBRARY_keyword}
19951980
${SWIFTLIB_INSTALL_WITH_SHARED_keyword}
19961981
${SWIFTLIB_SOURCES}
1997-
TARGET_LIBRARY
19981982
MODULE_TARGETS ${module_variant_names}
19991983
SDK ${sdk}
20001984
ARCHITECTURE ${arch}

stdlib/private/BlocksRuntimeStubs/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ foreach(SDK ${SWIFT_SDKS})
1414
_add_swift_target_library_single(
1515
BlocksRuntimeStub${VARIANT_SUFFIX}
1616
BlocksRuntimeStub
17-
SHARED
17+
SHARED NOSWIFTRT
1818
ARCHITECTURE ${ARCH}
1919
SDK ${SDK}
2020
INSTALL_IN_COMPONENT dev

0 commit comments

Comments
 (0)