mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
Mostly this just means adding `Musl` as a module dependency of various things and making sure that we build things for `swift_static` even if `SWIFT_BUILD_STATIC_STDLIB` isn't enabled. There's also a slight difference in the declaration of `memcmp()`; musl's declaration is more like the one we have on Darwin. rdar://123508245
54 lines
2.6 KiB
CMake
54 lines
2.6 KiB
CMake
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)
|