@@ -18,34 +18,48 @@ function(emit_swift_interface target)
18
18
if (NOT module_name)
19
19
set (module_name ${target} )
20
20
endif ()
21
+ set (module_directory "${CMAKE_CURRENT_BINARY_DIR} /${module_name} .swiftmodule" )
21
22
# Account for an existing swiftmodule file
22
23
# 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} )
27
27
endif ()
28
28
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" )
30
34
if (SwiftOverlay_VARIANT_MODULE_TRIPLE)
31
35
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" )
33
41
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"
35
43
DEPENDS ${target} )
36
44
target_sources (${target}
37
45
INTERFACE
38
- $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR} / ${module_name} .swiftmodule /${SwiftOverlay_MODULE_TRIPLE} .swiftmodule>)
46
+ $<BUILD_INTERFACE:${module_directory} /${SwiftOverlay_MODULE_TRIPLE} .swiftmodule>)
39
47
40
48
# Generate textual swift interfaces is library-evolution is enabled
41
49
if (SwiftOverlay_ENABLE_LIBRARY_EVOLUTION)
42
50
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" )
45
56
if (SwiftOverlay_VARIANT_MODULE_TRIPLE)
46
57
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" )
49
63
endif ()
50
64
target_compile_options (${target} PRIVATE
51
65
$<$<COMPILE_LANGUAGE:Swift>:-library-level$<SEMICOLON>api>
0 commit comments