9
9
# Build swift-syntax libraries with FetchContent.
10
10
function (includeSwiftSyntax)
11
11
set (CMAKE_Swift_COMPILER_TARGET ${SWIFT_HOST_TRIPLE} )
12
- set (BUILD_SHARED_LIBS OFF )
13
- set (CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR} " )
14
- set (CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR} " )
12
+ set (BUILD_SHARED_LIBS ON )
13
+ set (CMAKE_LIBRARY_OUTPUT_DIRECTORY "${SWIFT_HOST_LIBRARIES_DEST_DIR} /compiler " )
14
+ set (CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${SWIFT_HOST_LIBRARIES_DEST_DIR} /compiler " )
15
15
16
16
# Add unique ABI prefix to swift-syntax libraries so that compiler libraries (e.g. sourcekitdInProc)
17
17
# can be used from tools that has its own swift-syntax libraries as SwiftPM dependencies.
@@ -25,35 +25,9 @@ function(includeSwiftSyntax)
25
25
endfunction ()
26
26
includeSwiftSyntax()
27
27
28
- # Make unified swift-syntax shared library.
29
- add_pure_swift_host_library(swiftSyntaxUnified SHARED)
30
28
31
- macro (target_link_libraries_whole_archive target )
32
- set_property (TARGET ${target} PROPERTY INTERFACE_INCLUDE_DIRECTORIES )
33
29
34
- set (link_files)
35
- foreach (lib ${ARGN} )
36
- force_add_dependencies(${target} ${lib} )
37
-
38
- # Set dummy auto linking name to avoid trying to link with indivisual library.
39
- target_compile_options (${lib} PRIVATE "SHELL:-module-link-name swiftCore" )
40
-
41
- # Link all the object file into one unified library.
42
- list (APPEND link_files $<TARGET_OBJECTS:${lib} >)
43
-
44
- # Make the '.swiftmodule' visible from targets linking with the unified library.
45
- set_property (TARGET ${target} APPEND PROPERTY
46
- INTERFACE_INCLUDE_DIRECTORIES "$<TARGET_PROPERTY:${lib} ,INTERFACE_INCLUDE_DIRECTORIES>"
47
- )
48
- endforeach ()
49
-
50
- file (GENERATE
51
- OUTPUT ${CMAKE_CURRENT_BINARY_DIR} /link_files.txt
52
- CONTENT "$<JOIN:${link_files} ,\n >" )
53
- target_link_options (${target} PRIVATE "@${CMAKE_CURRENT_BINARY_DIR} /link_files.txt" )
54
- endmacro ()
55
-
56
- target_link_libraries_whole_archive(swiftSyntaxUnified
30
+ set (compiler_swiftsyntax_libs
57
31
_CompilerSwiftSyntax
58
32
_CompilerSwiftOperators
59
33
_CompilerSwiftSyntaxBuilder
@@ -67,10 +41,11 @@ target_link_libraries_whole_archive(swiftSyntaxUnified
67
41
_CompilerSwiftIDEUtils
68
42
)
69
43
70
- set_property (TARGET swiftSyntaxUnified PROPERTY
71
- LIBRARY_OUTPUT_DIRECTORY "${SWIFT_HOST_LIBRARIES_DEST_DIR} /compiler"
72
- )
73
- swift_install_in_component(TARGETS swiftSyntaxUnified
44
+ foreach (lib ${compiler_swiftsyntax_libs} )
45
+ target_compile_options (${lib} PRIVATE "SHELL:-module-link-name ${lib} " )
46
+ endforeach ()
47
+
48
+ swift_install_in_component(TARGETS ${compiler_swiftsyntax_libs}
74
49
ARCHIVE DESTINATION "lib${LLVM_LIBDIR_SUFFIX} /swift/host/compiler" COMPONENT compiler
75
50
LIBRARY DESTINATION "lib${LLVM_LIBDIR_SUFFIX} /swift/host/compiler" COMPONENT compiler
76
51
RUNTIME DESTINATION "bin" COMPONENT compiler)
0 commit comments