1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
|
set(libcxxshim_modulemap_target_list)
foreach(sdk ${SWIFT_SDKS})
set(module_dir "${SWIFTLIB_DIR}/${SWIFT_SDK_${sdk}_LIB_SUBDIR}")
set(module_dir_static "${SWIFTSTATICLIB_DIR}/${SWIFT_SDK_${sdk}_LIB_SUBDIR}")
add_custom_command(OUTPUT ${module_dir}
COMMAND ${CMAKE_COMMAND} "-E" "make_directory" "${module_dir}")
if(SWIFT_BUILD_STATIC_STDLIB OR SWIFT_SDK_${sdk}_STATIC_ONLY)
add_custom_command(OUTPUT ${module_dir_static}
COMMAND ${CMAKE_COMMAND} "-E" "make_directory" "${module_dir_static}")
endif()
set(outputs)
foreach(source libcxxshim.modulemap libcxxshim.h libcxxstdlibshim.h)
add_custom_command(OUTPUT ${module_dir}/${source}
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${source}
COMMAND ${CMAKE_COMMAND} "-E" "copy_if_different" "${CMAKE_CURRENT_SOURCE_DIR}/${source}" "${module_dir}/${source}"
COMMENT "Copying ${source} to ${module_dir}")
list(APPEND outputs "${module_dir}/${source}")
if(SWIFT_BUILD_STATIC_STDLIB OR SWIFT_SDK_${sdk}_STATIC_ONLY)
add_custom_command(OUTPUT ${module_dir_static}/${source}
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${source}
COMMAND ${CMAKE_COMMAND} "-E" "copy_if_different" "${CMAKE_CURRENT_SOURCE_DIR}/${source}" "${module_dir_static}/${source}"
COMMENT "Copying ${source} to ${module_dir_static}")
list(APPEND outputs "${module_dir_static}/${source}")
endif()
endforeach()
list(APPEND outputs ${module_dir})
if(SWIFT_BUILD_STATIC_STDLIB OR SWIFT_SDK_${sdk}_STATIC_ONLY)
list(APPEND outputs ${module_dir_static})
endif()
add_custom_target(cxxshim-${sdk} ALL
DEPENDS ${outputs}
COMMENT "Copying cxxshims to ${module_dir}")
list(APPEND libcxxshim_modulemap_target_list cxxshim-${sdk})
swift_install_in_component(FILES libcxxshim.modulemap libcxxshim.h libcxxstdlibshim.h
DESTINATION "lib/swift/${SWIFT_SDK_${sdk}_LIB_SUBDIR}"
COMPONENT compiler)
if(SWIFT_BUILD_STATIC_STDLIB OR SWIFT_SDK_${sdk}_STATIC_ONLY)
swift_install_in_component(FILES libcxxshim.modulemap libcxxshim.h libcxxstdlibshim.h
DESTINATION "lib/swift_static/${SWIFT_SDK_${sdk}_LIB_SUBDIR}"
COMPONENT compiler)
endif()
endforeach()
add_custom_target(libcxxshim_modulemap DEPENDS ${libcxxshim_modulemap_target_list})
set_property(TARGET libcxxshim_modulemap PROPERTY FOLDER "Miscellaneous")
add_dependencies(sdk-overlay libcxxshim_modulemap)
add_dependencies(compiler libcxxshim_modulemap)
|