From 224d76391cb22f491f03accd45210d6964437226 Mon Sep 17 00:00:00 2001 From: Michael Gottesman Date: Sat, 9 Jul 2016 20:57:00 -0700 Subject: [PATCH] [cmake] Follow LLVM/Clang's example and use add_llvm_subdirectory and invoke add_llvm_subdirectory when adding tools/libs. This allows us to selectively disable the building of tools by setting the variable SWIFT_{TOOL,LIB}_XXX_BUILD=OFF. This is done by introducing the macros: add_swift_{lib,tool}_subdirectory. --- cmake/modules/AddSwift.cmake | 8 ++++++++ tools/CMakeLists.txt | 18 +++++++++--------- tools/SourceKit/tools/CMakeLists.txt | 8 ++++---- 3 files changed, 21 insertions(+), 13 deletions(-) diff --git a/cmake/modules/AddSwift.cmake b/cmake/modules/AddSwift.cmake index a20b1774754cc..887bc1c86028a 100644 --- a/cmake/modules/AddSwift.cmake +++ b/cmake/modules/AddSwift.cmake @@ -1759,3 +1759,11 @@ function(add_swift_executable name) ${SWIFTEXE_DONT_STRIP_NON_MAIN_SYMBOLS_FLAG} ${SWIFTEXE_DISABLE_ASLR_FLAG}) endfunction() + +macro(add_swift_tool_subdirectory name) + add_llvm_subdirectory(SWIFT TOOL ${name}) +endmacro() + +macro(add_swift_lib_subdirectory name) + add_llvm_subdirectory(SWIFT LIB ${name}) +endmacro() diff --git a/tools/CMakeLists.txt b/tools/CMakeLists.txt index 614d548f973e1..6c011477db1d3 100644 --- a/tools/CMakeLists.txt +++ b/tools/CMakeLists.txt @@ -1,12 +1,12 @@ -add_subdirectory(driver) -add_subdirectory(sil-opt) -add_subdirectory(swift-ide-test) -add_subdirectory(swift-remoteast-test) -add_subdirectory(swift-demangle) -add_subdirectory(lldb-moduleimport-test) -add_subdirectory(sil-extract) -add_subdirectory(swift-llvm-opt) +add_swift_tool_subdirectory(driver) +add_swift_tool_subdirectory(sil-opt) +add_swift_tool_subdirectory(swift-ide-test) +add_swift_tool_subdirectory(swift-remoteast-test) +add_swift_tool_subdirectory(swift-demangle) +add_swift_tool_subdirectory(lldb-moduleimport-test) +add_swift_tool_subdirectory(sil-extract) +add_swift_tool_subdirectory(swift-llvm-opt) if(SWIFT_BUILD_SOURCEKIT) - add_subdirectory(SourceKit) + add_swift_tool_subdirectory(SourceKit) endif() diff --git a/tools/SourceKit/tools/CMakeLists.txt b/tools/SourceKit/tools/CMakeLists.txt index 1ea7d119b8f5c..182638b794db6 100644 --- a/tools/SourceKit/tools/CMakeLists.txt +++ b/tools/SourceKit/tools/CMakeLists.txt @@ -4,7 +4,7 @@ include_directories( ${SOURCEKITD_SOURCE_DIR}/include ) -add_subdirectory(sourcekitd) -add_subdirectory(sourcekitd-test) -add_subdirectory(sourcekitd-repl) -add_subdirectory(complete-test) +add_swift_lib_subdirectory(sourcekitd) +add_swift_tool_subdirectory(sourcekitd-test) +add_swift_tool_subdirectory(sourcekitd-repl) +add_swift_tool_subdirectory(complete-test)