From 20e7c0c450f0fdc66b2c4ede934516804a6bdff7 Mon Sep 17 00:00:00 2001 From: Shoaib Meenai Date: Mon, 11 Mar 2019 18:53:57 +0000 Subject: [PATCH] [clang] Add install targets for API headers Add an install target for clang's API headers, which allows them to be included in distributions. The install rules already existed, but they lacked a component and a target, making them only accessible via a full install. These headers are useful for writing clang-based tooling, for example. They're the clang equivalent to the llvm-headers target and complement the clang-libraries target. Differential Revision: https://reviews.llvm.org/D58317 llvm-svn: 355853 --- clang/CMakeLists.txt | 12 ++++++++++++ clang/docs/ReleaseNotes.rst | 4 +++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/clang/CMakeLists.txt b/clang/CMakeLists.txt index be9a93d3df743..e36babd91d0ba 100644 --- a/clang/CMakeLists.txt +++ b/clang/CMakeLists.txt @@ -388,6 +388,7 @@ include_directories(BEFORE if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY) install(DIRECTORY include/clang include/clang-c DESTINATION include + COMPONENT clang-headers FILES_MATCHING PATTERN "*.def" PATTERN "*.h" @@ -397,12 +398,23 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY) install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/include/clang DESTINATION include + COMPONENT clang-headers FILES_MATCHING PATTERN "CMakeFiles" EXCLUDE PATTERN "*.inc" PATTERN "*.h" ) + # Installing the headers needs to depend on generating any public + # tablegen'd headers. + add_custom_target(clang-headers DEPENDS clang-tablegen-targets) + set_target_properties(clang-headers PROPERTIES FOLDER "Misc") + if(NOT LLVM_ENABLE_IDE) + add_llvm_install_targets(install-clang-headers + DEPENDS clang-headers + COMPONENT clang-headers) + endif() + install(PROGRAMS utils/bash-autocomplete.sh DESTINATION share/clang ) diff --git a/clang/docs/ReleaseNotes.rst b/clang/docs/ReleaseNotes.rst index 1ca6218ac64f1..14f5f5e21aa8d 100644 --- a/clang/docs/ReleaseNotes.rst +++ b/clang/docs/ReleaseNotes.rst @@ -156,7 +156,9 @@ release of Clang. Users of the build system should adjust accordingly. - In 8.0.0 and below, the install-clang-headers target would install clang's resource directory headers. This installation is now performed by the install-clang-resource-headers target. Users of the old install-clang-headers - target should switch to the new install-clang-resource-headers target. + target should switch to the new install-clang-resource-headers target. The + install-clang-headers target now installs clang's API headers (corresponding + to its libraries), which is consistent with the install-llvm-headers target. - ...