mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-12-26 07:34:11 +00:00
7869d16545
Also begin to start work on cross compilation, though that will have to
be finished later.
The patches are based on the first version of
https://reviews.llvm.org/D99484. It's very annoying to do the
back-porting but the review has uncovered nothing super major so I'm
fine sticking with what I've got.
Beyond making the outputs work, I also strove to re-sync the packages,
as they have been drifting pointlessly apart for some time.
----
Other misc notes, highly incomplete
- lvm-config-native and llvm-config are put in `dev` because they are
tools just for build time.
- Clang no longer has an lld dep. That was introduced in
db29857eb3
, but if clang needs help
finding lld when it is used we should just pass it flags / put in the
resource dir. Providing it at build time increases critical path
length for no good reason.
----
A note on `nativeCC`:
`stdenv` takes tools from the previous stage, so:
1. `pkgsBuildBuild`: `(?1, x, x)`
2. `pkgsBuildBuild.stdenv.cc`: `(?0, ?1, x)`
while:
1. `pkgsBuildBuild`: `(?1, x, x)`
2. `pkgsBuildBuild.targetPackages`: `(x, x, ?2)`
3. `pkgsBuildBuild.targetPackages.stdenv.cc`: `(?1, x, x)`
279 lines
11 KiB
Diff
279 lines
11 KiB
Diff
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
|
index 60937aa9db38..45522ff32998 100644
|
|
--- a/CMakeLists.txt
|
|
+++ b/CMakeLists.txt
|
|
@@ -9,6 +9,8 @@ endif()
|
|
if( CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR )
|
|
project(Clang)
|
|
|
|
+ include(GNUInstallDirs)
|
|
+
|
|
# Rely on llvm-config.
|
|
set(CONFIG_OUTPUT)
|
|
if(LLVM_CONFIG)
|
|
@@ -413,7 +415,7 @@ include_directories(BEFORE
|
|
|
|
if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
|
|
install(DIRECTORY include/clang include/clang-c
|
|
- DESTINATION include
|
|
+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
|
|
COMPONENT clang-headers
|
|
FILES_MATCHING
|
|
PATTERN "*.def"
|
|
@@ -423,7 +425,7 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
|
|
)
|
|
|
|
install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/include/clang
|
|
- DESTINATION include
|
|
+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
|
|
COMPONENT clang-headers
|
|
FILES_MATCHING
|
|
PATTERN "CMakeFiles" EXCLUDE
|
|
@@ -442,7 +444,7 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
|
|
endif()
|
|
|
|
install(PROGRAMS utils/bash-autocomplete.sh
|
|
- DESTINATION share/clang
|
|
+ DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
|
|
)
|
|
endif()
|
|
|
|
diff --git a/cmake/modules/AddClang.cmake b/cmake/modules/AddClang.cmake
|
|
index cbd618e18afb..63ba43f18e64 100644
|
|
--- a/cmake/modules/AddClang.cmake
|
|
+++ b/cmake/modules/AddClang.cmake
|
|
@@ -109,9 +109,9 @@ macro(add_clang_library name)
|
|
install(TARGETS ${name}
|
|
COMPONENT ${name}
|
|
${export_to_clangtargets}
|
|
- LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX}
|
|
- ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX}
|
|
- RUNTIME DESTINATION bin)
|
|
+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}
|
|
+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}
|
|
+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
|
|
|
|
if (NOT LLVM_ENABLE_IDE)
|
|
add_llvm_install_targets(install-${name}
|
|
@@ -155,7 +155,7 @@ macro(add_clang_tool name)
|
|
|
|
install(TARGETS ${name}
|
|
${export_to_clangtargets}
|
|
- RUNTIME DESTINATION bin
|
|
+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
|
COMPONENT ${name})
|
|
|
|
if(NOT LLVM_ENABLE_IDE)
|
|
@@ -170,7 +170,7 @@ endmacro()
|
|
macro(add_clang_symlink name dest)
|
|
add_llvm_tool_symlink(${name} ${dest} ALWAYS_GENERATE)
|
|
# Always generate install targets
|
|
- llvm_install_symlink(${name} ${dest} ALWAYS_GENERATE)
|
|
+ llvm_install_symlink(${name} ${dest} ${CMAKE_INSTALL_FULL_BINDIR} ALWAYS_GENERATE)
|
|
endmacro()
|
|
|
|
function(clang_target_link_libraries target type)
|
|
diff --git a/lib/Headers/CMakeLists.txt b/lib/Headers/CMakeLists.txt
|
|
index a3c0b08fa364..aa4215c0999c 100644
|
|
--- a/lib/Headers/CMakeLists.txt
|
|
+++ b/lib/Headers/CMakeLists.txt
|
|
@@ -185,7 +185,7 @@ set_target_properties(clang-resource-headers PROPERTIES
|
|
FOLDER "Misc"
|
|
RUNTIME_OUTPUT_DIRECTORY "${output_dir}")
|
|
|
|
-set(header_install_dir lib${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION}/include)
|
|
+set(header_install_dir ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION}/include)
|
|
|
|
install(
|
|
FILES ${files} ${generated_files}
|
|
diff --git a/tools/c-index-test/CMakeLists.txt b/tools/c-index-test/CMakeLists.txt
|
|
index ceef4b08637c..8efad5520ca4 100644
|
|
--- a/tools/c-index-test/CMakeLists.txt
|
|
+++ b/tools/c-index-test/CMakeLists.txt
|
|
@@ -54,7 +54,7 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
|
|
set_property(TARGET c-index-test APPEND PROPERTY INSTALL_RPATH
|
|
"@executable_path/../../lib")
|
|
else()
|
|
- set(INSTALL_DESTINATION bin)
|
|
+ set(INSTALL_DESTINATION ${CMAKE_INSTALL_BINDIR})
|
|
endif()
|
|
|
|
install(TARGETS c-index-test
|
|
diff --git a/tools/clang-check/CMakeLists.txt b/tools/clang-check/CMakeLists.txt
|
|
index 4576d78bcfb4..7c3b302d8d59 100644
|
|
--- a/tools/clang-check/CMakeLists.txt
|
|
+++ b/tools/clang-check/CMakeLists.txt
|
|
@@ -21,4 +21,4 @@ clang_target_link_libraries(clang-check
|
|
)
|
|
|
|
install(TARGETS clang-check
|
|
- RUNTIME DESTINATION bin)
|
|
+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
|
|
diff --git a/tools/clang-extdef-mapping/CMakeLists.txt b/tools/clang-extdef-mapping/CMakeLists.txt
|
|
index 4798bdb71ad0..02d07b9982ac 100644
|
|
--- a/tools/clang-extdef-mapping/CMakeLists.txt
|
|
+++ b/tools/clang-extdef-mapping/CMakeLists.txt
|
|
@@ -18,4 +18,4 @@ clang_target_link_libraries(clang-extdef-mapping
|
|
)
|
|
|
|
install(TARGETS clang-extdef-mapping
|
|
- RUNTIME DESTINATION bin)
|
|
+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
|
|
diff --git a/tools/clang-format/CMakeLists.txt b/tools/clang-format/CMakeLists.txt
|
|
index 35ecdb11253c..d77d75de0094 100644
|
|
--- a/tools/clang-format/CMakeLists.txt
|
|
+++ b/tools/clang-format/CMakeLists.txt
|
|
@@ -21,20 +21,20 @@ if( LLVM_LIB_FUZZING_ENGINE OR LLVM_USE_SANITIZE_COVERAGE )
|
|
endif()
|
|
|
|
install(PROGRAMS clang-format-bbedit.applescript
|
|
- DESTINATION share/clang
|
|
+ DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
|
|
COMPONENT clang-format)
|
|
install(PROGRAMS clang-format-diff.py
|
|
- DESTINATION share/clang
|
|
+ DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
|
|
COMPONENT clang-format)
|
|
install(PROGRAMS clang-format-sublime.py
|
|
- DESTINATION share/clang
|
|
+ DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
|
|
COMPONENT clang-format)
|
|
install(PROGRAMS clang-format.el
|
|
- DESTINATION share/clang
|
|
+ DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
|
|
COMPONENT clang-format)
|
|
install(PROGRAMS clang-format.py
|
|
- DESTINATION share/clang
|
|
+ DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
|
|
COMPONENT clang-format)
|
|
install(PROGRAMS git-clang-format
|
|
- DESTINATION bin
|
|
+ DESTINATION ${CMAKE_INSTALL_BINDIR}
|
|
COMPONENT clang-format)
|
|
diff --git a/tools/clang-offload-bundler/CMakeLists.txt b/tools/clang-offload-bundler/CMakeLists.txt
|
|
index 465bef040a6c..729369ed9429 100644
|
|
--- a/tools/clang-offload-bundler/CMakeLists.txt
|
|
+++ b/tools/clang-offload-bundler/CMakeLists.txt
|
|
@@ -22,4 +22,4 @@ clang_target_link_libraries(clang-offload-bundler
|
|
${CLANG_OFFLOAD_BUNDLER_LIB_DEPS}
|
|
)
|
|
|
|
-install(TARGETS clang-offload-bundler RUNTIME DESTINATION bin)
|
|
+install(TARGETS clang-offload-bundler RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
|
|
diff --git a/tools/clang-rename/CMakeLists.txt b/tools/clang-rename/CMakeLists.txt
|
|
index cda8e29ec5b1..0134d8ccd70b 100644
|
|
--- a/tools/clang-rename/CMakeLists.txt
|
|
+++ b/tools/clang-rename/CMakeLists.txt
|
|
@@ -19,8 +19,8 @@ clang_target_link_libraries(clang-rename
|
|
)
|
|
|
|
install(PROGRAMS clang-rename.py
|
|
- DESTINATION share/clang
|
|
+ DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
|
|
COMPONENT clang-rename)
|
|
install(PROGRAMS clang-rename.el
|
|
- DESTINATION share/clang
|
|
+ DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
|
|
COMPONENT clang-rename)
|
|
diff --git a/tools/diagtool/CMakeLists.txt b/tools/diagtool/CMakeLists.txt
|
|
index a95444be40ee..136d96d9bf5b 100644
|
|
--- a/tools/diagtool/CMakeLists.txt
|
|
+++ b/tools/diagtool/CMakeLists.txt
|
|
@@ -21,7 +21,7 @@ clang_target_link_libraries(diagtool
|
|
if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
|
|
install(TARGETS diagtool
|
|
COMPONENT diagtool
|
|
- RUNTIME DESTINATION bin)
|
|
+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
|
|
|
|
if (NOT LLVM_ENABLE_IDE)
|
|
add_llvm_install_targets(install-diagtool
|
|
diff --git a/tools/libclang/CMakeLists.txt b/tools/libclang/CMakeLists.txt
|
|
index 613ead1a36b6..e5c7bf27f739 100644
|
|
--- a/tools/libclang/CMakeLists.txt
|
|
+++ b/tools/libclang/CMakeLists.txt
|
|
@@ -137,7 +137,7 @@ endif()
|
|
if(INTERNAL_INSTALL_PREFIX)
|
|
set(LIBCLANG_HEADERS_INSTALL_DESTINATION "${INTERNAL_INSTALL_PREFIX}/include")
|
|
else()
|
|
- set(LIBCLANG_HEADERS_INSTALL_DESTINATION include)
|
|
+ set(LIBCLANG_HEADERS_INSTALL_DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
|
|
endif()
|
|
|
|
install(DIRECTORY ../../include/clang-c
|
|
@@ -168,7 +168,7 @@ foreach(PythonVersion ${CLANG_PYTHON_BINDINGS_VERSIONS})
|
|
COMPONENT
|
|
libclang-python-bindings
|
|
DESTINATION
|
|
- "lib${LLVM_LIBDIR_SUFFIX}/python${PythonVersion}/site-packages")
|
|
+ "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/python${PythonVersion}/site-packages")
|
|
endforeach()
|
|
if(NOT LLVM_ENABLE_IDE)
|
|
add_custom_target(libclang-python-bindings)
|
|
diff --git a/tools/scan-build/CMakeLists.txt b/tools/scan-build/CMakeLists.txt
|
|
index 380379300b09..adfd58ed5f7d 100644
|
|
--- a/tools/scan-build/CMakeLists.txt
|
|
+++ b/tools/scan-build/CMakeLists.txt
|
|
@@ -41,7 +41,7 @@ if(CLANG_INSTALL_SCANBUILD)
|
|
${CMAKE_BINARY_DIR}/bin/
|
|
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/bin/${BinFile})
|
|
list(APPEND Depends ${CMAKE_BINARY_DIR}/bin/${BinFile})
|
|
- install(PROGRAMS bin/${BinFile} DESTINATION bin)
|
|
+ install(PROGRAMS bin/${BinFile} DESTINATION ${CMAKE_INSTALL_BINDIR})
|
|
endforeach()
|
|
|
|
foreach(LibexecFile ${LibexecFiles})
|
|
@@ -53,7 +53,7 @@ if(CLANG_INSTALL_SCANBUILD)
|
|
${CMAKE_BINARY_DIR}/libexec/
|
|
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/libexec/${LibexecFile})
|
|
list(APPEND Depends ${CMAKE_BINARY_DIR}/libexec/${LibexecFile})
|
|
- install(PROGRAMS libexec/${LibexecFile} DESTINATION libexec)
|
|
+ install(PROGRAMS libexec/${LibexecFile} DESTINATION ${CMAKE_INSTALL_LIBEXECDIR})
|
|
endforeach()
|
|
|
|
foreach(ManPage ${ManPages})
|
|
@@ -77,7 +77,7 @@ if(CLANG_INSTALL_SCANBUILD)
|
|
${CMAKE_BINARY_DIR}/share/scan-build/
|
|
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/share/scan-build/${ShareFile})
|
|
list(APPEND Depends ${CMAKE_BINARY_DIR}/share/scan-build/${ShareFile})
|
|
- install(FILES share/scan-build/${ShareFile} DESTINATION share/scan-build)
|
|
+ install(FILES share/scan-build/${ShareFile} DESTINATION ${CMAKE_INSTALL_DATADIR}/scan-build)
|
|
endforeach()
|
|
|
|
add_custom_target(scan-build ALL DEPENDS ${Depends})
|
|
diff --git a/tools/scan-view/CMakeLists.txt b/tools/scan-view/CMakeLists.txt
|
|
index b305ca562a72..554bcb379061 100644
|
|
--- a/tools/scan-view/CMakeLists.txt
|
|
+++ b/tools/scan-view/CMakeLists.txt
|
|
@@ -21,7 +21,7 @@ if(CLANG_INSTALL_SCANVIEW)
|
|
${CMAKE_BINARY_DIR}/bin/
|
|
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/bin/${BinFile})
|
|
list(APPEND Depends ${CMAKE_BINARY_DIR}/bin/${BinFile})
|
|
- install(PROGRAMS bin/${BinFile} DESTINATION bin)
|
|
+ install(PROGRAMS bin/${BinFile} DESTINATION ${CMAKE_INSTALL_BINDIR})
|
|
endforeach()
|
|
|
|
foreach(ShareFile ${ShareFiles})
|
|
@@ -33,7 +33,7 @@ if(CLANG_INSTALL_SCANVIEW)
|
|
${CMAKE_BINARY_DIR}/share/scan-view/
|
|
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/share/${ShareFile})
|
|
list(APPEND Depends ${CMAKE_BINARY_DIR}/share/scan-view/${ShareFile})
|
|
- install(FILES share/${ShareFile} DESTINATION share/scan-view)
|
|
+ install(FILES share/${ShareFile} DESTINATION ${CMAKE_INSTALL_DATADIR}/scan-view)
|
|
endforeach()
|
|
|
|
add_custom_target(scan-view ALL DEPENDS ${Depends})
|
|
diff --git a/utils/hmaptool/CMakeLists.txt b/utils/hmaptool/CMakeLists.txt
|
|
index 5573009d343a..24b3a90f233f 100644
|
|
--- a/utils/hmaptool/CMakeLists.txt
|
|
+++ b/utils/hmaptool/CMakeLists.txt
|
|
@@ -9,7 +9,7 @@ add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/bin/${CLANG_HM
|
|
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${CLANG_HMAPTOOL})
|
|
|
|
list(APPEND Depends ${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/bin/${CLANG_HMAPTOOL})
|
|
-install(PROGRAMS ${CLANG_HMAPTOOL} DESTINATION bin)
|
|
+install(PROGRAMS ${CLANG_HMAPTOOL} DESTINATION ${CMAKE_INSTALL_BINDIR})
|
|
|
|
add_custom_target(hmaptool ALL DEPENDS ${Depends})
|
|
set_target_properties(hmaptool PROPERTIES FOLDER "Utils")
|