66
77# Generate a swift interface file for the target if library evolution is enabled
88function (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>
1222 $<$<COMPILE_LANGUAGE:Swift>:-emit-private -module-interface -path $<SEMICOLON>${CMAKE_CURRENT_BINARY_DIR} /$<TARGET_PROPERTY:${target} ,Swift_MODULE_NAME>.private .swiftinterface>
1323 $<$<COMPILE_LANGUAGE:Swift>:-library-level$<SEMICOLON>api>
1424 $<$<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 ()
1532 endif ()
1633endfunction ()
1734
1835# Install the generated swift interface file for the target if library evolution
1936# is enabled.
2037function (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
2149 if (SwiftCore_ENABLE_LIBRARY_EVOLUTION)
2250 install (FILES "${CMAKE_CURRENT_BINARY_DIR} /$<TARGET_PROPERTY:${target} ,Swift_MODULE_NAME>.swiftinterface"
2351 RENAME "${SwiftCore_MODULE_TRIPLE} .swiftinterface"
@@ -26,5 +54,15 @@ function(install_swift_interface target)
2654 install (FILES "${CMAKE_CURRENT_BINARY_DIR} /$<TARGET_PROPERTY:${target} ,Swift_MODULE_NAME>.private.swiftinterface"
2755 RENAME "${SwiftCore_MODULE_TRIPLE} .private.swiftinterface"
2856 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 ()
2967 endif ()
3068endfunction ()
0 commit comments