@@ -156,11 +156,7 @@ function(_add_target_variant_c_compile_flags)
156
156
157
157
set (result ${${CFLAGS_RESULT_VAR_NAME} })
158
158
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" )
164
160
165
161
if ("${CFLAGS_ARCH} " STREQUAL "arm64" OR
166
162
"${CFLAGS_ARCH} " STREQUAL "arm64_32" )
@@ -2510,16 +2506,11 @@ endfunction()
2510
2506
#
2511
2507
# [ARCHITECTURE architecture]
2512
2508
# 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.
2517
2509
function (_add_swift_target_executable_single name )
2518
2510
set (options )
2519
2511
set (single_parameter_options
2520
2512
ARCHITECTURE
2521
- SDK
2522
- INSTALL_IN_COMPONENT)
2513
+ SDK)
2523
2514
set (multiple_parameter_options
2524
2515
COMPILE_FLAGS
2525
2516
DEPENDS )
@@ -2564,8 +2555,6 @@ function(_add_swift_target_executable_single name)
2564
2555
LINK_LIBRARIES_VAR_NAME link_libraries
2565
2556
LIBRARY_SEARCH_DIRECTORIES_VAR_NAME library_search_directories)
2566
2557
2567
- string (MAKE_C_IDENTIFIER "${name} " module_name)
2568
-
2569
2558
handle_swift_sources(
2570
2559
dependency_target
2571
2560
unused_module_dependency_target
@@ -2575,12 +2564,11 @@ function(_add_swift_target_executable_single name)
2575
2564
SWIFTEXE_SINGLE_SOURCES SWIFTEXE_SINGLE_EXTERNAL_SOURCES ${name}
2576
2565
DEPENDS
2577
2566
${SWIFTEXE_SINGLE_DEPENDS}
2578
- MODULE_NAME ${module_name }
2567
+ MODULE_NAME ${name }
2579
2568
SDK ${SWIFTEXE_SINGLE_SDK}
2580
2569
ARCHITECTURE ${SWIFTEXE_SINGLE_ARCHITECTURE}
2581
2570
COMPILE_FLAGS ${SWIFTEXE_SINGLE_COMPILE_FLAGS}
2582
2571
ENABLE_LTO "${SWIFT_STDLIB_ENABLE_LTO} "
2583
- INSTALL_IN_COMPONENT "${install_in_component} "
2584
2572
IS_MAIN)
2585
2573
add_swift_source_group("${SWIFTEXE_SINGLE_EXTERNAL_SOURCES} " )
2586
2574
@@ -2625,7 +2613,7 @@ function(_add_swift_target_executable_single name)
2625
2613
if (${SWIFTEXE_SINGLE_SDK} IN_LIST SWIFT_DARWIN_PLATFORMS)
2626
2614
set_target_properties (${name} PROPERTIES
2627
2615
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}" )
2629
2617
endif ()
2630
2618
set_output_directory(${name}
2631
2619
BINARY_DIR ${SWIFT_RUNTIME_OUTPUT_INTDIR}
@@ -2650,37 +2638,11 @@ endfunction()
2650
2638
#
2651
2639
# See add_swift_executable for detailed documentation.
2652
2640
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
-
2679
2641
# Parse the arguments we were given.
2680
2642
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 "
2684
2646
${ARGN} )
2685
2647
2686
2648
set (SWIFTEXE_TARGET_SOURCES ${SWIFTEXE_TARGET_UNPARSED_ARGUMENTS} )
@@ -2689,158 +2651,39 @@ function(add_swift_target_executable name)
2689
2651
message (SEND_ERROR "${name} is using EXCLUDE_FROM_ALL which is deprecated." )
2690
2652
endif ()
2691
2653
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
-
2698
2654
# 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 )
2700
2656
# 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)
2704
2658
2705
2659
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
-
2755
2660
foreach (arch ${SWIFT_SDK_${sdk} _ARCHITECTURES})
2756
2661
set (VARIANT_SUFFIX "-${SWIFT_SDK_${sdk} _LIB_SUBDIR}-${arch} " )
2757
2662
set (VARIANT_NAME "${name}${VARIANT_SUFFIX} " )
2758
- set (MODULE_VARIANT_SUFFIX "-swiftmodule${VARIANT_SUFFIX} " )
2759
- set (MODULE_VARIANT_NAME "${name}${MODULE_VARIANT_SUFFIX} " )
2760
2663
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} )
2768
2666
endif ()
2769
2667
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
-
2820
2668
# Don't add the ${arch} to the suffix. We want to link against fat
2821
2669
# libraries.
2822
2670
_list_add_string_suffix(
2823
2671
"${SWIFTEXE_TARGET_DEPENDS} "
2824
2672
"-${SWIFT_SDK_${sdk} _LIB_SUBDIR}"
2825
2673
SWIFTEXE_TARGET_DEPENDS_with_suffix)
2826
-
2827
2674
_add_swift_target_executable_single(
2828
2675
${VARIANT_NAME}
2829
2676
${SWIFTEXE_TARGET_SOURCES}
2830
- DEPENDS
2831
- ${SWIFTEXE_TARGET_DEPENDS_with_suffix}
2832
- ${swiftexe_module_dependency_targets}
2677
+ DEPENDS ${SWIFTEXE_TARGET_DEPENDS_with_suffix}
2833
2678
SDK "${sdk} "
2834
- ARCHITECTURE "${arch} "
2835
- INSTALL_IN_COMPONENT ${install_in_component} )
2679
+ ARCHITECTURE "${arch} " )
2836
2680
2837
2681
_list_add_string_suffix(
2838
2682
"${SWIFTEXE_TARGET_LINK_LIBRARIES} "
2839
2683
"-${SWIFT_SDK_${sdk} _LIB_SUBDIR}-${arch} "
2840
2684
SWIFTEXE_TARGET_LINK_LIBRARIES_TARGETS)
2841
2685
target_link_libraries (${VARIANT_NAME} PRIVATE
2842
- ${SWIFTEXE_TARGET_LINK_LIBRARIES_TARGETS}
2843
- ${swiftexe_link_libraries_targets} )
2686
+ ${SWIFTEXE_TARGET_LINK_LIBRARIES_TARGETS} )
2844
2687
2845
2688
if (NOT "${VARIANT_SUFFIX} " STREQUAL "${SWIFT_PRIMARY_VARIANT_SUFFIX} " )
2846
2689
# By default, don't build executables for target SDKs to avoid building
@@ -2860,104 +2703,8 @@ function(add_swift_target_executable name)
2860
2703
2861
2704
add_custom_command (TARGET ${VARIANT_NAME}
2862
2705
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 ()
2867
2708
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
-
2962
2709
endforeach ()
2963
2710
endfunction ()
0 commit comments