Skip to content

Commit bcde248

Browse files
authored
Merge pull request #63971 from apple/revert-63650-backtracing/add-libexec
Revert "[Backtracing] Add support for building target executables into libexec."
2 parents 164e93e + f042ca0 commit bcde248

File tree

2 files changed

+16
-274
lines changed

2 files changed

+16
-274
lines changed

cmake/modules/AddSwift.cmake

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -49,11 +49,6 @@ set(SWIFTLIB_DIR
4949
set(SWIFTSTATICLIB_DIR
5050
"${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/lib/swift_static")
5151

52-
# SWIFTLIBEXEC_DIR is the directory in the build tree where Swift auxiliary
53-
# executables should be placed.
54-
set(SWIFTLIBEXEC_DIR
55-
"${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/libexec/swift")
56-
5752
function(_compute_lto_flag option out_var)
5853
string(TOLOWER "${option}" lowercase_option)
5954
if (lowercase_option STREQUAL "full")

stdlib/cmake/modules/AddSwiftStdlib.cmake

Lines changed: 16 additions & 269 deletions
Original file line numberDiff line numberDiff line change
@@ -156,11 +156,7 @@ function(_add_target_variant_c_compile_flags)
156156

157157
set(result ${${CFLAGS_RESULT_VAR_NAME}})
158158

159-
list(APPEND result
160-
"-DSWIFT_RUNTIME"
161-
"-DSWIFT_LIB_SUBDIR=\"${SWIFT_SDK_${CFLAGS_SDK}_LIB_SUBDIR}\""
162-
"-DSWIFT_ARCH=\"${CFLAGS_ARCH}\""
163-
)
159+
list(APPEND result "-DSWIFT_RUNTIME")
164160

165161
if ("${CFLAGS_ARCH}" STREQUAL "arm64" OR
166162
"${CFLAGS_ARCH}" STREQUAL "arm64_32")
@@ -2510,16 +2506,11 @@ endfunction()
25102506
#
25112507
# [ARCHITECTURE architecture]
25122508
# Architecture to build for.
2513-
#
2514-
# [INSTALL_IN_COMPONENT component]
2515-
# The Swift installation component that this executable belongs to.
2516-
# Defaults to never_install.
25172509
function(_add_swift_target_executable_single name)
25182510
set(options)
25192511
set(single_parameter_options
25202512
ARCHITECTURE
2521-
SDK
2522-
INSTALL_IN_COMPONENT)
2513+
SDK)
25232514
set(multiple_parameter_options
25242515
COMPILE_FLAGS
25252516
DEPENDS)
@@ -2564,8 +2555,6 @@ function(_add_swift_target_executable_single name)
25642555
LINK_LIBRARIES_VAR_NAME link_libraries
25652556
LIBRARY_SEARCH_DIRECTORIES_VAR_NAME library_search_directories)
25662557

2567-
string(MAKE_C_IDENTIFIER "${name}" module_name)
2568-
25692558
handle_swift_sources(
25702559
dependency_target
25712560
unused_module_dependency_target
@@ -2575,12 +2564,11 @@ function(_add_swift_target_executable_single name)
25752564
SWIFTEXE_SINGLE_SOURCES SWIFTEXE_SINGLE_EXTERNAL_SOURCES ${name}
25762565
DEPENDS
25772566
${SWIFTEXE_SINGLE_DEPENDS}
2578-
MODULE_NAME ${module_name}
2567+
MODULE_NAME ${name}
25792568
SDK ${SWIFTEXE_SINGLE_SDK}
25802569
ARCHITECTURE ${SWIFTEXE_SINGLE_ARCHITECTURE}
25812570
COMPILE_FLAGS ${SWIFTEXE_SINGLE_COMPILE_FLAGS}
25822571
ENABLE_LTO "${SWIFT_STDLIB_ENABLE_LTO}"
2583-
INSTALL_IN_COMPONENT "${install_in_component}"
25842572
IS_MAIN)
25852573
add_swift_source_group("${SWIFTEXE_SINGLE_EXTERNAL_SOURCES}")
25862574

@@ -2625,7 +2613,7 @@ function(_add_swift_target_executable_single name)
26252613
if(${SWIFTEXE_SINGLE_SDK} IN_LIST SWIFT_DARWIN_PLATFORMS)
26262614
set_target_properties(${name} PROPERTIES
26272615
BUILD_WITH_INSTALL_RPATH YES
2628-
INSTALL_RPATH "@executable_path/../lib/swift/${SWIFT_SDK_${SWIFTEXE_SINGLE_SDK}_LIB_SUBDIR};@executable_path/../../../lib/swift/${SWIFT_SDK_${SWIFTEXE_SINGLE_SDK}_LIB_SUBDIR}")
2616+
INSTALL_RPATH "@executable_path/../lib/swift/${SWIFT_SDK_${SWIFTEXE_SINGLE_SDK}_LIB_SUBDIR}")
26292617
endif()
26302618
set_output_directory(${name}
26312619
BINARY_DIR ${SWIFT_RUNTIME_OUTPUT_INTDIR}
@@ -2650,37 +2638,11 @@ endfunction()
26502638
#
26512639
# See add_swift_executable for detailed documentation.
26522640
function(add_swift_target_executable name)
2653-
set(SWIFTEXE_options
2654-
EXCLUDE_FROM_ALL
2655-
BUILD_WITH_STDLIB)
2656-
set(SWIFTEXE_single_parameter_options
2657-
INSTALL_IN_COMPONENT)
2658-
set(SWIFTEXE_multiple_parameter_options
2659-
DEPENDS
2660-
LINK_LIBRARIES
2661-
SWIFT_MODULE_DEPENDS
2662-
SWIFT_MODULE_DEPENDS_CYGWIN
2663-
SWIFT_MODULE_DEPENDS_FREEBSD
2664-
SWIFT_MODULE_DEPENDS_FREESTANDING
2665-
SWIFT_MODULE_DEPENDS_OPENBSD
2666-
SWIFT_MODULE_DEPENDS_HAIKU
2667-
SWIFT_MODULE_DEPENDS_IOS
2668-
SWIFT_MODULE_DEPENDS_LINUX
2669-
SWIFT_MODULE_DEPENDS_OSX
2670-
SWIFT_MODULE_DEPENDS_TVOS
2671-
SWIFT_MODULE_DEPENDS_WASI
2672-
SWIFT_MODULE_DEPENDS_WATCHOS
2673-
SWIFT_MODULE_DEPENDS_WINDOWS
2674-
SWIFT_MODULE_DEPENDS_FROM_SDK
2675-
SWIFT_MODULE_DEPENDS_MACCATALYST
2676-
SWIFT_MODULE_DEPENDS_MACCATALYST_UNZIPPERED
2677-
)
2678-
26792641
# Parse the arguments we were given.
26802642
cmake_parse_arguments(SWIFTEXE_TARGET
2681-
"${SWIFTEXE_options}"
2682-
"${SWIFTEXE_single_parameter_options}"
2683-
"${SWIFTEXE_multiple_parameter_options}"
2643+
"EXCLUDE_FROM_ALL;;BUILD_WITH_STDLIB"
2644+
""
2645+
"DEPENDS;LINK_LIBRARIES"
26842646
${ARGN})
26852647

26862648
set(SWIFTEXE_TARGET_SOURCES ${SWIFTEXE_TARGET_UNPARSED_ARGUMENTS})
@@ -2689,158 +2651,39 @@ function(add_swift_target_executable name)
26892651
message(SEND_ERROR "${name} is using EXCLUDE_FROM_ALL which is deprecated.")
26902652
endif()
26912653

2692-
if("${SWIFTEXE_TARGET_INSTALL_IN_COMPONENT}" STREQUAL "")
2693-
set(install_in_component "never_install")
2694-
else()
2695-
set(install_in_component "${SWIFTEXE_TARGET_INSTALL_IN_COMPONENT}")
2696-
endif()
2697-
26982654
# All Swift executables depend on the standard library.
2699-
list(APPEND SWIFTEXE_TARGET_SWIFT_MODULE_DEPENDS Core)
2655+
list(APPEND SWIFTEXE_TARGET_LINK_LIBRARIES swiftCore)
27002656
# All Swift executables depend on the swiftSwiftOnoneSupport library.
2701-
list(APPEND SWIFTEXE_TARGET_SWIFT_MODULE_DEPENDS SwiftOnoneSupport)
2702-
2703-
set(THIN_INPUT_TARGETS)
2657+
list(APPEND SWIFTEXE_TARGET_DEPENDS swiftSwiftOnoneSupport)
27042658

27052659
foreach(sdk ${SWIFT_SDKS})
2706-
# Collect architecture agnostic SDK module dependencies
2707-
set(swiftexe_module_depends_flattened ${SWIFTEXE_TARGET_SWIFT_MODULE_DEPENDS})
2708-
if(${sdk} STREQUAL OSX)
2709-
if(DEFINED maccatalyst_build_flavor AND NOT maccatalyst_build_flavor STREQUAL "macos-like")
2710-
list(APPEND swiftexe_module_depends_flattened
2711-
${SWIFTEXE_TARGET_SWIFT_MODULE_DEPENDS_MACCATALYST})
2712-
list(APPEND swiftexe_module_depends_flattened
2713-
${SWIFTEXE_TARGET_SWIFT_MODULE_DEPENDS_MACCATALYST_UNZIPPERED})
2714-
else()
2715-
list(APPEND swiftexe_module_depends_flattened
2716-
${SWIFTEXE_TARGET_SWIFT_MODULE_DEPENDS_OSX})
2717-
endif()
2718-
list(APPEND swiftexe_module_depends_flattened
2719-
${SWIFTEXE_TARGET_SWIFT_MODULE_DEPENDS_OSX})
2720-
elseif(${sdk} STREQUAL IOS OR ${sdk} STREQUAL IOS_SIMULATOR)
2721-
list(APPEND swiftexe_module_depends_flattened
2722-
${SWIFTEXE_TARGET_SWIFT_MODULE_DEPENDS_IOS})
2723-
elseif(${sdk} STREQUAL TVOS OR ${sdk} STREQUAL TVOS_SIMULATOR)
2724-
list(APPEND swiftexe_module_depends_flattened
2725-
${SWIFTEXE_TARGET_SWIFT_MODULE_DEPENDS_TVOS})
2726-
elseif(${sdk} STREQUAL WATCHOS OR ${sdk} STREQUAL WATCHOS_SIMULATOR)
2727-
list(APPEND swiftexe_module_depends_flattened
2728-
${SWIFTEXE_TARGET_SWIFT_MODULE_DEPENDS_WATCHOS})
2729-
elseif(${sdk} STREQUAL FREESTANDING)
2730-
list(APPEND swiftexe_module_depends_flattened
2731-
${SWIFTEXE_TARGET_SWIFT_MODULE_DEPENDS_FREESTANDING})
2732-
elseif(${sdk} STREQUAL FREEBSD)
2733-
list(APPEND swiftexe_module_depends_flattened
2734-
${SWIFTEXE_TARGET_SWIFT_MODULE_DEPENDS_FREEBSD})
2735-
elseif(${sdk} STREQUAL OPENBSD)
2736-
list(APPEND swiftexe_module_depends_flattened
2737-
${SWIFTEXE_TARGET_SWIFT_MODULE_DEPENDS_OPENBSD})
2738-
elseif(${sdk} STREQUAL LINUX OR ${sdk} STREQUAL ANDROID)
2739-
list(APPEND swiftexe_module_depends_flattened
2740-
${SWIFTEXE_TARGET_SWIFT_MODULE_DEPENDS_LINUX})
2741-
elseif(${sdk} STREQUAL CYGWIN)
2742-
list(APPEND swiftexe_module_depends_flattened
2743-
${SWIFTEXE_TARGET_SWIFT_MODULE_DEPENDS_CYGWIN})
2744-
elseif(${sdk} STREQUAL HAIKU)
2745-
list(APPEND swiftexe_module_depends_flattened
2746-
${SWIFTEXE_TARGET_SWIFT_MODULE_DEPENDS_HAIKU})
2747-
elseif(${sdk} STREQUAL WASI)
2748-
list(APPEND swiftexe_module_depends_flattened
2749-
${SWIFTEXE_TARGET_SWIFT_MODULE_DEPENDS_WASI})
2750-
elseif(${sdk} STREQUAL WINDOWS)
2751-
list(APPEND swiftexe_module_depends_flattened
2752-
${SWIFTEXE_TARGET_SWIFT_MODULE_DEPENDS_WINDOWS})
2753-
endif()
2754-
27552660
foreach(arch ${SWIFT_SDK_${sdk}_ARCHITECTURES})
27562661
set(VARIANT_SUFFIX "-${SWIFT_SDK_${sdk}_LIB_SUBDIR}-${arch}")
27572662
set(VARIANT_NAME "${name}${VARIANT_SUFFIX}")
2758-
set(MODULE_VARIANT_SUFFIX "-swiftmodule${VARIANT_SUFFIX}")
2759-
set(MODULE_VARIANT_NAME "${name}${MODULE_VARIANT_SUFFIX}")
27602663

2761-
# Configure macCatalyst flavor variables
2762-
if(DEFINED maccatalyst_build_flavor)
2763-
set(maccatalyst_variant_suffix "-${SWIFT_SDK_MACCATALYST_LIB_SUBDIR}-${arch}")
2764-
set(maccatalyst_variant_name "${name}${maccatalyst_variant_suffix}")
2765-
2766-
set(maccatalyst_module_variant_suffix "-swiftmodule${maccatalyst_variant_suffix}")
2767-
set(maccatalyst_module_variant_name "${name}${maccatalyst_module_variant_suffix}")
2664+
if(SWIFTEXE_TARGET_BUILD_WITH_STDLIB)
2665+
add_dependencies("swift-test-stdlib${VARIANT_SUFFIX}" ${VARIANT_NAME})
27682666
endif()
27692667

2770-
# Swift compiles depend on swift modules, while links depend on
2771-
# linked libraries. Find targets for both of these here.
2772-
set(swiftexe_module_dependency_targets)
2773-
set(swiftexe_link_libraries_targets ${SWIFTEXE_TARGET_LINK_LIBRARIES})
2774-
foreach(mod ${swiftexe_module_depends_flattened})
2775-
if(DEFINED maccatalyst_build_flavor)
2776-
if(maccatalyst_build_flavor STREQUAL "zippered")
2777-
# Zippered libraries are dependent on both the macCatalyst and normal macOS
2778-
# modules of their dependencies (which themselves must be zippered).
2779-
list(APPEND swiftexe_module_dependency_targets
2780-
"swift${mod}${maccatalyst_module_variant_suffix}")
2781-
list(APPEND swiftexe_module_dependency_targets
2782-
"swift${mod}${MODULE_VARIANT_SUFFIX}")
2783-
2784-
# Zippered libraries link against their zippered library targets, which
2785-
# live (and are built in) the same location as normal macOS libraries.
2786-
list(APPEND swiftexe_link_libraries_targets
2787-
"swift${mod}${VARIANT_SUFFIX}")
2788-
elseif(maccatalyst_build_flavor STREQUAL "ios-like")
2789-
# iOS-like libraries depend on the macCatalyst modules of their dependencies
2790-
# regardless of whether the target is zippered or macCatalyst only.
2791-
list(APPEND swiftexe_module_dependency_targets
2792-
"swift${mod}${maccatalyst_module_variant_suffix}")
2793-
2794-
# iOS-like libraries can link against either iOS-like library targets
2795-
# or zippered targets.
2796-
if(mod IN_LIST SWIFTEXE_TARGET_SWIFT_MODULE_DEPENDS_MACCATALYST_UNZIPPERED)
2797-
list(APPEND swiftexe_link_libraries_targets
2798-
"swift${mod}${maccatalyst_variant_suffix}")
2799-
else()
2800-
list(APPEND swiftexe_link_libraries_targets
2801-
"swift${mod}${VARIANT_SUFFIX}")
2802-
endif()
2803-
else()
2804-
list(APPEND swiftexe_module_dependency_targets
2805-
"swift${mod}${MODULE_VARIANT_SUFFIX}")
2806-
2807-
list(APPEND swiftexe_link_libraries_targets
2808-
"swift${mod}${VARIANT_SUFFIX}")
2809-
endif()
2810-
continue()
2811-
endif()
2812-
2813-
list(APPEND swiftexe_module_dependency_targets
2814-
"swift${mod}${MODULE_VARIANT_SUFFIX}")
2815-
2816-
list(APPEND swiftexe_link_libraries_targets
2817-
"swift${mod}${VARIANT_SUFFIX}")
2818-
endforeach()
2819-
28202668
# Don't add the ${arch} to the suffix. We want to link against fat
28212669
# libraries.
28222670
_list_add_string_suffix(
28232671
"${SWIFTEXE_TARGET_DEPENDS}"
28242672
"-${SWIFT_SDK_${sdk}_LIB_SUBDIR}"
28252673
SWIFTEXE_TARGET_DEPENDS_with_suffix)
2826-
28272674
_add_swift_target_executable_single(
28282675
${VARIANT_NAME}
28292676
${SWIFTEXE_TARGET_SOURCES}
2830-
DEPENDS
2831-
${SWIFTEXE_TARGET_DEPENDS_with_suffix}
2832-
${swiftexe_module_dependency_targets}
2677+
DEPENDS ${SWIFTEXE_TARGET_DEPENDS_with_suffix}
28332678
SDK "${sdk}"
2834-
ARCHITECTURE "${arch}"
2835-
INSTALL_IN_COMPONENT ${install_in_component})
2679+
ARCHITECTURE "${arch}")
28362680

28372681
_list_add_string_suffix(
28382682
"${SWIFTEXE_TARGET_LINK_LIBRARIES}"
28392683
"-${SWIFT_SDK_${sdk}_LIB_SUBDIR}-${arch}"
28402684
SWIFTEXE_TARGET_LINK_LIBRARIES_TARGETS)
28412685
target_link_libraries(${VARIANT_NAME} PRIVATE
2842-
${SWIFTEXE_TARGET_LINK_LIBRARIES_TARGETS}
2843-
${swiftexe_link_libraries_targets})
2686+
${SWIFTEXE_TARGET_LINK_LIBRARIES_TARGETS})
28442687

28452688
if(NOT "${VARIANT_SUFFIX}" STREQUAL "${SWIFT_PRIMARY_VARIANT_SUFFIX}")
28462689
# By default, don't build executables for target SDKs to avoid building
@@ -2860,104 +2703,8 @@ function(add_swift_target_executable name)
28602703

28612704
add_custom_command(TARGET ${VARIANT_NAME}
28622705
POST_BUILD
2863-
COMMAND "codesign" "-f" "-s" "-" "${SWIFT_RUNTIME_OUTPUT_INTDIR}/${VARIANT_NAME}")
2864-
endif()
2865-
2866-
list(APPEND THIN_INPUT_TARGETS ${VARIANT_NAME})
2706+
COMMAND "codesign" "-f" "-s" "-" "${SWIFT_RUNTIME_OUTPUT_INTDIR}/${VARIANT_NAME}")
2707+
endif()
28672708
endforeach()
2868-
2869-
set(library_subdir "${SWIFT_SDK_${sdk}_LIB_SUBDIR}")
2870-
if(maccatalyst_build_flavor STREQUAL "ios-like")
2871-
set(library_subdir "${SWIFT_SDK_MACCATALYST_LIB_SUBDIR}")
2872-
endif()
2873-
2874-
if("${sdk}" STREQUAL "WINDOWS")
2875-
set(UNIVERSAL_NAME "${SWIFTLIBEXEC_DIR}/${library_subdir}/${name}.exe")
2876-
else()
2877-
set(UNIVERSAL_NAME "${SWIFTLIBEXEC_DIR}/${library_subdir}/${name}")
2878-
endif()
2879-
2880-
set(lipo_target "${name}")
2881-
if("${CMAKE_SYSTEM_NAME}" STREQUAL "Darwin")
2882-
set(codesign_arg CODESIGN)
2883-
endif()
2884-
precondition(THIN_INPUT_TARGETS)
2885-
_add_swift_lipo_target(SDK
2886-
${sdk}
2887-
TARGET
2888-
${lipo_target}
2889-
OUTPUT
2890-
${UNIVERSAL_NAME}
2891-
${codesign_arg}
2892-
${THIN_INPUT_TARGETS})
2893-
2894-
# Determine the subdirectory where this executable will be installed
2895-
set(resource_dir_sdk_subdir "${SWIFT_SDK_${sdk}_LIB_SUBDIR}")
2896-
if(maccatalyst_build_flavor STREQUAL "ios-like")
2897-
set(resource_dir_sdk_subdir "${SWIFT_SDK_MACCATALYST_LIB_SUBDIR}")
2898-
endif()
2899-
2900-
precondition(resource_dir_sdk_subdir)
2901-
2902-
if(sdk STREQUAL WINDOWS AND CMAKE_SYSTEM_NAME STREQUAL Windows)
2903-
add_dependencies(${install_in_component} ${name}-windows-${SWIFT_PRIMARY_VARIANT_ARCH})
2904-
swift_install_in_component(TARGETS ${name}-windows-${SWIFT_PRIMARY_VARIANT_ARCH}
2905-
RUNTIME
2906-
DESTINATION "bin"
2907-
COMPONENT "${install_in_component}"
2908-
LIBRARY
2909-
DESTINATION "libexec${LLVM_LIBDIR_SUFFIX}/swift/${resource_dir_sdk_subdir}/${SWIFT_PRIMARY_VARIANT_ARCH}"
2910-
COMPONENT "${install_in_component}"
2911-
ARCHIVE
2912-
DESTINATION "libexec${LLVM_LIBDIR_SUFFIX}/swift/${resource_dir_sdk_subdir}/${SWIFT_PRIMARY_VARIANT_ARCH}"
2913-
COMPONENT "${install_in_component}"
2914-
PERMISSIONS
2915-
OWNER_READ OWNER_WRITE OWNER_EXECUTE
2916-
GROUP_READ GROUP_EXECUTE
2917-
WORLD_READ WORLD_EXECUTE)
2918-
else()
2919-
add_dependencies(${install_in_component} ${lipo_target})
2920-
2921-
set(install_dest "libexec${LLVM_LIBDIR_SUFFIX}/swift/${resource_dir_sdk_subdir}")
2922-
swift_install_in_component(FILES "${UNIVERSAL_LIBRARY_NAME}"
2923-
DESTINATION ${install_dest}
2924-
COMPONENT "${install_in_component}"
2925-
PERMISSIONS
2926-
OWNER_READ OWNER_WRITE OWNER_EXECUTE
2927-
GROUP_READ GROUP_EXECUTE
2928-
WORLD_READ WORLD_EXECUTE
2929-
"${optional_arg}")
2930-
endif()
2931-
2932-
swift_is_installing_component(
2933-
"${install_in_component}"
2934-
is_installing)
2935-
2936-
# Add the arch-specific executable targets to the global exports
2937-
foreach(arch ${SWIFT_SDK_${sdk}_ARCHITECTURES})
2938-
set(VARIANT_SUFFIX "-${SWIFT_SDK_${sdk}_LIB_SUBDIR}-${arch}")
2939-
set(VARIANT_NAME "${name}${VARIANT_SUFFIX}")
2940-
2941-
if(is_installing)
2942-
set_property(GLOBAL APPEND
2943-
PROPERTY SWIFT_EXPORTS ${VARIANT_NAME})
2944-
else()
2945-
set_property(GLOBAL APPEND
2946-
PROPERTY SWIFT_BUILDTREE_EXPORTS ${VARIANT_NAME})
2947-
endif()
2948-
endforeach()
2949-
2950-
# Add the lipo target to the top-level convenience targets
2951-
if(SWIFTEXE_TARGET_BUILD_WITH_STDLIB)
2952-
foreach(arch ${SWIFT_SDK_${sdk}_ARCHITECTURES})
2953-
set(variant "-${SWIFT_SDK_${sdk}_LIB_SUBDIR}-${arch}")
2954-
if(TARGET "swift-stdlib${VARIANT_SUFFIX}" AND
2955-
TARGET "swift-test-stdlib${VARIANT_SUFFIX}")
2956-
add_dependencies("swift-stdlib${variant}" ${lipo_target})
2957-
add_dependencies("swift-test-stdlib${variant}" ${lipo_target})
2958-
endif()
2959-
endforeach()
2960-
endif()
2961-
29622709
endforeach()
29632710
endfunction()

0 commit comments

Comments
 (0)