Skip to content

Commit 647fd3e

Browse files
authored
Merge pull request #26193 from xiaobai/fix-component-build
[CMake][NFC] Support cmake install components for targets with multiple target files
2 parents 9023661 + 07214e1 commit 647fd3e

File tree

6 files changed

+51
-28
lines changed

6 files changed

+51
-28
lines changed

cmake/modules/AddSwift.cmake

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1512,10 +1512,9 @@ function(add_swift_host_library name)
15121512

15131513
if(NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
15141514
swift_install_in_component(TARGETS ${name}
1515-
ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX}
1516-
LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX}
1517-
RUNTIME DESTINATION bin
1518-
COMPONENT dev)
1515+
ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX} COMPONENT dev
1516+
LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX} COMPONENT dev
1517+
RUNTIME DESTINATION bin COMPONENT dev)
15191518
endif()
15201519

15211520
swift_is_installing_component(dev is_installing)
@@ -2139,10 +2138,15 @@ function(add_swift_target_library name)
21392138

21402139
if(sdk STREQUAL WINDOWS AND CMAKE_SYSTEM_NAME STREQUAL Windows)
21412140
swift_install_in_component(TARGETS ${name}-windows-${SWIFT_PRIMARY_VARIANT_ARCH}
2142-
RUNTIME DESTINATION "bin"
2143-
LIBRARY DESTINATION "lib${LLVM_LIBDIR_SUFFIX}/${resource_dir}/${resource_dir_sdk_subdir}/${SWIFT_PRIMARY_VARIANT_ARCH}"
2144-
ARCHIVE DESTINATION "lib${LLVM_LIBDIR_SUFFIX}/${resource_dir}/${resource_dir_sdk_subdir}/${SWIFT_PRIMARY_VARIANT_ARCH}"
2145-
COMPONENT "${SWIFTLIB_INSTALL_IN_COMPONENT}"
2141+
RUNTIME
2142+
DESTINATION "bin"
2143+
COMPONENT "${SWIFTLIB_INSTALL_IN_COMPONENT}"
2144+
LIBRARY
2145+
DESTINATION "lib${LLVM_LIBDIR_SUFFIX}/${resource_dir}/${resource_dir_sdk_subdir}/${SWIFT_PRIMARY_VARIANT_ARCH}"
2146+
COMPONENT "${SWIFTLIB_INSTALL_IN_COMPONENT}"
2147+
ARCHIVE
2148+
DESTINATION "lib${LLVM_LIBDIR_SUFFIX}/${resource_dir}/${resource_dir_sdk_subdir}/${SWIFT_PRIMARY_VARIANT_ARCH}"
2149+
COMPONENT "${SWIFTLIB_INSTALL_IN_COMPONENT}"
21462150
PERMISSIONS ${file_permissions})
21472151
else()
21482152
swift_install_in_component(FILES "${UNIVERSAL_LIBRARY_NAME}"
@@ -2423,8 +2427,9 @@ function(add_swift_host_tool executable)
24232427
${ASHT_UNPARSED_ARGUMENTS})
24242428

24252429
swift_install_in_component(TARGETS ${executable}
2426-
RUNTIME DESTINATION bin
2427-
COMPONENT ${ASHT_SWIFT_COMPONENT})
2430+
RUNTIME
2431+
DESTINATION bin
2432+
COMPONENT ${ASHT_SWIFT_COMPONENT})
24282433

24292434
swift_is_installing_component(${ASHT_SWIFT_COMPONENT} is_installing)
24302435

lib/SwiftDemangle/CMakeLists.txt

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@ target_link_libraries(swiftDemangle PRIVATE
77
swiftDemangling)
88

99
swift_install_in_component(TARGETS swiftDemangle
10-
LIBRARY DESTINATION "lib${LLVM_LIBDIR_SUFFIX}"
11-
ARCHIVE DESTINATION "lib${LLVM_LIBDIR_SUFFIX}"
12-
COMPONENT compiler)
10+
LIBRARY
11+
DESTINATION "lib${LLVM_LIBDIR_SUFFIX}"
12+
COMPONENT compiler
13+
ARCHIVE
14+
DESTINATION "lib${LLVM_LIBDIR_SUFFIX}"
15+
COMPONENT compiler)

tools/SourceKit/cmake/modules/AddSwiftSourceKit.cmake

Lines changed: 21 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -189,10 +189,15 @@ macro(add_sourcekit_library name)
189189
endif()
190190
endif()
191191
swift_install_in_component(TARGETS ${name}
192-
LIBRARY DESTINATION "lib${LLVM_LIBDIR_SUFFIX}"
193-
ARCHIVE DESTINATION "lib${LLVM_LIBDIR_SUFFIX}"
194-
RUNTIME DESTINATION "bin"
195-
COMPONENT "${SOURCEKITLIB_INSTALL_IN_COMPONENT}")
192+
LIBRARY
193+
DESTINATION "lib${LLVM_LIBDIR_SUFFIX}"
194+
COMPONENT "${SOURCEKITLIB_INSTALL_IN_COMPONENT}"
195+
ARCHIVE
196+
DESTINATION "lib${LLVM_LIBDIR_SUFFIX}"
197+
COMPONENT "${SOURCEKITLIB_INSTALL_IN_COMPONENT}"
198+
RUNTIME
199+
DESTINATION "bin"
200+
COMPONENT "${SOURCEKITLIB_INSTALL_IN_COMPONENT}")
196201
swift_install_in_component(FILES ${SOURCEKITLIB_HEADERS}
197202
DESTINATION "include/SourceKit"
198203
COMPONENT "${SOURCEKITLIB_INSTALL_IN_COMPONENT}")
@@ -341,11 +346,18 @@ macro(add_sourcekit_framework name)
341346
MACOSX_FRAMEWORK_BUNDLE_VERSION "${SOURCEKIT_VERSION_STRING}"
342347
PUBLIC_HEADER "${headers}")
343348
swift_install_in_component(TARGETS ${name}
344-
FRAMEWORK DESTINATION lib${LLVM_LIBDIR_SUFFIX}
345-
LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX}
346-
ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX}
347-
RUNTIME DESTINATION bin
348-
COMPONENT ${SOURCEKITFW_INSTALL_IN_COMPONENT})
349+
FRAMEWORK
350+
DESTINATION lib${LLVM_LIBDIR_SUFFIX}
351+
COMPONENT ${SOURCEKITFW_INSTALL_IN_COMPONENT}
352+
LIBRARY
353+
DESTINATION lib${LLVM_LIBDIR_SUFFIX}
354+
COMPONENT ${SOURCEKITFW_INSTALL_IN_COMPONENT}
355+
ARCHIVE
356+
DESTINATION lib${LLVM_LIBDIR_SUFFIX}
357+
COMPONENT ${SOURCEKITFW_INSTALL_IN_COMPONENT}
358+
RUNTIME
359+
DESTINATION bin
360+
COMPONENT ${SOURCEKITFW_INSTALL_IN_COMPONENT})
349361
else()
350362
set_output_directory(${name}
351363
BINARY_DIR ${framework_location}

tools/SourceKit/tools/complete-test/CMakeLists.txt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,5 +25,6 @@ if(SWIFT_ANALYZE_CODE_COVERAGE)
2525
endif()
2626

2727
swift_install_in_component(TARGETS complete-test
28-
RUNTIME DESTINATION bin
29-
COMPONENT tools)
28+
RUNTIME
29+
DESTINATION bin
30+
COMPONENT tools)

tools/SourceKit/tools/sourcekitd-repl/CMakeLists.txt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ if(HAVE_UNICODE_LIBEDIT)
2828
endif()
2929

3030
swift_install_in_component(TARGETS sourcekitd-repl
31-
RUNTIME DESTINATION bin
32-
COMPONENT tools)
31+
RUNTIME
32+
DESTINATION bin
33+
COMPONENT tools)
3334
endif()

tools/SourceKit/tools/sourcekitd-test/CMakeLists.txt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,5 +33,6 @@ if(SWIFT_ANALYZE_CODE_COVERAGE)
3333
endif()
3434

3535
swift_install_in_component(TARGETS sourcekitd-test
36-
RUNTIME DESTINATION bin
37-
COMPONENT tools)
36+
RUNTIME
37+
DESTINATION bin
38+
COMPONENT tools)

0 commit comments

Comments
 (0)