Skip to content

Commit

Permalink
[clang-tools-extra][cmake] Use GNUInstallDirs to support custom ins…
Browse files Browse the repository at this point in the history
…tallation dirs.

This is the original patch in my GNUInstallDirs series, now last to merge as the final piece!

It arose as a new draft of D28234. I initially did the unorthodox thing of pushing to that when I wasn't the original author, but since I ended up

 - Using `GNUInstallDirs`, rather than mimicking it, as the original author was hesitant to do but others requested.

 - Converting all the packages, not just LLVM, effecting many more projects than LLVM itself.

I figured it was time to make a new revision.

I have used this patch series (and many back-ports) as the basis of NixOS/nixpkgs#111487 for my distro (NixOS), which was merged last spring (2021). It looked like people were generally on board in D28234, but I make note of this here in case extra motivation is useful.

---

As pointed out in the original issue, a central tension is that LLVM already has some partial support for these sorts of things. Variables like `COMPILER_RT_INSTALL_PATH` have already been dealt with. Variables like `LLVM_LIBDIR_SUFFIX` however, will require further work, so that we may use `CMAKE_INSTALL_LIBDIR`.

These remaining items will be addressed in further patches. What is here is now rote and so we should get it out of the way before dealing more intricately with the remainder.

Reviewed By: #libunwind, #libc, #libc_abi, compnerd

Differential Revision: https://reviews.llvm.org/D99484
  • Loading branch information
Ericson2314 committed Jan 22, 2022
1 parent 39e602b commit 7c16647
Show file tree
Hide file tree
Showing 7 changed files with 10 additions and 9 deletions.
1 change: 1 addition & 0 deletions clang-tools-extra/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
include(CMakeDependentOption)
include(GNUInstallDirs)

option(CLANG_TIDY_ENABLE_STATIC_ANALYZER
"Include static analyzer checks in clang-tidy" ON)
Expand Down
4 changes: 2 additions & 2 deletions clang-tools-extra/clang-doc/tool/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,9 @@ target_link_libraries(clang-doc
)

install(FILES ../assets/clang-doc-default-stylesheet.css
DESTINATION share/clang
DESTINATION "${CMAKE_INSTALL_DATADIR}/clang"
COMPONENT clang-doc)

install(FILES ../assets/index.js
DESTINATION share/clang
DESTINATION "${CMAKE_INSTALL_DATADIR}/clang"
COMPONENT clang-doc)
Original file line number Diff line number Diff line change
Expand Up @@ -20,5 +20,5 @@ target_link_libraries(find-all-symbols
)

install(PROGRAMS run-find-all-symbols.py
DESTINATION share/clang
DESTINATION "${CMAKE_INSTALL_DATADIR}/clang"
COMPONENT find-all-symbols)
4 changes: 2 additions & 2 deletions clang-tools-extra/clang-include-fixer/tool/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@ target_link_libraries(clang-include-fixer
)

install(PROGRAMS clang-include-fixer.el
DESTINATION share/clang
DESTINATION "${CMAKE_INSTALL_DATADIR}/clang"
COMPONENT clang-include-fixer)
install(PROGRAMS clang-include-fixer.py
DESTINATION share/clang
DESTINATION "${CMAKE_INSTALL_DATADIR}/clang"
COMPONENT clang-include-fixer)
2 changes: 1 addition & 1 deletion clang-tools-extra/clang-tidy/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,7 @@ add_subdirectory(utils)

if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
install(DIRECTORY .
DESTINATION include/clang-tidy
DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/clang-tidy"
COMPONENT clang-tidy-headers
FILES_MATCHING
PATTERN "*.h"
Expand Down
4 changes: 2 additions & 2 deletions clang-tools-extra/clang-tidy/tool/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -52,9 +52,9 @@ target_link_libraries(clang-tidy


install(PROGRAMS clang-tidy-diff.py
DESTINATION share/clang
DESTINATION "${CMAKE_INSTALL_DATADIR}/clang"
COMPONENT clang-tidy)
install(PROGRAMS run-clang-tidy.py
DESTINATION bin
DESTINATION "${CMAKE_INSTALL_BINDIR}"
COMPONENT clang-tidy
RENAME run-clang-tidy)
2 changes: 1 addition & 1 deletion clang-tools-extra/modularize/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -23,5 +23,5 @@ clang_target_link_libraries(modularize
)

install(TARGETS modularize
RUNTIME DESTINATION bin
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
COMPONENT clang-extras)

0 comments on commit 7c16647

Please sign in to comment.