This patchset introduces availability of external clang-tools-extra in the build.
By default, LLVM_EXTERNAL_CLANG_TOOLS_EXTRA_SOURCE_DIR=/path/to/srcroot/tools/clang/extra and build directory is in tools/clang/extra. check-clang-tools and check-all pased. :p Please review, thank you. ps. I will not introduce extra-dir stuff to autoconf build, for now. ...Takumi
From 8ffce2ea3c00d5b861c8af3ea96d2b3137d0542c Mon Sep 17 00:00:00 2001 From: NAKAMURA Takumi <[email protected]> Date: Wed, 5 Sep 2012 16:18:48 +0900 Subject: [PATCH 1/2] [CMake] Enhance add_llvm_external_project. MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------1.7.4.1" This is a multi-part message in MIME format. --------------1.7.4.1 Content-Type: text/plain; charset=UTF-8; format=fixed Content-Transfer-Encoding: 8bit - Substitute hyphen to underscore, s/-/_/g, as the variable name. - Additional parameter can be specified as the name of directory. e.g.) add_llvm_external_project(clang-tools-extra extra) - LLVM_EXTERNAL_CLANG_TOOLS_EXTRA_SOURCE_DIR=/path/to/srcroot/tools/clang/extra, by default. - Build directory is in tools/clang/extra --- llvm/cmake/modules/AddLLVM.cmake | 12 +++++++++--- 1 files changed, 9 insertions(+), 3 deletions(-) --------------1.7.4.1 Content-Type: text/x-patch; name="0001-CMake-Enhance-add_llvm_external_project.patch.txt" Content-Transfer-Encoding: 8bit Content-Disposition: attachment; filename="0001-CMake-Enhance-add_llvm_external_project.patch.txt" diff --git a/llvm/cmake/modules/AddLLVM.cmake b/llvm/cmake/modules/AddLLVM.cmake index f44a27c..a999f30 100755 --- a/llvm/cmake/modules/AddLLVM.cmake +++ b/llvm/cmake/modules/AddLLVM.cmake @@ -135,16 +135,22 @@ endmacro(add_llvm_target) # lld, and Polly. This adds two options. One for the source directory of the # project, which defaults to ${CMAKE_CURRENT_SOURCE_DIR}/${name}. Another to # enable or disable building it with everthing else. +# Additional parameter can be specified as the name of directory. macro(add_llvm_external_project name) - string(TOUPPER ${name} nameUPPER) - set(LLVM_EXTERNAL_${nameUPPER}_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/${name}" + set(add_llvm_external_dir "${ARGN}") + if("${add_llvm_external_dir}" STREQUAL "") + set(add_llvm_external_dir ${name}) + endif() + string(REPLACE "-" "_" nameUNDERSCORE ${name}) + string(TOUPPER ${nameUNDERSCORE} nameUPPER) + set(LLVM_EXTERNAL_${nameUPPER}_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/${add_llvm_external_dir}" CACHE PATH "Path to ${name} source directory") if (NOT ${LLVM_EXTERNAL_${nameUPPER}_SOURCE_DIR} STREQUAL "" AND EXISTS ${LLVM_EXTERNAL_${nameUPPER}_SOURCE_DIR}/CMakeLists.txt) option(LLVM_EXTERNAL_${nameUPPER}_BUILD "Whether to build ${name} as part of LLVM" ON) if (LLVM_EXTERNAL_${nameUPPER}_BUILD) - add_subdirectory(${LLVM_EXTERNAL_${nameUPPER}_SOURCE_DIR} ${name}) + add_subdirectory(${LLVM_EXTERNAL_${nameUPPER}_SOURCE_DIR} ${add_llvm_external_dir}) endif() endif() endmacro(add_llvm_external_project) --------------1.7.4.1--
From 9745f2950fac389a8eb6a7a1f98d1f95004f1be2 Mon Sep 17 00:00:00 2001 From: NAKAMURA Takumi <[email protected]> Date: Wed, 5 Sep 2012 16:26:00 +0900 Subject: [PATCH 2/2] [CMake] clang/tools/extra may be included by LLVM_EXTERNAL_CLANG_TOOLS_EXTRA_SOURCE_DIR. MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------1.7.4.1" This is a multi-part message in MIME format. --------------1.7.4.1 Content-Type: text/plain; charset=UTF-8; format=fixed Content-Transfer-Encoding: 8bit LLVM_EXTERNAL_CLANG_TOOLS_EXTRA_SOURCE_DIR=/path/to/srcroot/tools/clang/extra, by default. --- clang/tools/CMakeLists.txt | 6 ++---- 1 files changed, 2 insertions(+), 4 deletions(-) --------------1.7.4.1 Content-Type: text/x-patch; name="0002-CMake-clang-tools-extra-may-be-included-by-LLVM_.patch.txt" Content-Transfer-Encoding: 8bit Content-Disposition: attachment; filename="0002-CMake-clang-tools-extra-may-be-included-by-LLVM_.patch.txt" diff --git a/clang/tools/CMakeLists.txt b/clang/tools/CMakeLists.txt index 3a6fef5..cccff5d 100644 --- a/clang/tools/CMakeLists.txt +++ b/clang/tools/CMakeLists.txt @@ -10,7 +10,5 @@ add_subdirectory(clang-check) # subdirectory. It contains tools developed as part of the Clang/LLVM project # on top of the Clang tooling platform. We keep them in a separate repository # to keep the primary Clang repository small and focused. -if(IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/extra AND - EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/extra/CMakeLists.txt) - add_subdirectory(extra) -endif() +# It also may be included by LLVM_EXTERNAL_CLANG_TOOLS_EXTRA_SOURCE_DIR. +add_llvm_external_project(clang-tools-extra extra) --------------1.7.4.1--
_______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
