Files
swift-mirror/lib/Migrator/CMakeLists.txt
Alex Langford 3d9a28925b [CMake] Modify swift_install_in_component to support cmake install components
CMake supports the notion of installation components. Right now we have some
custom code for supporting swift components. I think that for installation
purposes, it would be nice to use the CMake component system.

This should be a non-functional change. We should still only be generating
install rules for targets and files in components we want to install, and we
still use the install ninja target to install everything.
2019-04-19 14:06:11 -07:00

64 lines
1.7 KiB
CMake

set(datafiles
macos4.json
ios4.json
tvos4.json
watchos4.json
overlay4.json
macos42.json
ios42.json
tvos42.json
watchos42.json
overlay42.json
)
set(SWIFTLIB_DIR
"${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/lib/swift")
set(output_dir "${SWIFTLIB_DIR}/migrator")
add_custom_command(
OUTPUT "${output_dir}"
COMMAND ${CMAKE_COMMAND} "-E" "make_directory" "${output_dir}")
set(outputs)
foreach(input ${datafiles})
set(source "${CMAKE_CURRENT_SOURCE_DIR}/${input}")
set(dest "${output_dir}/${input}")
if(CMAKE_SYSTEM_NAME STREQUAL Windows)
set(CMAKE_SYMLINK_COMMAND copy)
else()
set(CMAKE_SYMLINK_COMMAND create_symlink)
endif()
add_custom_command(OUTPUT
"${output_dir}/${input}"
DEPENDS
"${CMAKE_CURRENT_SOURCE_DIR}/${input}"
COMMAND
"${CMAKE_COMMAND}" "-E" "${CMAKE_SYMLINK_COMMAND}" "${source}" "${dest}")
list(APPEND outputs "${output_dir}/${input}")
endforeach()
list(APPEND outputs "${output_dir}")
add_custom_target("symlink_migrator_data"
DEPENDS "${output_dir}" "${outputs}"
COMMENT "Symlinking migrator data to ${output_dir}")
swift_install_in_component(FILES ${datafiles}
DESTINATION "lib/swift/migrator"
COMPONENT compiler)
add_swift_host_library(swiftMigrator STATIC
APIDiffMigratorPass.cpp
EditorAdapter.cpp
FixitApplyDiagnosticConsumer.cpp
Migrator.cpp
MigrationState.cpp
OptionalTryMigratorPass.cpp
RewriteBufferEditsReceiver.cpp)
target_link_libraries(swiftMigrator PRIVATE
swiftIDE
swiftSyntax)
add_dependencies(swiftMigrator
"symlink_migrator_data")