|
1 |
| -is_sdk_requested(WINDOWS swift_build_windows) |
2 | 1 | set(libcxxshim_modulemap_target_list)
|
3 | 2 | foreach(sdk ${SWIFT_SDKS})
|
4 |
| - if(swift_build_windows) |
5 |
| - continue() |
6 |
| - endif() |
7 |
| - |
8 | 3 | foreach(arch ${SWIFT_SDK_${sdk}_ARCHITECTURES})
|
9 | 4 | set(arch_suffix "${SWIFT_SDK_${sdk}_LIB_SUBDIR}-${arch}")
|
10 | 5 | set(arch_subdir "${SWIFT_SDK_${sdk}_LIB_SUBDIR}/${arch}")
|
11 | 6 |
|
12 | 7 | set(module_dir "${SWIFTLIB_DIR}/${arch_subdir}")
|
13 | 8 | set(module_dir_static "${SWIFTSTATICLIB_DIR}/${arch_subdir}")
|
14 | 9 |
|
15 |
| - set(libcxxshim_header "libcxxshim.h") |
16 |
| - set(libcxxshim_header_out "${module_dir}/libcxxshim.h") |
17 |
| - set(libcxxshim_header_out_static "${module_dir_static}/libcxxshim.h") |
18 |
| - set(libcxxshim_modulemap "libcxxshim.modulemap") |
19 |
| - set(libcxxshim_modulemap_out "${module_dir}/libcxxshim.modulemap") |
20 |
| - set(libcxxshim_modulemap_out_static "${module_dir_static}/libcxxshim.modulemap") |
21 |
| - |
22 |
| - add_custom_command_target( |
23 |
| - copy_libcxxshim_modulemap |
24 |
| - COMMAND |
25 |
| - "${CMAKE_COMMAND}" "-E" "make_directory" ${module_dir} |
26 |
| - COMMAND |
27 |
| - "${CMAKE_COMMAND}" "-E" "copy_if_different" "${CMAKE_CURRENT_SOURCE_DIR}/${libcxxshim_modulemap}" "${libcxxshim_modulemap_out}" |
28 |
| - OUTPUT ${libcxxshim_modulemap_out} |
29 |
| - DEPENDS ${libcxxshim_modulemap} |
30 |
| - COMMENT "Copying libcxxshim modulemap to resources") |
31 |
| - list(APPEND libcxxshim_modulemap_target_list ${copy_libcxxshim_modulemap}) |
32 |
| - add_dependencies(swift-stdlib-${arch_suffix} ${copy_libcxxshim_modulemap}) |
33 |
| - |
34 |
| - add_custom_command_target( |
35 |
| - copy_libcxxshim_header |
36 |
| - COMMAND |
37 |
| - "${CMAKE_COMMAND}" "-E" "make_directory" ${module_dir} |
38 |
| - COMMAND |
39 |
| - "${CMAKE_COMMAND}" "-E" "copy_if_different" "${CMAKE_CURRENT_SOURCE_DIR}/${libcxxshim_header}" "${libcxxshim_header_out}" |
40 |
| - OUTPUT ${libcxxshim_header_out} |
41 |
| - DEPENDS ${libcxxshim_header} |
42 |
| - COMMENT "Copying libcxxshim header to resources") |
43 |
| - list(APPEND libcxxshim_modulemap_target_list ${copy_libcxxshim_header}) |
44 |
| - add_dependencies(swift-stdlib-${arch_suffix} ${copy_libcxxshim_header}) |
45 |
| - |
| 10 | + add_custom_command(OUTPUT ${module_dir} |
| 11 | + COMMAND ${CMAKE_COMMAND} "-E" "make_directory" "${module_dir}") |
46 | 12 | if(SWIFT_BUILD_STATIC_STDLIB)
|
47 |
| - add_custom_command_target( |
48 |
| - copy_libcxxshim_modulemap_static |
49 |
| - COMMAND |
50 |
| - "${CMAKE_COMMAND}" "-E" "make_directory" ${module_dir_static} |
51 |
| - COMMAND |
52 |
| - "${CMAKE_COMMAND}" "-E" "copy_if_different" |
53 |
| - "${libcxxshim_modulemap_out}" "${libcxxshim_modulemap_out_static}" |
54 |
| - OUTPUT ${libcxxshim_modulemap_out_static} |
55 |
| - DEPENDS ${copy_libcxxshim_modulemap} |
56 |
| - COMMENT "Copying libcxxshim modulemap to static resources") |
57 |
| - list(APPEND libcxxshim_modulemap_target_list ${copy_libcxxshim_modulemap_static}) |
58 |
| - add_dependencies(swift-stdlib-${arch_suffix} ${copy_libcxxshim_modulemap_static}) |
| 13 | + add_custom_command(OUTPUT ${module_dir_static} |
| 14 | + COMMAND ${CMAKE_COMMAND} "-E" "make_directory" "${module_dir_static}") |
| 15 | + endif() |
59 | 16 |
|
60 |
| - add_custom_command_target( |
61 |
| - copy_libcxxshim_header_static |
62 |
| - COMMAND |
63 |
| - "${CMAKE_COMMAND}" "-E" "make_directory" ${module_dir_static} |
64 |
| - COMMAND |
65 |
| - "${CMAKE_COMMAND}" "-E" "copy_if_different" |
66 |
| - "${libcxxshim_header_out}" "${libcxxshim_header_out_static}" |
67 |
| - OUTPUT ${libcxxshim_header_out_static} |
68 |
| - DEPENDS ${copy_libcxxshim_header} |
69 |
| - COMMENT "Copying libcxxshim header to static resources") |
70 |
| - list(APPEND libcxxshim_modulemap_target_list ${copy_libcxxshim_header_static}) |
71 |
| - add_dependencies(swift-stdlib-${arch_suffix} ${copy_libcxxshim_header_static}) |
| 17 | + set(outputs) |
| 18 | + foreach(source libcxxshim.modulemap libcxxshim.h) |
| 19 | + add_custom_command(OUTPUT ${module_dir}/${source} |
| 20 | + DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${source} |
| 21 | + COMMAND ${CMAKE_COMMAND} "-E" "copy_if_different" "${CMAKE_CURRENT_SOURCE_DIR}/${source}" "${module_dir}/${source}" |
| 22 | + COMMENT "Copying ${source} to ${module_dir}") |
| 23 | + list(APPEND outputs "${module_dir}/${source}") |
| 24 | + |
| 25 | + if(SWIFT_BUILD_STATIC_STDLIB) |
| 26 | + add_custom_command(OUTPUT ${module_dir_static}/${source} |
| 27 | + DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${source} |
| 28 | + COMMAND ${CMAKE_COMMAND} "-E" "copy_if_different" "${CMAKE_CURRENT_SOURCE_DIR}/${source}" "${module_dir_static}/${source}" |
| 29 | + COMMENT "Copying ${source} to ${module_dir_static}") |
| 30 | + list(APPEND outputs "${module_dir_static}/${source}") |
| 31 | + endif() |
| 32 | + endforeach() |
| 33 | + list(APPEND outputs ${module_dir}) |
| 34 | + if(SWIFT_BUILD_STATIC_STDLIB) |
| 35 | + list(APPEND outputs ${module_dir_static}) |
72 | 36 | endif()
|
73 | 37 |
|
74 |
| - swift_install_in_component(FILES "${libcxxshim_modulemap_out}" |
75 |
| - DESTINATION "lib/swift/${arch_subdir}" |
76 |
| - COMPONENT sdk-overlay) |
77 |
| - swift_install_in_component(FILES "${libcxxshim_header_out}" |
78 |
| - DESTINATION "lib/swift/${arch_subdir}" |
79 |
| - COMPONENT sdk-overlay) |
| 38 | + add_custom_target(cxxshim-${sdk}-${arch} ALL |
| 39 | + DEPENDS ${outputs} |
| 40 | + COMMENT "Copying cxxshims to ${module_dir}") |
80 | 41 |
|
| 42 | + |
| 43 | + swift_install_in_component(FILES libcxxshim.modulemap libcxxshim.h |
| 44 | + DESTINATION "lib/swift/${arch_subdir}" |
| 45 | + COMPONENT sdk-overlay) |
81 | 46 | if(SWIFT_BUILD_STATIC_STDLIB)
|
82 |
| - swift_install_in_component(FILES "${libcxxshim_modulemap_out_static}" |
83 |
| - DESTINATION "lib/swift_static/${arch_subdir}" |
84 |
| - COMPONENT sdk-overlay) |
85 |
| - swift_install_in_component(FILES "${libcxxshim_header_out_static}" |
86 |
| - DESTINATION "lib/swift_static/${arch_subdir}" |
87 |
| - COMPONENT sdk-overlay) |
| 47 | + swift_install_in_component(FILES libcxxshim.modulemap libcxxshim.h |
| 48 | + DESTINATION "lib/swift_static/${arch_subdir}" |
| 49 | + COMPONENT sdk-overlay) |
88 | 50 | endif()
|
89 | 51 | endforeach()
|
90 | 52 | endforeach()
|
91 |
| - |
92 |
| -add_custom_target(libcxxshim-modulemap DEPENDS ${libcxxshim_modulemap_target_list}) |
93 |
| -set_property(TARGET libcxxshim-modulemap PROPERTY FOLDER "Miscellaneous") |
94 |
| -add_dependencies(sdk-overlay libcxxshim-modulemap) |
0 commit comments