set_swift_llvm_is_available()
add_swift_host_library(swiftSema STATIC
  BuilderTransform.cpp
  CSApply.cpp
  CSBindings.cpp
  CSClosure.cpp
  CSGen.cpp
  CSRanking.cpp
  CSSimplify.cpp
  CSSolver.cpp
  CSStep.cpp
  CSFix.cpp
  CSDiagnostics.cpp
  CodeSynthesis.cpp
  ConstantnessSemaDiagnostics.cpp
  Constraint.cpp
  ConstraintGraph.cpp
  ConstraintLocator.cpp
  ConstraintSystem.cpp
  DebuggerTestingTransform.cpp
  DerivedConformanceActor.cpp
  DerivedConformanceAdditiveArithmetic.cpp
  DerivedConformanceCaseIterable.cpp
  DerivedConformanceCodable.cpp
  DerivedConformanceCodingKey.cpp
  DerivedConformanceDifferentiable.cpp
  DerivedConformanceEquatableHashable.cpp
  DerivedConformanceComparable.cpp
  DerivedConformanceError.cpp
  # SWIFT_ENABLE_TENSORFLOW
  DerivedConformanceAdditiveArithmetic.cpp
  DerivedConformancePointwiseMultiplicative.cpp
  DerivedConformanceElementaryFunctions.cpp
  DerivedConformanceVectorProtocol.cpp
  DerivedConformanceDifferentiable.cpp
  DerivedConformanceKeyPathIterable.cpp
  DerivedConformanceTensorArrayProtocol.cpp
  DerivedConformanceTensorGroup.cpp
  # SWIFT_ENABLE_TENSORFLOW END
  DerivedConformanceRawRepresentable.cpp
  DerivedConformances.cpp
  ImportResolution.cpp
  InstrumenterSupport.cpp
  LookupVisibleDecls.cpp
  MiscDiagnostics.cpp
  PCMacro.cpp
  PlaygroundTransform.cpp
  PreCheckExpr.cpp
  ResilienceDiagnostics.cpp
  SourceLoader.cpp
  TypeCheckAccess.cpp
  TypeCheckAttr.cpp
  TypeCheckAvailability.cpp
  TypeCheckCaptures.cpp
  TypeCheckCircularity.cpp
  TypeCheckCodeCompletion.cpp
  # SWIFT_ENABLE_TENSORFLOW
  TypeCheckCompilerEvaluable.cpp
  # SWIFT_ENABLE_TENSORFLOW END
  TypeCheckConcurrency.cpp
  TypeCheckConstraints.cpp
  TypeCheckDecl.cpp
  TypeCheckDeclObjC.cpp
  TypeCheckDeclOverride.cpp
  TypeCheckDeclPrimary.cpp
  TypeCheckEffects.cpp
  TypeCheckExpr.cpp
  TypeCheckExprObjC.cpp
  TypeCheckGeneric.cpp
  TypeCheckNameLookup.cpp
  TypeCheckPattern.cpp
  TypeCheckPropertyWrapper.cpp
  TypeCheckProtocol.cpp
  TypeCheckProtocolInference.cpp
  TypeCheckRequestFunctions.cpp
  TypeCheckStmt.cpp
  TypeCheckStorage.cpp
  TypeCheckSwitchStmt.cpp
  TypeCheckType.cpp
  TypeChecker.cpp
  IDETypeCheckingRequests.cpp)
if(SWIFT_FORCE_OPTIMIZED_TYPECHECKER)
  if(CMAKE_CXX_COMPILER_ID STREQUAL MSVC OR CMAKE_CXX_SIMULATE_ID STREQUAL MSVC)
    target_compile_options(swiftSema PRIVATE /O2 /Ob2)
  else()
    target_compile_options(swiftSema PRIVATE -O3)
  endif()
endif()
target_link_libraries(swiftSema PRIVATE
  swiftAST
  swiftParse
  swiftSerialization)
