add_subdirectory(AST)
add_subdirectory(ASTSectionImporter)
add_subdirectory(Basic)
add_subdirectory(ClangImporter)
add_subdirectory(Demangling)
add_subdirectory(Driver)
add_subdirectory(Frontend)
add_subdirectory(FrontendTool)
add_subdirectory(Index)
add_subdirectory(IDE)
add_subdirectory(Immediate)
add_subdirectory(IRGen)
add_subdirectory(LLVMPasses)
add_subdirectory(Markup)
add_subdirectory(Migrator)
add_subdirectory(Option)
add_subdirectory(Parse)
add_subdirectory(ParseSIL)
add_subdirectory(PrintAsObjC)
add_subdirectory(RemoteAST)
add_subdirectory(Sema)
add_subdirectory(Serialization)
if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
  add_subdirectory(SwiftDemangle)
endif()
add_subdirectory(SIL)
add_subdirectory(SILGen)
add_subdirectory(SILOptimizer)
add_subdirectory(Syntax)
add_subdirectory(TBDGen)

# TODO: Fix the fine grained tabegen dependencies
# In the absence of fine grained tablegen dependencies we need to ensure that
# Swift's libraries all build after the LLVM & Clang tablegen-generated headers
# are generated.
list(APPEND LLVM_COMMON_DEPENDS intrinsics_gen clang-tablegen-targets)

add_subdirectory(AST)
add_subdirectory(ASTSectionImporter)
add_subdirectory(Basic)
add_subdirectory(ClangImporter)
add_subdirectory(Demangling)
add_subdirectory(Driver)
add_subdirectory(Frontend)
add_subdirectory(FrontendTool)
add_subdirectory(Index)
add_subdirectory(IDE)
add_subdirectory(Immediate)
add_subdirectory(IRGen)
add_subdirectory(LLVMPasses)
add_subdirectory(Markup)
add_subdirectory(Migrator)
add_subdirectory(Option)
add_subdirectory(Parse)
add_subdirectory(ParseSIL)
add_subdirectory(PrintAsObjC)
add_subdirectory(RemoteAST)
add_subdirectory(Sema)
add_subdirectory(Serialization)
if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
  add_subdirectory(SwiftDemangle)
endif()
add_subdirectory(SIL)
add_subdirectory(SILGen)
add_subdirectory(SILOptimizer)
add_subdirectory(Syntax)
add_subdirectory(TBDGen)

Make all of swift's libraries depend on LLVM & Clang tablegen output
[CMake] Make all of swift's libraries depend on LLVM & Clang tablegen output
