Skip to content

Commit 95144b6

Browse files
committed
---
yaml --- r: 347070 b: refs/heads/master c: b08131f h: refs/heads/master
1 parent 3d4f947 commit 95144b6

File tree

2 files changed

+23
-32
lines changed

2 files changed

+23
-32
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
refs/heads/master: 49292128e34a2ea6f53b39788b1691a852fe42df
2+
refs/heads/master: b08131fa1997587ef88bfb9de2cf1fc4b0c6669c
33
refs/heads/master-next: 203b3026584ecad859eb328b2e12490099409cd5
44
refs/tags/osx-passed: b6b74147ef8a386f532cf9357a1bde006e552c54
55
refs/tags/swift-2.2-SNAPSHOT-2015-12-01-a: 6bb18e013c2284f2b45f5f84f2df2887dc0f7dea

trunk/cmake/modules/SwiftSource.cmake

Lines changed: 22 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -195,6 +195,7 @@ function(_compile_swift_files
195195

196196
# Compute flags for the Swift compiler.
197197
set(swift_flags)
198+
set(swift_module_flags)
198199

199200
_add_variant_swift_compile_flags(
200201
"${SWIFTFILE_SDK}"
@@ -283,17 +284,10 @@ function(_compile_swift_files
283284

284285
list(APPEND swift_flags ${SWIFTFILE_FLAGS})
285286

286-
set(obj_dirs)
287+
set(dirs_to_create)
287288
foreach(output ${SWIFTFILE_OUTPUT})
288289
get_filename_component(objdir "${output}" PATH)
289-
list(APPEND obj_dirs "${objdir}")
290-
endforeach()
291-
list(REMOVE_DUPLICATES obj_dirs)
292-
293-
set(command_create_dirs)
294-
foreach(objdir ${obj_dirs})
295-
list(APPEND command_create_dirs
296-
COMMAND "${CMAKE_COMMAND}" -E make_directory "${objdir}")
290+
list(APPEND dirs_to_create "${objdir}")
297291
endforeach()
298292

299293
set(module_file)
@@ -316,6 +310,8 @@ function(_compile_swift_files
316310
if(SWIFTFILE_SDK IN_LIST SWIFT_APPLE_PLATFORMS)
317311
set(specific_module_dir "${module_base}.swiftmodule")
318312
set(module_base "${module_base}.swiftmodule/${SWIFTFILE_ARCHITECTURE}")
313+
else()
314+
set(specific_module_dir)
319315
endif()
320316
set(module_file "${module_base}.swiftmodule")
321317
set(module_doc_file "${module_base}.swiftdoc")
@@ -328,16 +324,8 @@ function(_compile_swift_files
328324

329325
if(SWIFT_ENABLE_PARSEABLE_MODULE_INTERFACES)
330326
set(interface_file "${module_base}.swiftinterface")
331-
list(APPEND swift_flags
332-
"-emit-parseable-module-interface-path" "${interface_file}")
333-
endif()
334-
335-
if(SWIFTFILE_SDK IN_LIST SWIFT_APPLE_PLATFORMS)
336-
list(APPEND command_create_dirs
337-
COMMAND "${CMAKE_COMMAND}" -E make_directory "${specific_module_dir}")
338-
else()
339-
list(APPEND command_create_dirs
340-
COMMAND "${CMAKE_COMMAND}" -E make_directory "${module_dir}")
327+
list(APPEND swift_module_flags
328+
"-emit-parseable-module-interface-path" "${interface_file}")
341329
endif()
342330

343331
# If we have extra regexp flags, check if we match any of the regexps. If so
@@ -398,7 +386,7 @@ function(_compile_swift_files
398386
endif()
399387

400388
if (SWIFT_REPORT_STATISTICS)
401-
list(GET obj_dirs 0 first_obj_dir)
389+
list(GET dirs_to_create 0 first_obj_dir)
402390
list(APPEND swift_flags "-stats-output-dir" ${first_obj_dir})
403391
endif()
404392

@@ -433,12 +421,12 @@ function(_compile_swift_files
433421
endif()
434422

435423
# First generate the obj dirs
424+
list(REMOVE_DUPLICATES dirs_to_create)
436425
add_custom_command_target(
437-
obj_dirs_dependency_target
438-
${command_create_dirs}
439-
COMMAND ""
440-
OUTPUT ${obj_dirs}
441-
COMMENT "Generating obj dirs for ${first_output}")
426+
create_dirs_dependency_target
427+
COMMAND "${CMAKE_COMMAND}" -E make_directory ${dirs_to_create}
428+
OUTPUT ${dirs_to_create}
429+
COMMENT "Generating dirs for ${first_output}")
442430

443431
# Then we can compile both the object files and the swiftmodule files
444432
# in parallel in this target for the object file, and ...
@@ -478,7 +466,7 @@ function(_compile_swift_files
478466
${swift_compiler_tool_dep}
479467
${file_path} ${source_files} ${SWIFTFILE_DEPENDS}
480468
${swift_ide_test_dependency}
481-
${obj_dirs_dependency_target}
469+
${create_dirs_dependency_target}
482470
${copy_legacy_layouts_dep}
483471
COMMENT "Compiling ${first_output}")
484472
set("${dependency_target_out_var_name}" "${dependency_target}" PARENT_SCOPE)
@@ -503,17 +491,20 @@ function(_compile_swift_files
503491
module_dependency_target
504492
COMMAND
505493
"${CMAKE_COMMAND}" "-E" "remove" "-f" ${module_outputs}
494+
COMMAND
495+
"${CMAKE_COMMAND}" "-E" "make_directory" ${module_dir}
496+
${specific_module_dir}
506497
COMMAND
507498
"${PYTHON_EXECUTABLE}" "${line_directive_tool}" "@${file_path}" --
508499
"${swift_compiler_tool}" "-emit-module" "-o" "${module_file}"
509-
${swift_flags} "@${file_path}"
500+
${swift_flags} ${swift_module_flags} "@${file_path}"
510501
${command_touch_module_outputs}
511502
OUTPUT ${module_outputs}
512503
DEPENDS
513504
${swift_compiler_tool_dep}
514505
${source_files} ${SWIFTFILE_DEPENDS}
515506
${swift_ide_test_dependency}
516-
${obj_dirs_dependency_target}
507+
${create_dirs_dependency_target}
517508
COMMENT "Generating ${module_file}")
518509
set("${dependency_module_target_out_var_name}" "${module_dependency_target}" PARENT_SCOPE)
519510

@@ -529,7 +520,7 @@ function(_compile_swift_files
529520
DEPENDS
530521
${swift_compiler_tool_dep}
531522
${source_files} ${SWIFTFILE_DEPENDS}
532-
${obj_dirs_dependency_target}
523+
${create_dirs_dependency_target}
533524
COMMENT "Generating ${sib_file}"
534525
EXCLUDE_FROM_ALL)
535526
set("${dependency_sib_target_out_var_name}" "${sib_dependency_target}" PARENT_SCOPE)
@@ -545,7 +536,7 @@ function(_compile_swift_files
545536
DEPENDS
546537
${swift_compiler_tool_dep}
547538
${source_files} ${SWIFTFILE_DEPENDS}
548-
${obj_dirs_dependency_target}
539+
${create_dirs_dependency_target}
549540
COMMENT "Generating ${sibopt_file}"
550541
EXCLUDE_FROM_ALL)
551542
set("${dependency_sibopt_target_out_var_name}" "${sibopt_dependency_target}" PARENT_SCOPE)
@@ -562,7 +553,7 @@ function(_compile_swift_files
562553
DEPENDS
563554
${swift_compiler_tool_dep}
564555
${source_files} ${SWIFTFILE_DEPENDS}
565-
${obj_dirs_dependency_target}
556+
${create_dirs_dependency_target}
566557
COMMENT "Generating ${sibgen_file}"
567558
EXCLUDE_FROM_ALL)
568559
set("${dependency_sibgen_target_out_var_name}" "${sibgen_dependency_target}" PARENT_SCOPE)

0 commit comments

Comments
 (0)