Skip to content

Commit

Permalink
[clang] Add install targets for API headers
Browse files Browse the repository at this point in the history
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
  • Loading branch information
smeenai committed Mar 11, 2019
1 parent d7b6813 commit 20e7c0c
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 1 deletion.
12 changes: 12 additions & 0 deletions clang/CMakeLists.txt
Expand Up @@ -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"
Expand All @@ -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
)
Expand Down
4 changes: 3 additions & 1 deletion clang/docs/ReleaseNotes.rst
Expand Up @@ -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.

- ...

Expand Down

0 comments on commit 20e7c0c

Please sign in to comment.