@@ -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.
25172509function (_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.
26522640function (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 ()
29632710endfunction ()
0 commit comments