66# See http://swift.org/LICENSE.txt for license information
77# See http://swift.org/CONTRIBUTORS.txt for Swift project authors
88
9-
109# Following function are needed as a workaround until it's possible to compile
1110# swift code with cmake's builtin swift support.
1211
@@ -19,15 +18,9 @@ function(add_swift_compiler_module module)
1918 cmake_parse_arguments (ALSM
2019 ""
2120 ""
22- "DEPENDS"
21+ "DEPENDS;SOURCES "
2322 ${ARGN} )
24- set (raw_sources ${ALSM_UNPARSED_ARGUMENTS} )
25- set (sources )
26- foreach (raw_source ${raw_sources} )
27- get_filename_component (
28- raw_source "${raw_source} " REALPATH BASE_DIR "${CMAKE_CURRENT_SOURCE_DIR} " )
29- list (APPEND sources "${raw_source} " )
30- endforeach ()
23+ set (raw_sources ${ALSM_SOURCES} ${ALSM_UNPARSED_ARGUMENTS} )
3124
3225 set (target_name "SwiftModule${module} " )
3326
@@ -36,9 +29,10 @@ function(add_swift_compiler_module module)
3629 # This target is mainly used to add properties, like the list of source files.
3730 add_custom_target (
3831 ${target_name}
39- SOURCES ${sources}
4032 COMMENT "swift compiler module ${module} " )
4133
34+ swift_compiler_sources(${module} ${raw_sources} )
35+
4236 set_property (TARGET ${target_name} PROPERTY module_name ${module} )
4337 set_property (TARGET ${target_name} PROPERTY module_depends ${ALSM_DEPENDS} )
4438
@@ -54,8 +48,13 @@ function(swift_compiler_sources module)
5448 ""
5549 ""
5650 ${ARGN} )
57- set (sources ${LSS_UNPARSED_ARGUMENTS} )
58- list (TRANSFORM sources PREPEND "${CMAKE_CURRENT_SOURCE_DIR} /" )
51+ set (raw_sources ${LSS_UNPARSED_ARGUMENTS} )
52+ set (sources )
53+ foreach (raw_source ${raw_sources} )
54+ get_filename_component (
55+ raw_source "${raw_source} " REALPATH BASE_DIR "${CMAKE_CURRENT_SOURCE_DIR} " )
56+ list (APPEND sources "${raw_source} " )
57+ endforeach ()
5958
6059 set (target_name "SwiftModule${module} " )
6160 set_property (TARGET "SwiftModule${module} " APPEND PROPERTY SOURCES ${sources} )
@@ -146,8 +145,11 @@ function(add_swift_compiler_modules_library name)
146145 "-emit-module-path" "${build_dir} /${module} .swiftmodule"
147146 "-parse-as-library" ${sources}
148147 "-wmo" ${swift_compile_options}
149- "-I" "${SWIFT_SOURCE_DIR} /include/swift"
150- "-I" "${SWIFT_SOURCE_DIR} /include"
148+ # Bridging modules and headers.
149+ "-Xcc" "-I" "-Xcc" "${SWIFT_SOURCE_DIR} /include"
150+ # Generated C headers.
151+ "-Xcc" "-I" "-Xcc" "${CMAKE_BINARY_DIR} /include"
152+ # Generated swift modules.
151153 "-I" "${build_dir} "
152154 COMMENT "Building swift module ${module} " )
153155
0 commit comments