@@ -18,34 +18,48 @@ function(emit_swift_interface target)
1818 if (NOT module_name)
1919 set (module_name ${target} )
2020 endif ()
21+ set (module_directory "${CMAKE_CURRENT_BINARY_DIR} /${module_name} .swiftmodule" )
2122 # Account for an existing swiftmodule file
2223 # generated with the previous logic
23- if (EXISTS "${CMAKE_CURRENT_BINARY_DIR} /${module_name} .swiftmodule"
24- AND NOT IS_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR} /${module_name} .swiftmodule" )
25- message (STATUS "Removing regular file ${CMAKE_CURRENT_BINARY_DIR} /${module_name} .swiftmodule to support nested swiftmodule generation" )
26- file (REMOVE "${CMAKE_CURRENT_BINARY_DIR} /${module_name} .swiftmodule" )
24+ if (EXISTS "${module_directory} " AND NOT IS_DIRECTORY "${module_directory} " )
25+ message (STATUS "Removing regular file '${module_directory} ' to support nested swiftmodule generation" )
26+ file (REMOVE ${module_directory} )
2727 endif ()
2828 target_compile_options (${target} PRIVATE
29- "$<$<COMPILE_LANGUAGE:Swift>:SHELL:-emit-module-path ${CMAKE_CURRENT_BINARY_DIR} /${module_name} .swiftmodule/${SwiftOverlay_MODULE_TRIPLE} .swiftmodule>" )
29+ "$<$<COMPILE_LANGUAGE:Swift>:SHELL:-emit-module-path ${module_directory} /${SwiftOverlay_MODULE_TRIPLE} .swiftmodule>" )
30+ set_property (TARGET "${target} " APPEND PROPERTY ADDITIONAL_CLEAN_FILES
31+ "${module_directory} /${SwiftOverlay_MODULE_TRIPLE} .swiftmodule"
32+ "${module_directory} /${SwiftOverlay_MODULE_TRIPLE} .swiftdoc"
33+ "${module_directory} /${SwiftOverlay_MODULE_TRIPLE} .swiftsourceinfo" )
3034 if (SwiftOverlay_VARIANT_MODULE_TRIPLE)
3135 target_compile_options (${target} PRIVATE
32- "$<$<COMPILE_LANGUAGE:Swift>:SHELL:-emit-variant-module-path ${CMAKE_CURRENT_BINARY_DIR} /${module_name} .swiftmodule/${SwiftOverlay_VARIANT_MODULE_TRIPLE} .swiftmodule>" )
36+ "$<$<COMPILE_LANGUAGE:Swift>:SHELL:-emit-variant-module-path ${module_directory} /${SwiftOverlay_VARIANT_MODULE_TRIPLE} .swiftmodule>" )
37+ set_property (TARGET "${target} " APPEND PROPERTY ADDITIONAL_CLEAN_FILES
38+ "${module_directory} /${SwiftOverlay_VARIANT_MODULE_TRIPLE} .swiftmodule"
39+ "${module_directory} /${SwiftOverlay_VARIANT_MODULE_TRIPLE} .swiftdoc"
40+ "${module_directory} /${SwiftOverlay_VARIANT_MODULE_TRIPLE} .swiftsourceinfo" )
3341 endif ()
34- add_custom_command (OUTPUT "${CMAKE_CURRENT_BINARY_DIR} / ${module_name} .swiftmodule /${SwiftOverlay_MODULE_TRIPLE} .swiftmodule"
42+ add_custom_command (OUTPUT "${module_directory} /${SwiftOverlay_MODULE_TRIPLE} .swiftmodule"
3543 DEPENDS ${target} )
3644 target_sources (${target}
3745 INTERFACE
38- $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR} / ${module_name} .swiftmodule /${SwiftOverlay_MODULE_TRIPLE} .swiftmodule>)
46+ $<BUILD_INTERFACE:${module_directory} /${SwiftOverlay_MODULE_TRIPLE} .swiftmodule>)
3947
4048 # Generate textual swift interfaces is library-evolution is enabled
4149 if (SwiftOverlay_ENABLE_LIBRARY_EVOLUTION)
4250 target_compile_options (${target} PRIVATE
43- $<$<COMPILE_LANGUAGE:Swift>:-emit-module-interface -path $<SEMICOLON>${CMAKE_CURRENT_BINARY_DIR} /${module_name} .swiftmodule/${SwiftOverlay_MODULE_TRIPLE} .swiftinterface>
44- $<$<COMPILE_LANGUAGE:Swift>:-emit-private -module-interface -path $<SEMICOLON>${CMAKE_CURRENT_BINARY_DIR} /${module_name} .swiftmodule/${SwiftOverlay_MODULE_TRIPLE} .private .swiftinterface>)
51+ $<$<COMPILE_LANGUAGE:Swift>:-emit-module-interface -path $<SEMICOLON>${module_directory} /${SwiftOverlay_MODULE_TRIPLE} .swiftinterface>
52+ $<$<COMPILE_LANGUAGE:Swift>:-emit-private -module-interface -path $<SEMICOLON>${module_directory} /${SwiftOverlay_MODULE_TRIPLE} .private .swiftinterface>)
53+ set_property (TARGET "${target} " APPEND PROPERTY ADDITIONAL_CLEAN_FILES
54+ "${module_directory} /${SwiftOverlay_MODULE_TRIPLE} .swiftinterface"
55+ "${module_directory} /${SwiftOverlay_MODULE_TRIPLE} .private.swiftinterface" )
4556 if (SwiftOverlay_VARIANT_MODULE_TRIPLE)
4657 target_compile_options (${target} PRIVATE
47- "$<$<COMPILE_LANGUAGE:Swift>:SHELL:-emit-variant-module-interface-path ${CMAKE_CURRENT_BINARY_DIR} /${module_name} .swiftmodule/${SwiftOverlay_VARIANT_MODULE_TRIPLE} .swiftinterface>"
48- "$<$<COMPILE_LANGUAGE:Swift>:SHELL:-emit-variant-private-module-interface-path ${CMAKE_CURRENT_BINARY_DIR} /${module_name} .swiftmodule/${SwiftOverlay_VARIANT_MODULE_TRIPLE} .private.swiftinterface>" )
58+ "$<$<COMPILE_LANGUAGE:Swift>:SHELL:-emit-variant-module-interface-path ${module_directory} /${SwiftOverlay_VARIANT_MODULE_TRIPLE} .swiftinterface>"
59+ "$<$<COMPILE_LANGUAGE:Swift>:SHELL:-emit-variant-private-module-interface-path ${module_directory} /${SwiftOverlay_VARIANT_MODULE_TRIPLE} .private.swiftinterface>" )
60+ set_property (TARGET "${target} " APPEND PROPERTY ADDITIONAL_CLEAN_FILES
61+ "${module_directory} /${SwiftOverlay_VARIANT_MODULE_TRIPLE} .swiftinterface"
62+ "${module_directory} /${SwiftOverlay_VARIANT_MODULE_TRIPLE} .private.swiftinterface" )
4963 endif ()
5064 target_compile_options (${target} PRIVATE
5165 $<$<COMPILE_LANGUAGE:Swift>:-library-level$<SEMICOLON>api>
0 commit comments