From db2a5b1484724b949c85a4e590a06ed813123e73 Mon Sep 17 00:00:00 2001 From: Chris Bieneman <beanz@apple.com> Date: Fri, 28 Jul 2017 15:33:47 +0000 Subject: [PATCH] [CMake] NFC. Add clang-tablegen-targets utility target By creating this target other projects that depend on clang-generated headers (like LLDB) will no longer be order-dependent on Clang being processed by CMake first. Also, by creating a dummy of this target in ClangConfig.cmake, projects that can build against out-of-tree clang can freely depend on the target without needing to have conditionals for if clang is in-tree or out-of-tree. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@309390 91177308-0d34-0410-b5e6-96231b3b80d8 --- CMakeLists.txt | 3 ++- cmake/modules/ClangConfig.cmake.in | 7 +++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 5d303ee475..8f26f2d6bf 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -412,7 +412,8 @@ add_subdirectory(include) # All targets below may depend on all tablegen'd files. get_property(CLANG_TABLEGEN_TARGETS GLOBAL PROPERTY CLANG_TABLEGEN_TARGETS) -list(APPEND LLVM_COMMON_DEPENDS ${CLANG_TABLEGEN_TARGETS}) +add_custom_target(clang-tablegen-targets DEPENDS ${CLANG_TABLEGEN_TARGETS}) +list(APPEND LLVM_COMMON_DEPENDS clang-tablegen-targets) # Force target to be built as soon as possible. Clang modules builds depend # header-wise on it as they ship all headers from the umbrella folders. Building diff --git a/cmake/modules/ClangConfig.cmake.in b/cmake/modules/ClangConfig.cmake.in index 03bca691c2..a5a7eae503 100644 --- a/cmake/modules/ClangConfig.cmake.in +++ b/cmake/modules/ClangConfig.cmake.in @@ -11,3 +11,10 @@ set(CLANG_INCLUDE_DIRS "@CLANG_CONFIG_INCLUDE_DIRS@") # Provide all our library targets to users. include("@CLANG_CONFIG_EXPORTS_FILE@") + +# By creating clang-tablegen-targets here, subprojects that depend on Clang's +# tablegen-generated headers can always depend on this target whether building +# in-tree with Clang or not. +if(NOT TARGET clang-tablegen-targets) + add_custom_target(clang-tablegen-targets) +endif() -- 2.40.0