6
6
7
7
# Generate a swift interface file for the target if library evolution is enabled
8
8
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
9
19
if (SwiftCore_ENABLE_LIBRARY_EVOLUTION )
10
20
target_compile_options (${target} PRIVATE
11
21
$< $< COMPILE_LANGUAGE:Swift> :-emit-module-interface-path$< SEMICOLON> ${CMAKE_CURRENT_BINARY_DIR} /$< TARGET_PROPERTY:${target} ,Swift_MODULE_NAME> .swiftinterface>
12
22
$< $< COMPILE_LANGUAGE:Swift> :-emit-private-module-interface-path$< SEMICOLON> ${CMAKE_CURRENT_BINARY_DIR} /$< TARGET_PROPERTY:${target} ,Swift_MODULE_NAME> .private.swiftinterface>
13
23
$< $< COMPILE_LANGUAGE:Swift> :-library-level$< SEMICOLON> api>
14
24
$< $< COMPILE_LANGUAGE:Swift> :-Xfrontend$< SEMICOLON> -require-explicit-availability=ignore> )
25
+
26
+ # Emit catalyst swiftmodules and interfaces
27
+ if (SwiftCore_VARIANT_MODULE_TRIPLE )
28
+ target_compile_options (${target} PRIVATE
29
+ "$<$<COMPILE_LANGUAGE:Swift>:SHELL:-emit-variant-module-interface-path ${variant_module_tmp_dir} /${target} .swiftinterface>"
30
+ "$<$<COMPILE_LANGUAGE:Swift>:SHELL:-emit-variant-private-module-interface-path ${variant_module_tmp_dir} /${target} .private.swiftinterface>" )
31
+ endif ()
15
32
endif ()
16
33
endfunction ()
17
34
18
35
# Install the generated swift interface file for the target if library evolution
19
36
# is enabled.
20
37
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
21
49
if (SwiftCore_ENABLE_LIBRARY_EVOLUTION )
22
50
install (FILES "${CMAKE_CURRENT_BINARY_DIR} /$<TARGET_PROPERTY:${target} ,Swift_MODULE_NAME>.swiftinterface"
23
51
RENAME "${SwiftCore_MODULE_TRIPLE} .swiftinterface"
@@ -26,5 +54,15 @@ function(install_swift_interface target)
26
54
install (FILES "${CMAKE_CURRENT_BINARY_DIR} /$<TARGET_PROPERTY:${target} ,Swift_MODULE_NAME>.private.swiftinterface"
27
55
RENAME "${SwiftCore_MODULE_TRIPLE} .private.swiftinterface"
28
56
DESTINATION "${SwiftCore_INSTALL_SWIFTMODULEDIR} /$<TARGET_PROPERTY:${target} ,Swift_MODULE_NAME>.swiftmodule" )
57
+
58
+ # Install catalyst interface files
59
+ if (SwiftCore_VARIANT_MODULE_TRIPLE )
60
+ install (FILES "${CMAKE_CURRENT_BINARY_DIR} /${target} -${SwiftCore_VARIANT_MODULE_TRIPLE} /${target} .swiftinterface"
61
+ RENAME "${SwiftCore_VARIANT_MODULE_TRIPLE} .swiftinterface"
62
+ DESTINATION "${SwiftCore_INSTALL_SWIFTMODULEDIR} /$<TARGET_PROPERTY:${target} ,Swift_MODULE_NAME>.swiftmodule" )
63
+ install (FILES "${CMAKE_CURRENT_BINARY_DIR} /${target} -${SwiftCore_VARIANT_MODULE_TRIPLE} /${target} .private.swiftinterface"
64
+ RENAME "${SwiftCore_VARIANT_MODULE_TRIPLE} .private.swiftinterface"
65
+ DESTINATION "${SwiftCore_INSTALL_SWIFTMODULEDIR} /$<TARGET_PROPERTY:${target} ,Swift_MODULE_NAME>.swiftmodule" )
66
+ endif ()
29
67
endif ()
30
68
endfunction ()
0 commit comments