|
1 | 1 | set(libstdcxx_modulemap_target_list)
|
| 2 | +set(libcxxshim_modulemap_target_list) |
2 | 3 | foreach(sdk ${SWIFT_SDKS})
|
3 |
| - if(NOT ${sdk} IN_LIST SWIFT_LIBSTDCXX_PLATFORMS) |
4 |
| - continue() |
5 |
| - endif() |
| 4 | + foreach(arch ${SWIFT_SDK_${sdk}_ARCHITECTURES}) |
| 5 | + set(arch_suffix "${SWIFT_SDK_${sdk}_LIB_SUBDIR}-${arch}") |
| 6 | + set(arch_subdir "${SWIFT_SDK_${sdk}_LIB_SUBDIR}/${arch}") |
| 7 | + |
| 8 | + set(module_dir "${SWIFTLIB_DIR}/${arch_subdir}") |
| 9 | + set(module_dir_static "${SWIFTSTATICLIB_DIR}/${arch_subdir}") |
| 10 | + |
| 11 | + set(libcxxshim_header "libcxxshim.h") |
| 12 | + set(libcxxshim_header_out "${module_dir}/libcxxshim.h") |
| 13 | + set(libcxxshim_header_out_static "${module_dir_static}/libcxxshim.h") |
| 14 | + set(libcxxshim_modulemap "libcxxshim.modulemap") |
| 15 | + set(libcxxshim_modulemap_out "${module_dir}/libcxxshim.modulemap") |
| 16 | + set(libcxxshim_modulemap_out_static "${module_dir_static}/libcxxshim.modulemap") |
| 17 | + |
| 18 | + add_custom_command_target( |
| 19 | + copy_libcxxshim_modulemap |
| 20 | + COMMAND |
| 21 | + "${CMAKE_COMMAND}" "-E" "make_directory" ${module_dir} |
| 22 | + COMMAND |
| 23 | + "${CMAKE_COMMAND}" "-E" "copy_if_different" "${CMAKE_CURRENT_SOURCE_DIR}/${libcxxshim_modulemap}" "${libcxxshim_modulemap_out}" |
| 24 | + OUTPUT ${libcxxshim_modulemap_out} |
| 25 | + DEPENDS ${libcxxshim_modulemap} |
| 26 | + COMMENT "Copying libcxxshim modulemap to resources") |
| 27 | + list(APPEND libcxxshim_modulemap_target_list ${copy_libcxxshim_modulemap}) |
| 28 | + add_dependencies(swift-stdlib-${arch_suffix} ${copy_libcxxshim_modulemap}) |
| 29 | + |
| 30 | + add_custom_command_target( |
| 31 | + copy_libcxxshim_header |
| 32 | + COMMAND |
| 33 | + "${CMAKE_COMMAND}" "-E" "make_directory" ${module_dir} |
| 34 | + COMMAND |
| 35 | + "${CMAKE_COMMAND}" "-E" "copy_if_different" "${CMAKE_CURRENT_SOURCE_DIR}/${libcxxshim_header}" "${libcxxshim_header_out}" |
| 36 | + OUTPUT ${libcxxshim_header_out} |
| 37 | + DEPENDS ${libcxxshim_header} |
| 38 | + COMMENT "Copying libcxxshim header to resources") |
| 39 | + list(APPEND libcxxshim_modulemap_target_list ${copy_libcxxshim_header}) |
| 40 | + add_dependencies(swift-stdlib-${arch_suffix} ${copy_libcxxshim_header}) |
| 41 | + |
| 42 | + if(SWIFT_BUILD_STATIC_STDLIB) |
| 43 | + add_custom_command_target( |
| 44 | + copy_libcxxshim_modulemap_static |
| 45 | + COMMAND |
| 46 | + "${CMAKE_COMMAND}" "-E" "make_directory" ${module_dir_static} |
| 47 | + COMMAND |
| 48 | + "${CMAKE_COMMAND}" "-E" "copy_if_different" |
| 49 | + "${libcxxshim_modulemap_out}" "${libcxxshim_modulemap_out_static}" |
| 50 | + OUTPUT ${libcxxshim_modulemap_out_static} |
| 51 | + DEPENDS ${copy_libcxxshim_modulemap} |
| 52 | + COMMENT "Copying libcxxshim modulemap to static resources") |
| 53 | + list(APPEND libcxxshim_modulemap_target_list ${copy_libcxxshim_modulemap_static}) |
| 54 | + add_dependencies(swift-stdlib-${arch_suffix} ${copy_libcxxshim_modulemap_static}) |
| 55 | + |
| 56 | + add_custom_command_target( |
| 57 | + copy_libcxxshim_header_static |
| 58 | + COMMAND |
| 59 | + "${CMAKE_COMMAND}" "-E" "make_directory" ${module_dir_static} |
| 60 | + COMMAND |
| 61 | + "${CMAKE_COMMAND}" "-E" "copy_if_different" |
| 62 | + "${libcxxshim_header_out}" "${libcxxshim_header_out_static}" |
| 63 | + OUTPUT ${libcxxshim_header_out_static} |
| 64 | + DEPENDS ${copy_libcxxshim_header} |
| 65 | + COMMENT "Copying libcxxshim header to static resources") |
| 66 | + list(APPEND libcxxshim_modulemap_target_list ${copy_libcxxshim_header_static}) |
| 67 | + add_dependencies(swift-stdlib-${arch_suffix} ${copy_libcxxshim_header_static}) |
| 68 | + endif() |
| 69 | + |
| 70 | + swift_install_in_component(FILES "${libcxxshim_modulemap_out}" |
| 71 | + DESTINATION "lib/swift/${arch_subdir}" |
| 72 | + COMPONENT sdk-overlay) |
| 73 | + swift_install_in_component(FILES "${libcxxshim_header_out}" |
| 74 | + DESTINATION "lib/swift/${arch_subdir}" |
| 75 | + COMPONENT sdk-overlay) |
| 76 | + |
| 77 | + if(SWIFT_BUILD_STATIC_STDLIB) |
| 78 | + swift_install_in_component(FILES "${libcxxshim_modulemap_out_static}" |
| 79 | + DESTINATION "lib/swift_static/${arch_subdir}" |
| 80 | + COMPONENT sdk-overlay) |
| 81 | + swift_install_in_component(FILES "${libcxxshim_header_out_static}" |
| 82 | + DESTINATION "lib/swift_static/${arch_subdir}" |
| 83 | + COMPONENT sdk-overlay) |
| 84 | + endif() |
| 85 | + endforeach() |
| 86 | + |
| 87 | +# if(NOT ${sdk} IN_LIST SWIFT_LIBSTDCXX_PLATFORMS) |
| 88 | +# continue() |
| 89 | +# endif() |
6 | 90 |
|
7 | 91 | foreach(arch ${SWIFT_SDK_${sdk}_ARCHITECTURES})
|
8 | 92 | set(arch_suffix "${SWIFT_SDK_${sdk}_LIB_SUBDIR}-${arch}")
|
@@ -119,10 +203,15 @@ foreach(sdk ${SWIFT_SDKS})
|
119 | 203 | endif()
|
120 | 204 | endforeach()
|
121 | 205 | endforeach()
|
| 206 | + |
122 | 207 | add_custom_target(libstdcxx-modulemap DEPENDS ${libstdcxx_modulemap_target_list})
|
123 | 208 | set_property(TARGET libstdcxx-modulemap PROPERTY FOLDER "Miscellaneous")
|
124 | 209 | add_dependencies(sdk-overlay libstdcxx-modulemap)
|
125 | 210 |
|
| 211 | +add_custom_target(libcxxshim-modulemap DEPENDS ${libcxxshim_modulemap_target_list}) |
| 212 | +set_property(TARGET libcxxshim-modulemap PROPERTY FOLDER "Miscellaneous") |
| 213 | +add_dependencies(sdk-overlay libcxxshim-modulemap) |
| 214 | + |
126 | 215 |
|
127 | 216 | #
|
128 | 217 | # C++ Standard Library Overlay.
|
@@ -152,4 +241,4 @@ add_swift_target_library(swiftstd ${SWIFT_STDLIB_LIBRARY_BUILD_TYPES} IS_SDK_OVE
|
152 | 241 | LINK_FLAGS "${SWIFT_RUNTIME_SWIFT_LINK_FLAGS}"
|
153 | 242 | TARGET_SDKS ALL_APPLE_PLATFORMS LINUX
|
154 | 243 | INSTALL_IN_COMPONENT sdk-overlay
|
155 |
| - DEPENDS libstdcxx-modulemap) |
| 244 | + DEPENDS libcxxshim-modulemap libstdcxx-modulemap) |
0 commit comments