|
| 1 | +set(winsdk_modulemap_target_list) |
| 2 | +foreach(arch ${SWIFT_SDK_WINDOWS_ARCHITECTURES}) |
| 3 | +set(arch_suffix "${SWIFT_SDK_WINDOWS_LIB_SUBDIR}-${arch}") |
| 4 | +set(arch_subdir "${SWIFT_SDK_WINDOWS_LIB_SUBDIR}/${arch}") |
| 5 | + |
| 6 | +set(module_dir "${SWIFTLIB_DIR}/${arch_subdir}") |
| 7 | +set(module_dir_static "${SWIFTSTATICLIB_DIR}/${arch_subdir}") |
| 8 | + |
| 9 | +set(winsdk_modulemap "winsdk.modulemap") |
| 10 | +set(winsdk_modulemap_out "${module_dir}/WinSDK.modulemap") |
| 11 | +set(winsdk_modulemap_out_static "${module_dir_static}/WinSDK.modulemap") |
| 12 | + |
| 13 | +add_custom_command_target( |
| 14 | + copy_winsdk_modulemap |
| 15 | + COMMAND |
| 16 | + "${CMAKE_COMMAND}" "-E" "make_directory" ${module_dir} |
| 17 | + COMMAND |
| 18 | + "${CMAKE_COMMAND}" "-E" "copy_if_different" "${CMAKE_CURRENT_SOURCE_DIR}/${winsdk_modulemap}" "${winsdk_modulemap_out}" |
| 19 | + OUTPUT ${winsdk_modulemap_out} |
| 20 | + DEPENDS ${winsdk_modulemap} |
| 21 | + COMMENT "Copying WinSDK modulemap to resources") |
| 22 | +list(APPEND winsdk_modulemap_target_list ${copy_winsdk_modulemap}) |
| 23 | +add_dependencies(swift-stdlib-${arch_suffix} ${copy_winsdk_modulemap}) |
| 24 | + |
| 25 | +if(SWIFT_BUILD_STATIC_STDLIB) |
| 26 | + add_custom_command_target( |
| 27 | + copy_winsdk_modulemap_static |
| 28 | + COMMAND |
| 29 | + "${CMAKE_COMMAND}" "-E" "make_directory" ${module_dir_static} |
| 30 | + COMMAND |
| 31 | + "${CMAKE_COMMAND}" "-E" "copy_if_different" |
| 32 | + "${winsdk_modulemap_out}" "${winsdk_modulemap_out_static}" |
| 33 | + OUTPUT ${winsdk_modulemap_out_static} |
| 34 | + DEPENDS ${copy_winsdk_modulemap} |
| 35 | + COMMENT "Copying WinSDK modulemap to static resources") |
| 36 | + list(APPEND winsdk_modulemap_target_list ${copy_winsdk_modulemap_static}) |
| 37 | + add_dependencies(swift-stdlib-${arch_suffix} ${copy_winsdk_modulemap_static}) |
| 38 | +endif() |
| 39 | + |
| 40 | +swift_install_in_component(FILES "${winsdk_modulemap_out}" |
| 41 | + DESTINATION "lib/swift/${arch_subdir}" |
| 42 | + COMPONENT sdk-overlay) |
| 43 | + |
| 44 | +if(SWIFT_BUILD_STATIC_STDLIB) |
| 45 | + swift_install_in_component(FILES "${winsdk_modulemap_out_static}" |
| 46 | + DESTINATION "lib/swift_static/${arch_subdir}" |
| 47 | + COMPONENT sdk-overlay) |
| 48 | +endif() |
| 49 | + |
| 50 | +if(${BOOTSTRAPPING_MODE} MATCHES "BOOTSTRAPPING.*") |
| 51 | + foreach(bootstrapping "0" "1") |
| 52 | + get_bootstrapping_path(bootstrapping_dir ${module_dir} ${bootstrapping}) |
| 53 | + set(winsdk_modulemap_out_bootstrapping "${bootstrapping_dir}/WinSDK.modulemap") |
| 54 | + |
| 55 | + add_custom_command_target(unused_var |
| 56 | + COMMAND |
| 57 | + "${CMAKE_COMMAND}" "-E" "make_directory" "${bootstrapping_dir}" |
| 58 | + COMMAND |
| 59 | + "${CMAKE_COMMAND}" "-E" "copy_if_different" |
| 60 | + "${CMAKE_CURRENT_SOURCE_DIR}/${winsdk_modulemap}" "${winsdk_modulemap_out_bootstrapping}" |
| 61 | + |
| 62 | + CUSTOM_TARGET_NAME "copy-winsdk-modulemap-bootstrapping${bootstrapping}" |
| 63 | + OUTPUT "${winsdk_modulemap_out_bootstrapping}" |
| 64 | + DEPENDS ${winsdk_modulemap} |
| 65 | + COMMENT "Copying WinSDK modulemap to resources for bootstrapping${bootstrapping}") |
| 66 | + endforeach() |
| 67 | +endif() |
| 68 | +endforeach() |
| 69 | +add_custom_target(winsdk-modulemap DEPENDS ${winsdk_modulemap_target_list}) |
| 70 | +set_property(TARGET winsdk-modulemap PROPERTY FOLDER "Miscellaneous") |
| 71 | +add_dependencies(sdk-overlay winsdk-modulemap) |
| 72 | + |
1 | 73 | add_swift_target_library(swiftWinSDK ${SWIFT_STDLIB_LIBRARY_BUILD_TYPES} IS_SDK_OVERLAY
|
2 | 74 | WinSDK.swift
|
3 | 75 |
|
4 | 76 | SWIFT_COMPILE_FLAGS ${SWIFT_RUNTIME_SWIFT_COMPILE_FLAGS} ${SWIFT_STANDARD_LIBRARY_SWIFT_FLAGS}
|
5 | 77 | LINK_FLAGS "${SWIFT_RUNTIME_SWIFT_LINK_FLAGS}"
|
6 | 78 | TARGET_SDKS WINDOWS
|
7 |
| - INSTALL_IN_COMPONENT sdk-overlay) |
8 |
| - |
| 79 | + INSTALL_IN_COMPONENT sdk-overlay |
| 80 | + DEPENDS winsdk-modulemap) |
0 commit comments