Author: John Ericson
Date: 2022-01-22T20:57:21Z
New Revision: 7c16647c3676587391f6bb80ec87d9621ca9472f

URL: 
https://github.com/llvm/llvm-project/commit/7c16647c3676587391f6bb80ec87d9621ca9472f
DIFF: 
https://github.com/llvm/llvm-project/commit/7c16647c3676587391f6bb80ec87d9621ca9472f.diff

LOG: [clang-tools-extra][cmake] Use `GNUInstallDirs` to support custom 
installation 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 
https://github.com/NixOS/nixpkgs/pull/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

Added: 
    

Modified: 
    clang-tools-extra/CMakeLists.txt
    clang-tools-extra/clang-doc/tool/CMakeLists.txt
    clang-tools-extra/clang-include-fixer/find-all-symbols/tool/CMakeLists.txt
    clang-tools-extra/clang-include-fixer/tool/CMakeLists.txt
    clang-tools-extra/clang-tidy/CMakeLists.txt
    clang-tools-extra/clang-tidy/tool/CMakeLists.txt
    clang-tools-extra/modularize/CMakeLists.txt

Removed: 
    


################################################################################
diff  --git a/clang-tools-extra/CMakeLists.txt 
b/clang-tools-extra/CMakeLists.txt
index 2e73b6ba81d2e..7b8274a97336b 100644
--- a/clang-tools-extra/CMakeLists.txt
+++ b/clang-tools-extra/CMakeLists.txt
@@ -1,4 +1,5 @@
 include(CMakeDependentOption)
+include(GNUInstallDirs)
 
 option(CLANG_TIDY_ENABLE_STATIC_ANALYZER
   "Include static analyzer checks in clang-tidy" ON)

diff  --git a/clang-tools-extra/clang-doc/tool/CMakeLists.txt 
b/clang-tools-extra/clang-doc/tool/CMakeLists.txt
index 7e71478869160..fb8317b272932 100644
--- a/clang-tools-extra/clang-doc/tool/CMakeLists.txt
+++ b/clang-tools-extra/clang-doc/tool/CMakeLists.txt
@@ -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)

diff  --git 
a/clang-tools-extra/clang-include-fixer/find-all-symbols/tool/CMakeLists.txt 
b/clang-tools-extra/clang-include-fixer/find-all-symbols/tool/CMakeLists.txt
index 8f5509d22e24a..e6926a0d5bd10 100644
--- a/clang-tools-extra/clang-include-fixer/find-all-symbols/tool/CMakeLists.txt
+++ b/clang-tools-extra/clang-include-fixer/find-all-symbols/tool/CMakeLists.txt
@@ -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)

diff  --git a/clang-tools-extra/clang-include-fixer/tool/CMakeLists.txt 
b/clang-tools-extra/clang-include-fixer/tool/CMakeLists.txt
index 3936ac1e8a5a5..5b9e00ab87cd8 100644
--- a/clang-tools-extra/clang-include-fixer/tool/CMakeLists.txt
+++ b/clang-tools-extra/clang-include-fixer/tool/CMakeLists.txt
@@ -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)

diff  --git a/clang-tools-extra/clang-tidy/CMakeLists.txt 
b/clang-tools-extra/clang-tidy/CMakeLists.txt
index 455645050d93d..075e9f9909d65 100644
--- a/clang-tools-extra/clang-tidy/CMakeLists.txt
+++ b/clang-tools-extra/clang-tidy/CMakeLists.txt
@@ -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"

diff  --git a/clang-tools-extra/clang-tidy/tool/CMakeLists.txt 
b/clang-tools-extra/clang-tidy/tool/CMakeLists.txt
index ad3255b024fc6..4b8c93801501a 100644
--- a/clang-tools-extra/clang-tidy/tool/CMakeLists.txt
+++ b/clang-tools-extra/clang-tidy/tool/CMakeLists.txt
@@ -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)

diff  --git a/clang-tools-extra/modularize/CMakeLists.txt 
b/clang-tools-extra/modularize/CMakeLists.txt
index 4caae81c49b62..fb17e353c39fd 100644
--- a/clang-tools-extra/modularize/CMakeLists.txt
+++ b/clang-tools-extra/modularize/CMakeLists.txt
@@ -23,5 +23,5 @@ clang_target_link_libraries(modularize
   )
 
 install(TARGETS modularize
-        RUNTIME DESTINATION bin
+        RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
         COMPONENT clang-extras)


        
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to