Skip to content

Commit e59326c

Browse files
committed
CMake: Move installation of binary swiftmodule
To keep things consistent with the target and target-variant swiftmodule files, moving the installation of the binary swift module into `install_swift_interface`. CMake implicitly generates the target swiftmodule, but does not know about zippered binaries, so we need to ensure that the target-variant module is available for installation when applicable.
1 parent 8f1bc8f commit e59326c

File tree

4 files changed

+21
-15
lines changed

4 files changed

+21
-15
lines changed

Runtimes/Core/Concurrency/CMakeLists.txt

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -121,8 +121,5 @@ install(TARGETS swift_Concurrency
121121
ARCHIVE DESTINATION "${SwiftCore_INSTALL_LIBDIR}"
122122
LIBRARY DESTINATION "${SwiftCore_INSTALL_LIBDIR}"
123123
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}")
124-
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/_Concurrency.swiftmodule"
125-
DESTINATION "${SwiftCore_INSTALL_SWIFTMODULEDIR}/_Concurrency.swiftmodule"
126-
RENAME "${SwiftCore_MODULE_TRIPLE}.swiftmodule")
127124
emit_swift_interface(swift_Concurrency)
128125
install_swift_interface(swift_Concurrency)

Runtimes/Core/SwiftOnoneSupport/CMakeLists.txt

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,6 @@ install(TARGETS swiftSwiftOnoneSupport
3535
ARCHIVE DESTINATION "${SwiftCore_INSTALL_LIBDIR}"
3636
LIBRARY DESTINATION "${SwiftCore_INSTALL_LIBDIR}"
3737
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}")
38-
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/SwiftOnoneSupport.swiftmodule"
39-
DESTINATION "${SwiftCore_INSTALL_SWIFTMODULEDIR}/SwiftOnoneSupport.swiftmodule"
40-
RENAME "${SwiftCore_MODULE_TRIPLE}.swiftmodule")
4138
emit_swift_interface(swiftSwiftOnoneSupport)
4239
install_swift_interface(swiftSwiftOnoneSupport)
4340

Runtimes/Core/cmake/modules/EmitSwiftInterface.cmake

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,16 @@
66

77
# Generate a swift interface file for the target if library evolution is enabled
88
function(emit_swift_interface target)
9+
# Generate the target-variant binary swift module when performing zippered
10+
# build
11+
if(SwiftCore_VARIANT_MODULE_TRIPLE)
12+
set(variant_module_tmp_dir "${CMAKE_CURRENT_BINARY_DIR}/${target}-${SwiftCore_VARIANT_MODULE_TRIPLE}")
13+
file(MAKE_DIRECTORY "${variant_module_tmp_dir}")
14+
target_compile_options(${target} PRIVATE
15+
"$<$<COMPILE_LANGUAGE:Swift>:SHELL:-emit-variant-module-path ${variant_module_tmp_dir}/${target}.swiftmodule>")
16+
endif()
17+
18+
# Generate textual swift interfaces is library-evolution is enabled
919
if(SwiftCore_ENABLE_LIBRARY_EVOLUTION)
1020
target_compile_options(${target} PRIVATE
1121
$<$<COMPILE_LANGUAGE:Swift>:-emit-module-interface-path$<SEMICOLON>${CMAKE_CURRENT_BINARY_DIR}/$<TARGET_PROPERTY:${target},Swift_MODULE_NAME>.swiftinterface>
@@ -15,10 +25,7 @@ function(emit_swift_interface target)
1525

1626
# Emit catalyst swiftmodules and interfaces
1727
if(SwiftCore_VARIANT_MODULE_TRIPLE)
18-
set(variant_module_tmp_dir "${CMAKE_CURRENT_BINARY_DIR}/${target}-${SwiftCore_VARIANT_MODULE_TRIPLE}")
19-
file(MAKE_DIRECTORY "${variant_module_tmp_dir}")
2028
target_compile_options(${target} PRIVATE
21-
"$<$<COMPILE_LANGUAGE:Swift>:SHELL:-emit-variant-module-path ${variant_module_tmp_dir}/${target}.swiftmodule>"
2229
"$<$<COMPILE_LANGUAGE:Swift>:SHELL:-emit-variant-module-interface-path ${variant_module_tmp_dir}/${target}.swiftinterface>"
2330
"$<$<COMPILE_LANGUAGE:Swift>:SHELL:-emit-variant-private-module-interface-path ${variant_module_tmp_dir}/${target}.private.swiftinterface>")
2431
endif()
@@ -28,6 +35,17 @@ endfunction()
2835
# Install the generated swift interface file for the target if library evolution
2936
# is enabled.
3037
function(install_swift_interface target)
38+
# Install binary swift modules
39+
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/$<TARGET_PROPERTY:${target},Swift_MODULE_NAME>.swiftmodule"
40+
RENAME "${SwiftCore_MODULE_TRIPLE}.swiftmodule"
41+
DESTINATION "${SwiftCore_INSTALL_SWIFTMODULEDIR}/$<TARGET_PROPERTY:${target},Swift_MODULE_NAME>.swiftmodule")
42+
if(SwiftCore_VARIANT_MODULE_TRIPLE)
43+
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${target}-${SwiftCore_VARIANT_MODULE_TRIPLE}/${target}.swiftmodule"
44+
RENAME "${SwiftCore_VARIANT_MODULE_TRIPLE}.swiftmodule"
45+
DESTINATION "${SwiftCore_INSTALL_SWIFTMODULEDIR}/$<TARGET_PROPERTY:${target},Swift_MODULE_NAME>.swiftmodule")
46+
endif()
47+
48+
# Install Swift interfaces if library-evolution is enabled
3149
if(SwiftCore_ENABLE_LIBRARY_EVOLUTION)
3250
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/$<TARGET_PROPERTY:${target},Swift_MODULE_NAME>.swiftinterface"
3351
RENAME "${SwiftCore_MODULE_TRIPLE}.swiftinterface"
@@ -39,9 +57,6 @@ function(install_swift_interface target)
3957

4058
# Install catalyst interface files
4159
if(SwiftCore_VARIANT_MODULE_TRIPLE)
42-
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${target}-${SwiftCore_VARIANT_MODULE_TRIPLE}/${target}.swiftmodule"
43-
RENAME "${SwiftCore_VARIANT_MODULE_TRIPLE}.swiftmodule"
44-
DESTINATION "${SwiftCore_INSTALL_SWIFTMODULEDIR}/$<TARGET_PROPERTY:${target},Swift_MODULE_NAME>.swiftmodule")
4560
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${target}-${SwiftCore_VARIANT_MODULE_TRIPLE}/${target}.swiftinterface"
4661
RENAME "${SwiftCore_VARIANT_MODULE_TRIPLE}.swiftinterface"
4762
DESTINATION "${SwiftCore_INSTALL_SWIFTMODULEDIR}/$<TARGET_PROPERTY:${target},Swift_MODULE_NAME>.swiftmodule")

Runtimes/Core/core/CMakeLists.txt

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -327,9 +327,6 @@ install(TARGETS swiftCore
327327
ARCHIVE DESTINATION "${SwiftCore_INSTALL_LIBDIR}"
328328
LIBRARY DESTINATION "${SwiftCore_INSTALL_LIBDIR}"
329329
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}")
330-
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/Swift.swiftmodule"
331-
DESTINATION "${SwiftCore_INSTALL_SWIFTMODULEDIR}/Swift.swiftmodule"
332-
RENAME "${SwiftCore_MODULE_TRIPLE}.swiftmodule")
333330
emit_swift_interface(swiftCore)
334331
install_swift_interface(swiftCore)
335332

0 commit comments

Comments
 (0)