mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
This commit introduces a CMake target for each component, adds install targets for them, and switches build-script-impl to use the target `install-components` for installation. Each of the targets for each component depends on each of the individual targets and outputs that are associated with the corresponding swift-component. This is equivalent to what already exists, because right now install rules are only generated for components that we want to install. Therefore, this commit should be an NFC. This is a resubmission (with modifications) of an earlier change. I originally committed this but there were problems with some installation rules.
33 lines
901 B
CMake
33 lines
901 B
CMake
set(sources
|
|
Dispatch.apinotes
|
|
os.apinotes
|
|
)
|
|
|
|
set(output_dir "${SWIFTLIB_DIR}/apinotes")
|
|
|
|
set(inputs)
|
|
set(outputs)
|
|
foreach(input ${sources})
|
|
list(APPEND inputs "${CMAKE_CURRENT_SOURCE_DIR}/${input}")
|
|
list(APPEND outputs "${output_dir}/${input}")
|
|
endforeach()
|
|
|
|
add_custom_command(
|
|
OUTPUT "${output_dir}"
|
|
COMMAND ${CMAKE_COMMAND} "-E" "make_directory" "${output_dir}")
|
|
add_custom_command(
|
|
OUTPUT ${outputs}
|
|
DEPENDS ${inputs} "${output_dir}"
|
|
COMMAND
|
|
"${CMAKE_COMMAND}" "-E" "copy_if_different" ${inputs} "${output_dir}/")
|
|
|
|
add_custom_target("copy_apinotes" ALL
|
|
DEPENDS "${outputs}" "${output_dir}"
|
|
COMMENT "Copying API notes to ${output_dir}"
|
|
SOURCES "${sources}")
|
|
|
|
add_dependencies(compiler copy_apinotes)
|
|
swift_install_in_component(DIRECTORY "${output_dir}"
|
|
DESTINATION "lib/swift/"
|
|
COMPONENT compiler)
|