@@ -49,7 +49,7 @@ function(handle_swift_sources
49
49
dependency_sibgen_target_out_var_name
50
50
sourcesvar externalvar name )
51
51
cmake_parse_arguments (SWIFTSOURCES
52
- "IS_MAIN;IS_STDLIB;IS_STDLIB_CORE;IS_SDK_OVERLAY;EMBED_BITCODE;STATIC;NO_LINK_NAME;IS_FRAGILE;ONLY_SWIFTMODULE"
52
+ "IS_MAIN;IS_STDLIB;IS_STDLIB_CORE;IS_SDK_OVERLAY;EMBED_BITCODE;STATIC;NO_LINK_NAME;IS_FRAGILE;ONLY_SWIFTMODULE;NO_SWIFTMODULE "
53
53
"SDK;ARCHITECTURE;INSTALL_IN_COMPONENT;DEPLOYMENT_VERSION_OSX;DEPLOYMENT_VERSION_IOS;DEPLOYMENT_VERSION_TVOS;DEPLOYMENT_VERSION_WATCHOS;MACCATALYST_BUILD_FLAVOR;BOOTSTRAPPING;INSTALL_BINARY_SWIFTMODULE"
54
54
"DEPENDS;COMPILE_FLAGS;MODULE_NAME;MODULE_DIR;ENABLE_LTO"
55
55
${ARGN} )
@@ -66,6 +66,7 @@ function(handle_swift_sources
66
66
translate_flag (${SWIFTSOURCES_NO_LINK_NAME} "NO_LINK_NAME" NO_LINK_NAME_arg )
67
67
translate_flag (${SWIFTSOURCES_IS_FRAGILE} "IS_FRAGILE" IS_FRAGILE_arg )
68
68
translate_flag (${SWIFTSOURCES_ONLY_SWIFTMODULE} "ONLY_SWIFTMODULE" ONLY_SWIFTMODULE_arg )
69
+ translate_flag (${SWIFTSOURCES_NO_SWIFTMODULE} "NO_SWIFTMODULE" NO_SWIFTMODULE_arg )
69
70
if (DEFINED SWIFTSOURCES_BOOTSTRAPPING )
70
71
set (BOOTSTRAPPING_arg "BOOTSTRAPPING" ${SWIFTSOURCES_BOOTSTRAPPING} )
71
72
endif ()
@@ -161,6 +162,7 @@ function(handle_swift_sources
161
162
${BOOTSTRAPPING_arg}
162
163
${IS_FRAGILE_arg}
163
164
${ONLY_SWIFTMODULE_arg}
165
+ ${NO_SWIFTMODULE_arg}
164
166
INSTALL_BINARY_SWIFTMODULE ${SWIFTSOURCES_INSTALL_BINARY_SWIFTMODULE}
165
167
INSTALL_IN_COMPONENT "${SWIFTSOURCES_INSTALL_IN_COMPONENT} "
166
168
DEPLOYMENT_VERSION_OSX ${SWIFTSOURCES_DEPLOYMENT_VERSION_OSX}
@@ -405,6 +407,8 @@ endfunction()
405
407
# [IS_MAIN] # This is an executable, not a library
406
408
# [IS_STDLIB]
407
409
# [IS_STDLIB_CORE] # This is the core standard library
410
+ # [ONLY_SWIFTMODULE] # Emit swiftmodule only, no binary
411
+ # [NO_SWIFTMODULE] # Emit binary only, no swiftmodule
408
412
# [OPT_FLAGS] # Optimization flags (overrides SWIFT_OPTIMIZE)
409
413
# [MODULE_DIR] # Put .swiftmodule, .swiftdoc., and .o
410
414
# # into this directory.
@@ -419,7 +423,7 @@ function(_compile_swift_files
419
423
dependency_sib_target_out_var_name dependency_sibopt_target_out_var_name
420
424
dependency_sibgen_target_out_var_name )
421
425
cmake_parse_arguments (SWIFTFILE
422
- "IS_MAIN;IS_STDLIB;IS_STDLIB_CORE;IS_SDK_OVERLAY;EMBED_BITCODE;STATIC;IS_FRAGILE;ONLY_SWIFTMODULE"
426
+ "IS_MAIN;IS_STDLIB;IS_STDLIB_CORE;IS_SDK_OVERLAY;EMBED_BITCODE;STATIC;IS_FRAGILE;ONLY_SWIFTMODULE;NO_SWIFTMODULE "
423
427
"OUTPUT;MODULE_NAME;INSTALL_IN_COMPONENT;DEPLOYMENT_VERSION_OSX;DEPLOYMENT_VERSION_IOS;DEPLOYMENT_VERSION_TVOS;DEPLOYMENT_VERSION_WATCHOS;MACCATALYST_BUILD_FLAVOR;BOOTSTRAPPING;INSTALL_BINARY_SWIFTMODULE"
424
428
"SOURCES;FLAGS;DEPENDS;SDK;ARCHITECTURE;OPT_FLAGS;MODULE_DIR"
425
429
${ARGN} )
@@ -677,6 +681,10 @@ function(_compile_swift_files
677
681
get_bootstrapping_path (lib_dir ${SWIFTLIB_DIR} "${SWIFTFILE_BOOTSTRAPPING} " )
678
682
679
683
if (NOT SWIFTFILE_IS_MAIN )
684
+ list (APPEND swift_flags "-parse-as-library" )
685
+ endif ()
686
+
687
+ if (NOT SWIFTFILE_IS_MAIN AND NOT SWIFTFILE_NO_SWIFTMODULE )
680
688
# Determine the directory where the module file should be placed.
681
689
if (SWIFTFILE_MODULE_DIR )
682
690
set (module_dir "${SWIFTFILE_MODULE_DIR} " )
@@ -686,8 +694,6 @@ function(_compile_swift_files
686
694
message (FATAL_ERROR "Don't know where to put the module files" )
687
695
endif ()
688
696
689
- list (APPEND swift_flags "-parse-as-library" )
690
-
691
697
set (module_base "${module_dir} /${SWIFTFILE_MODULE_NAME} " )
692
698
693
699
set (module_dir_static "${SWIFTSTATICLIB_DIR} /${library_subdir} " )
@@ -1067,7 +1073,7 @@ function(_compile_swift_files
1067
1073
#
1068
1074
# We only build these when we are not producing a main file. We could do this
1069
1075
# with sib/sibgen, but it is useful for looking at the stdlib.
1070
- if (NOT SWIFTFILE_IS_MAIN )
1076
+ if (NOT SWIFTFILE_IS_MAIN AND NOT SWIFTFILE_NO_SWIFTMODULE )
1071
1077
add_custom_command_target (
1072
1078
module_dependency_target
1073
1079
COMMAND
0 commit comments