@@ -3,6 +3,39 @@ if (SWIFT_FORCE_OPTIMIZED_TYPECHECKER)
33 set (EXTRA_AST_FLAGS "FORCE_BUILD_OPTIMIZED" )
44endif ()
55
6+ if (SWIFT_BUILD_ONLY_SYNTAXPARSERLIB)
7+ set (SWIFTAST_INTERFACE_LINK_LIBRARIES)
8+ set (SWIFTAST_LLVM_COMPONENT_DEPENDS)
9+ else ()
10+ set (SWIFTAST_INTERFACE_LINK_LIBRARIES
11+ # Clang dependencies.
12+ # FIXME: Clang should really export these in some reasonable manner.
13+ clangCodeGen
14+ clangIndex
15+ clangFormat
16+ clangToolingCore
17+ clangFrontendTool
18+ clangFrontend
19+ clangDriver
20+ clangSerialization
21+ clangParse
22+ clangSema
23+ clangAnalysis
24+ clangEdit
25+ clangRewriteFrontend
26+ clangRewrite
27+ clangAST
28+ clangLex
29+ clangAPINotes
30+ clangBasic
31+ )
32+ set (SWIFTAST_LLVM_COMPONENT_DEPENDS
33+ bitreader bitwriter coroutines coverage irreader debuginfoDWARF
34+ profiledata instrumentation object objcarcopts mc mcparser
35+ bitreader bitwriter lto ipo option core support ${LLVM_TARGETS_TO_BUILD}
36+ )
37+ endif ()
38+
639add_swift_host_library(swiftAST STATIC
740 AccessScopeChecker.cpp
841 AccessRequests.cpp
@@ -65,38 +98,32 @@ add_swift_host_library(swiftAST STATIC
6598 USRGeneration.cpp
6699
67100 INTERFACE_LINK_LIBRARIES
68- # Clang dependencies.
69- # FIXME: Clang should really export these in some reasonable manner.
70- clangCodeGen
71- clangIndex
72- clangFormat
73- clangToolingCore
74- clangFrontendTool
75- clangFrontend
76- clangDriver
77- clangSerialization
78- clangParse
79- clangSema
80- clangAnalysis
81- clangEdit
82- clangRewriteFrontend
83- clangRewrite
84- clangAST
85- clangLex
86- clangAPINotes
87- clangBasic
101+ ${SWIFTAST_INTERFACE_LINK_LIBRARIES}
88102
89103 LLVM_COMPONENT_DEPENDS
90- bitreader bitwriter coroutines coverage irreader debuginfoDWARF
91- profiledata instrumentation object objcarcopts mc mcparser
92- bitreader bitwriter lto ipo option core support ${LLVM_TARGETS_TO_BUILD}
104+ ${SWIFTAST_LLVM_COMPONENT_DEPENDS}
93105
94106 ${EXTRA_AST_FLAGS}
95107 )
96- target_link_libraries (swiftAST PRIVATE
97- swiftBasic
98- swiftMarkup
99- swiftSyntax)
108+
109+ if (SWIFT_BUILD_ONLY_SYNTAXPARSERLIB)
110+ # Add clangBasic as a single direct dependency to avoid bringing along some
111+ # llvm libraries that we don't need.
112+ if ("${SWIFT_HOST_VARIANT_SDK} " STREQUAL "WINDOWS" )
113+ set (clangBasicDep "${LLVM_LIBRARY_OUTPUT_INTDIR} /clangBasic.lib" )
114+ else ()
115+ set (clangBasicDep "${LLVM_LIBRARY_OUTPUT_INTDIR} /libclangBasic.a" )
116+ endif ()
117+ target_link_libraries (swiftAST PRIVATE
118+ swiftBasic
119+ swiftSyntax
120+ ${clangBasicDep} )
121+ else ()
122+ target_link_libraries (swiftAST PRIVATE
123+ swiftBasic
124+ swiftMarkup
125+ swiftSyntax)
126+ endif ()
100127
101128# intrinsics_gen is the LLVM tablegen target that generates the include files
102129# where intrinsics and attributes are declared. swiftAST depends on these
0 commit comments