set(SWIFTAST_LLVM_LINK_COMPONENTS bitreader bitwriter coroutines coverage irreader debuginfoDWARF profiledata instrumentation object objcarcopts mc mcparser bitreader bitwriter lto ipo option core support remarks ${LLVM_TARGETS_TO_BUILD} ) add_swift_host_library(swiftAST STATIC AbstractSourceFileDepGraphFactory.cpp AccessNotes.cpp AccessRequests.cpp ActorIsolation.cpp ArgumentList.cpp ASTContext.cpp ASTDemangler.cpp ASTDumper.cpp ASTMangler.cpp ASTNode.cpp ASTPrinter.cpp ASTScope.cpp ASTScopeCreation.cpp ASTScopeLookup.cpp ASTScopePrinting.cpp ASTScopeSourceRange.cpp ASTVerifier.cpp ASTWalker.cpp Attr.cpp AutoDiff.cpp Availability.cpp AvailabilityContext.cpp AvailabilityScope.cpp AvailabilitySpec.cpp Builtins.cpp CaptureInfo.cpp ClangSwiftTypeCorrespondence.cpp ClangTypeConverter.cpp Concurrency.cpp ConcreteDeclRef.cpp ConformanceLookup.cpp ConformanceLookupTable.cpp Decl.cpp DeclContext.cpp DeclNameLoc.cpp DiagnosticBridge.cpp DiagnosticConsumer.cpp DiagnosticEngine.cpp DiagnosticGroups.cpp DiagnosticList.cpp DistributedDecl.cpp DocComment.cpp Effects.cpp Evaluator.cpp ExistentialGeneralization.cpp Expr.cpp ExtInfo.cpp FeatureSet.cpp FineGrainedDependencies.cpp FineGrainedDependencyFormat.cpp FreestandingMacroExpansion.cpp FrontendSourceFileDepGraphFactory.cpp GenericEnvironment.cpp GenericParamList.cpp GenericSignature.cpp Identifier.cpp ImportCache.cpp IndexSubset.cpp InlinableText.cpp LayoutConstraint.cpp LifetimeDependence.cpp LocalArchetypeRequirementCollector.cpp Module.cpp ModuleDependencies.cpp ModuleLoader.cpp ModuleNameLookup.cpp NameLookup.cpp NameLookupRequests.cpp OperatorNameLookup.cpp PackConformance.cpp PackExpansionMatcher.cpp ParameterPack.cpp Parameter.cpp Pattern.cpp PlatformKind.cpp PluginLoader.cpp PluginRegistry.cpp PrettyStackTrace.cpp ProtocolConformance.cpp ProtocolConformanceRef.cpp RawComment.cpp Requirement.cpp RequirementEnvironment.cpp RequirementMachine/ConcreteContraction.cpp RequirementMachine/ConcreteTypeWitness.cpp RequirementMachine/Diagnostics.cpp RequirementMachine/GenericSignatureQueries.cpp RequirementMachine/HomotopyReduction.cpp RequirementMachine/InterfaceType.cpp RequirementMachine/KnuthBendix.cpp RequirementMachine/MinimalConformances.cpp RequirementMachine/NameLookup.cpp RequirementMachine/NormalizeRewritePath.cpp RequirementMachine/PropertyMap.cpp RequirementMachine/PropertyRelations.cpp RequirementMachine/PropertyUnification.cpp RequirementMachine/RequirementBuilder.cpp RequirementMachine/RequirementLowering.cpp RequirementMachine/RequirementMachine.cpp RequirementMachine/RequirementMachineRequests.cpp RequirementMachine/RewriteContext.cpp RequirementMachine/RewriteLoop.cpp RequirementMachine/RewriteSystem.cpp RequirementMachine/Rule.cpp RequirementMachine/RuleBuilder.cpp RequirementMachine/SimplifySubstitutions.cpp RequirementMachine/Symbol.cpp RequirementMachine/Term.cpp RequirementMachine/TypeDifference.cpp SearchPathOptions.cpp SILLayout.cpp Stmt.cpp StorageImpl.cpp SubstitutionMap.cpp SwiftNameTranslation.cpp Type.cpp TypeCheckRequests.cpp TypeDeclFinder.cpp TypeJoinMeet.cpp TypeRepr.cpp TypeSubstitution.cpp TypeWalker.cpp UnqualifiedLookup.cpp USRGeneration.cpp LLVM_LINK_COMPONENTS ${SWIFTAST_LLVM_LINK_COMPONENTS} ) add_subdirectory(Bridging) if(SWIFT_FORCE_OPTIMIZED_TYPECHECKER) if(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC" OR CMAKE_CXX_SIMULATE_ID STREQUAL "MSVC") target_compile_options(swiftAST PRIVATE /O2 /Ob2) else() target_compile_options(swiftAST PRIVATE -O3) endif() endif() target_link_libraries(swiftAST INTERFACE clangCodeGen clangIndex clangFormat clangToolingCore clangFrontendTool clangDependencyScanning clangFrontend clangDriver clangSerialization clangParse clangSema clangAnalysis clangEdit clangRewriteFrontend clangRewrite clangAST clangLex clangAPINotes clangBasic) target_link_libraries(swiftAST PUBLIC swiftBasic PRIVATE swiftMarkup) set_swift_llvm_is_available(swiftAST)