early-access version 2853

This commit is contained in:
pineappleEA
2022-07-23 03:01:36 +02:00
parent 1f2b5081b5
commit 1f111bb69c
8955 changed files with 418777 additions and 999 deletions

View File

@@ -0,0 +1,161 @@
clang/cmake/modules/CMakeLists.txt | 4 ++--
compiler-rt/cmake/Modules/CompilerRTUtils.cmake | 2 +-
flang/cmake/modules/CMakeLists.txt | 4 ++--
lld/cmake/modules/CMakeLists.txt | 4 ++--
llvm/cmake/modules/AddLLVM.cmake | 2 +-
llvm/cmake/modules/CMakeLists.txt | 2 +-
mlir/cmake/modules/CMakeLists.txt | 4 ++--
mlir/test/CMakeLists.txt | 2 +-
openmp/tools/Modules/CMakeLists.txt | 2 +-
polly/cmake/CMakeLists.txt | 4 ++--
10 files changed, 15 insertions(+), 15 deletions(-)
diff --git a/clang/cmake/modules/CMakeLists.txt b/clang/cmake/modules/CMakeLists.txt
index c6f6ce9fe5d6..fc886b23a1a8 100644
--- a/clang/cmake/modules/CMakeLists.txt
+++ b/clang/cmake/modules/CMakeLists.txt
@@ -5,11 +5,11 @@ include(FindPrefixFromConfig)
# Generate a list of CMake library targets so that other CMake projects can
# link against them. LLVM calls its version of this file LLVMExports.cmake, but
# the usual CMake convention seems to be ${Project}Targets.cmake.
-set(CLANG_INSTALL_PACKAGE_DIR lib${LLVM_LIBDIR_SUFFIX}/cmake/clang)
+set(CLANG_INSTALL_PACKAGE_DIR share/clang)
set(clang_cmake_builddir "${CMAKE_BINARY_DIR}/${CLANG_INSTALL_PACKAGE_DIR}")
# Keep this in sync with llvm/cmake/CMakeLists.txt!
-set(LLVM_INSTALL_PACKAGE_DIR lib${LLVM_LIBDIR_SUFFIX}/cmake/llvm)
+set(LLVM_INSTALL_PACKAGE_DIR share/llvm)
set(llvm_cmake_builddir "${LLVM_BINARY_DIR}/${LLVM_INSTALL_PACKAGE_DIR}")
get_property(CLANG_EXPORTS GLOBAL PROPERTY CLANG_EXPORTS)
diff --git a/compiler-rt/cmake/Modules/CompilerRTUtils.cmake b/compiler-rt/cmake/Modules/CompilerRTUtils.cmake
index 052095801aae..f3402793b60c 100644
--- a/compiler-rt/cmake/Modules/CompilerRTUtils.cmake
+++ b/compiler-rt/cmake/Modules/CompilerRTUtils.cmake
@@ -376,7 +376,7 @@ macro(load_llvm_config)
file(TO_CMAKE_PATH ${LLVM_CMAKE_DIR_FROM_LLVM_CONFIG} LLVM_CMAKE_DIR)
else()
file(TO_CMAKE_PATH ${LLVM_BINARY_DIR} LLVM_BINARY_DIR_CMAKE_STYLE)
- set(LLVM_CMAKE_DIR "${LLVM_BINARY_DIR_CMAKE_STYLE}/lib${LLVM_LIBDIR_SUFFIX}/cmake/llvm")
+ set(LLVM_CMAKE_DIR "${LLVM_BINARY_DIR_CMAKE_STYLE}/share/llvm")
endif()
set(LLVM_CMAKE_INCLUDE_FILE "${LLVM_CMAKE_DIR}/LLVMConfig.cmake")
diff --git a/flang/cmake/modules/CMakeLists.txt b/flang/cmake/modules/CMakeLists.txt
index 170568c80dde..1bf6d6a829e2 100644
--- a/flang/cmake/modules/CMakeLists.txt
+++ b/flang/cmake/modules/CMakeLists.txt
@@ -4,11 +4,11 @@ include(FindPrefixFromConfig)
# Generate a list of CMake library targets so that other CMake projects can
# link against them. LLVM calls its version of this file LLVMExports.cmake, but
# the usual CMake convention seems to be ${Project}Targets.cmake.
-set(FLANG_INSTALL_PACKAGE_DIR lib${LLVM_LIBDIR_SUFFIX}/cmake/flang)
+set(FLANG_INSTALL_PACKAGE_DIR share/flang)
set(flang_cmake_builddir "${CMAKE_BINARY_DIR}/${FLANG_INSTALL_PACKAGE_DIR}")
# Keep this in sync with llvm/cmake/CMakeLists.txt!
-set(LLVM_INSTALL_PACKAGE_DIR lib${LLVM_LIBDIR_SUFFIX}/cmake/llvm)
+set(LLVM_INSTALL_PACKAGE_DIR share/llvm)
set(llvm_cmake_builddir "${LLVM_BINARY_DIR}/${LLVM_INSTALL_PACKAGE_DIR}")
get_property(FLANG_EXPORTS GLOBAL PROPERTY FLANG_EXPORTS)
diff --git a/lld/cmake/modules/CMakeLists.txt b/lld/cmake/modules/CMakeLists.txt
index 760c9d5f8d87..acd8a65808f5 100644
--- a/lld/cmake/modules/CMakeLists.txt
+++ b/lld/cmake/modules/CMakeLists.txt
@@ -4,11 +4,11 @@ include(FindPrefixFromConfig)
# Generate a list of CMake library targets so that other CMake projects can
# link against them. LLVM calls its version of this file LLVMExports.cmake, but
# the usual CMake convention seems to be ${Project}Targets.cmake.
-set(LLD_INSTALL_PACKAGE_DIR lib${LLVM_LIBDIR_SUFFIX}/cmake/lld)
+set(LLD_INSTALL_PACKAGE_DIR share/lld)
set(lld_cmake_builddir "${CMAKE_BINARY_DIR}/${LLD_INSTALL_PACKAGE_DIR}")
# Keep this in sync with llvm/cmake/CMakeLists.txt!
-set(LLVM_INSTALL_PACKAGE_DIR lib${LLVM_LIBDIR_SUFFIX}/cmake/llvm)
+set(LLVM_INSTALL_PACKAGE_DIR share/llvm)
set(llvm_cmake_builddir "${LLVM_BINARY_DIR}/${LLVM_INSTALL_PACKAGE_DIR}")
get_property(LLD_EXPORTS GLOBAL PROPERTY LLD_EXPORTS)
diff --git a/llvm/cmake/modules/AddLLVM.cmake b/llvm/cmake/modules/AddLLVM.cmake
index 37bc98f9e021..7cbfa2a9a577 100644
--- a/llvm/cmake/modules/AddLLVM.cmake
+++ b/llvm/cmake/modules/AddLLVM.cmake
@@ -1049,7 +1049,7 @@ function(process_llvm_pass_plugins)
## Part 1: Extension header to be included whenever we need extension
# processing.
- set(LLVM_INSTALL_PACKAGE_DIR lib${LLVM_LIBDIR_SUFFIX}/cmake/llvm)
+ set(LLVM_INSTALL_PACKAGE_DIR share/llvm)
set(llvm_cmake_builddir "${LLVM_BINARY_DIR}/${LLVM_INSTALL_PACKAGE_DIR}")
file(WRITE
"${llvm_cmake_builddir}/LLVMConfigExtensions.cmake"
diff --git a/llvm/cmake/modules/CMakeLists.txt b/llvm/cmake/modules/CMakeLists.txt
index cea0c1df0a14..639c5422b04a 100644
--- a/llvm/cmake/modules/CMakeLists.txt
+++ b/llvm/cmake/modules/CMakeLists.txt
@@ -2,7 +2,7 @@ include(ExtendPath)
include(LLVMDistributionSupport)
include(FindPrefixFromConfig)
-set(LLVM_INSTALL_PACKAGE_DIR lib${LLVM_LIBDIR_SUFFIX}/cmake/llvm)
+set(LLVM_INSTALL_PACKAGE_DIR share/llvm)
set(llvm_cmake_builddir "${LLVM_BINARY_DIR}/${LLVM_INSTALL_PACKAGE_DIR}")
# First for users who use an installed LLVM, create the LLVMExports.cmake file.
diff --git a/mlir/cmake/modules/CMakeLists.txt b/mlir/cmake/modules/CMakeLists.txt
index d6703993bd74..e2f6cd3ea8cb 100644
--- a/mlir/cmake/modules/CMakeLists.txt
+++ b/mlir/cmake/modules/CMakeLists.txt
@@ -5,11 +5,11 @@ include(FindPrefixFromConfig)
# Generate a list of CMake library targets so that other CMake projects can
# link against them. LLVM calls its version of this file LLVMExports.cmake, but
# the usual CMake convention seems to be ${Project}Targets.cmake.
-set(MLIR_INSTALL_PACKAGE_DIR lib${LLVM_LIBDIR_SUFFIX}/cmake/mlir)
+set(MLIR_INSTALL_PACKAGE_DIR share/mlir)
set(mlir_cmake_builddir "${CMAKE_BINARY_DIR}/${MLIR_INSTALL_PACKAGE_DIR}")
# Keep this in sync with llvm/cmake/CMakeLists.txt!
-set(LLVM_INSTALL_PACKAGE_DIR lib${LLVM_LIBDIR_SUFFIX}/cmake/llvm)
+set(LLVM_INSTALL_PACKAGE_DIR share/llvm)
set(llvm_cmake_builddir "${LLVM_BINARY_DIR}/${LLVM_INSTALL_PACKAGE_DIR}")
get_property(MLIR_EXPORTS GLOBAL PROPERTY MLIR_EXPORTS)
diff --git a/mlir/test/CMakeLists.txt b/mlir/test/CMakeLists.txt
index 8e44a9c37cf1..f6edc7d77ffd 100644
--- a/mlir/test/CMakeLists.txt
+++ b/mlir/test/CMakeLists.txt
@@ -8,7 +8,7 @@ endif()
# Passed to lit.site.cfg.py.so that the out of tree Standalone dialect test
# can find MLIR's CMake configuration
set(MLIR_CMAKE_DIR
- "${CMAKE_BINARY_DIR}/lib${LLVM_LIBDIR_SUFFIX}/cmake/mlir")
+ "${CMAKE_BINARY_DIR}/share/mlir")
# Passed to lit.site.cfg.py.in to set up the path where to find the libraries
# for linalg integration tests.
diff --git a/openmp/tools/Modules/CMakeLists.txt b/openmp/tools/Modules/CMakeLists.txt
index 22d818eea72d..75aacc4468d4 100644
--- a/openmp/tools/Modules/CMakeLists.txt
+++ b/openmp/tools/Modules/CMakeLists.txt
@@ -12,4 +12,4 @@
install(FILES "FindOpenMPTarget.cmake"
- DESTINATION "${OPENMP_INSTALL_LIBDIR}/cmake/openmp")
+ DESTINATION "share/openmp")
diff --git a/polly/cmake/CMakeLists.txt b/polly/cmake/CMakeLists.txt
index 7a0190b69df6..cdd3b4f126bb 100644
--- a/polly/cmake/CMakeLists.txt
+++ b/polly/cmake/CMakeLists.txt
@@ -3,8 +3,8 @@
include(ExtendPath)
include(FindPrefixFromConfig)
-set(LLVM_INSTALL_PACKAGE_DIR "lib${LLVM_LIBDIR_SUFFIX}/cmake/llvm")
-set(POLLY_INSTALL_PACKAGE_DIR "lib${LLVM_LIBDIR_SUFFIX}/cmake/polly")
+set(LLVM_INSTALL_PACKAGE_DIR "share/llvm")
+set(POLLY_INSTALL_PACKAGE_DIR "share/polly")
if (CMAKE_CONFIGURATION_TYPES)
set(POLLY_EXPORTS_FILE_NAME "PollyExports-$<LOWER_CASE:$<CONFIG>>.cmake")
else()

View File

@@ -0,0 +1,17 @@
llvm/include/llvm/Support/type_traits.h | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/llvm/include/llvm/Support/type_traits.h b/llvm/include/llvm/Support/type_traits.h
index 7b7d5d991f3f..469b681deea3 100644
--- a/llvm/include/llvm/Support/type_traits.h
+++ b/llvm/include/llvm/Support/type_traits.h
@@ -176,7 +176,8 @@ class is_trivially_copyable {
(has_deleted_copy_assign || has_trivial_copy_assign) &&
(has_deleted_copy_constructor || has_trivial_copy_constructor);
-#ifdef HAVE_STD_IS_TRIVIALLY_COPYABLE
+// due to DR 1734, a type can be std::is_trivially_copyable but not llvm::is_trivially_copyable
+#if 0
static_assert(value == std::is_trivially_copyable<T>::value,
"inconsistent behavior between llvm:: and std:: implementation of is_trivially_copyable");
#endif

View File

@@ -0,0 +1,16 @@
llvm/tools/llvm-config/llvm-config.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/llvm/tools/llvm-config/llvm-config.cpp b/llvm/tools/llvm-config/llvm-config.cpp
index 8ed88f33ead4..3f2d1b98adcc 100644
--- a/llvm/tools/llvm-config/llvm-config.cpp
+++ b/llvm/tools/llvm-config/llvm-config.cpp
@@ -305,7 +305,7 @@ int main(int argc, char **argv) {
// bin dir).
sys::fs::make_absolute(CurrentPath);
CurrentExecPrefix =
- sys::path::parent_path(sys::path::parent_path(CurrentPath)).str();
+ sys::path::parent_path(sys::path::parent_path(sys::path::parent_path(CurrentPath))).str();
// Check to see if we are inside a development tree by comparing to possible
// locations (prefix style or CMake style).

View File

@@ -0,0 +1,44 @@
clang/lib/Headers/CMakeLists.txt | 2 +-
clang/runtime/CMakeLists.txt | 2 +-
compiler-rt/cmake/base-config-ix.cmake | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/clang/lib/Headers/CMakeLists.txt b/clang/lib/Headers/CMakeLists.txt
index 078988980c52..795f495b32d6 100644
--- a/clang/lib/Headers/CMakeLists.txt
+++ b/clang/lib/Headers/CMakeLists.txt
@@ -234,7 +234,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 tools/llvm/lib/clang/${CLANG_VERSION}/include)
install(
FILES ${files} ${generated_files}
diff --git a/clang/runtime/CMakeLists.txt b/clang/runtime/CMakeLists.txt
index ca7e17927ee1..87d4282b36ad 100644
--- a/clang/runtime/CMakeLists.txt
+++ b/clang/runtime/CMakeLists.txt
@@ -84,7 +84,7 @@ if(LLVM_BUILD_EXTERNAL_COMPILER_RT AND EXISTS ${COMPILER_RT_SRC_ROOT}/)
-DLLVM_LIT_ARGS=${LLVM_LIT_ARGS}
-DCOMPILER_RT_OUTPUT_DIR=${LLVM_LIBRARY_OUTPUT_INTDIR}/clang/${CLANG_VERSION}
-DCOMPILER_RT_EXEC_OUTPUT_DIR=${LLVM_RUNTIME_OUTPUT_INTDIR}
- -DCOMPILER_RT_INSTALL_PATH:PATH=lib${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION}
+ -DCOMPILER_RT_INSTALL_PATH:PATH=tools/llvm/lib/clang/${CLANG_VERSION}
-DCOMPILER_RT_INCLUDE_TESTS=${LLVM_INCLUDE_TESTS}
-DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}
-DLLVM_LIBDIR_SUFFIX=${LLVM_LIBDIR_SUFFIX}
diff --git a/compiler-rt/cmake/base-config-ix.cmake b/compiler-rt/cmake/base-config-ix.cmake
index d7b0124f3546..55e515cb1c7a 100644
--- a/compiler-rt/cmake/base-config-ix.cmake
+++ b/compiler-rt/cmake/base-config-ix.cmake
@@ -44,7 +44,7 @@ if (LLVM_TREE_AVAILABLE)
# Setup the paths where compiler-rt runtimes and headers should be stored.
set(COMPILER_RT_OUTPUT_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR}/clang/${CLANG_VERSION})
set(COMPILER_RT_EXEC_OUTPUT_DIR ${LLVM_RUNTIME_OUTPUT_INTDIR})
- set(COMPILER_RT_INSTALL_PATH lib${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION})
+ set(COMPILER_RT_INSTALL_PATH tools/llvm/lib/clang/${CLANG_VERSION})
option(COMPILER_RT_INCLUDE_TESTS "Generate and build compiler-rt unit tests."
${LLVM_INCLUDE_TESTS})
option(COMPILER_RT_ENABLE_WERROR "Fail and stop if warning is triggered"

View File

@@ -0,0 +1,233 @@
clang-tools-extra/clang-tidy/tool/CMakeLists.txt | 2 +-
clang-tools-extra/modularize/CMakeLists.txt | 2 +-
clang/cmake/modules/AddClang.cmake | 2 +-
clang/tools/c-index-test/CMakeLists.txt | 2 +-
clang/tools/clang-format/CMakeLists.txt | 2 +-
clang/tools/clang-linker-wrapper/CMakeLists.txt | 2 +-
clang/tools/clang-nvlink-wrapper/CMakeLists.txt | 2 +-
clang/tools/scan-build-py/CMakeLists.txt | 4 ++--
clang/tools/scan-build/CMakeLists.txt | 2 +-
clang/tools/scan-view/CMakeLists.txt | 2 +-
clang/utils/hmaptool/CMakeLists.txt | 2 +-
flang/cmake/modules/AddFlang.cmake | 2 +-
flang/tools/f18/CMakeLists.txt | 2 +-
flang/tools/flang-driver/CMakeLists.txt | 2 +-
lld/cmake/modules/AddLLD.cmake | 2 +-
lld/tools/lld/CMakeLists.txt | 2 +-
lldb/cmake/modules/AddLLDB.cmake | 2 +-
17 files changed, 18 insertions(+), 18 deletions(-)
diff --git a/clang-tools-extra/clang-tidy/tool/CMakeLists.txt b/clang-tools-extra/clang-tidy/tool/CMakeLists.txt
index 3ce552872015..e09b917ae5f8 100644
--- a/clang-tools-extra/clang-tidy/tool/CMakeLists.txt
+++ b/clang-tools-extra/clang-tidy/tool/CMakeLists.txt
@@ -64,6 +64,6 @@ install(PROGRAMS clang-tidy-diff.py
DESTINATION "${CMAKE_INSTALL_DATADIR}/clang"
COMPONENT clang-tidy)
install(PROGRAMS run-clang-tidy.py
- DESTINATION "${CMAKE_INSTALL_BINDIR}"
+ DESTINATION "${LLVM_TOOLS_INSTALL_DIR}"
COMPONENT clang-tidy
RENAME run-clang-tidy)
diff --git a/clang-tools-extra/modularize/CMakeLists.txt b/clang-tools-extra/modularize/CMakeLists.txt
index fb17e353c39f..4b409e47446a 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 "${CMAKE_INSTALL_BINDIR}"
+ RUNTIME DESTINATION "${LLVM_TOOLS_INSTALL_DIR}"
COMPONENT clang-extras)
diff --git a/clang/cmake/modules/AddClang.cmake b/clang/cmake/modules/AddClang.cmake
index 9bbbfc032b7d..bd238ff249cd 100644
--- a/clang/cmake/modules/AddClang.cmake
+++ b/clang/cmake/modules/AddClang.cmake
@@ -160,7 +160,7 @@ macro(add_clang_tool name)
get_target_export_arg(${name} Clang export_to_clangtargets)
install(TARGETS ${name}
${export_to_clangtargets}
- RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
+ RUNTIME DESTINATION "${LLVM_TOOLS_INSTALL_DIR}"
COMPONENT ${name})
if(NOT LLVM_ENABLE_IDE)
diff --git a/clang/tools/c-index-test/CMakeLists.txt b/clang/tools/c-index-test/CMakeLists.txt
index 0ae1b4e55244..e8a34e136194 100644
--- a/clang/tools/c-index-test/CMakeLists.txt
+++ b/clang/tools/c-index-test/CMakeLists.txt
@@ -49,7 +49,7 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
set_property(TARGET c-index-test APPEND PROPERTY INSTALL_RPATH
"@executable_path/../../lib")
else()
- set(INSTALL_DESTINATION "${CMAKE_INSTALL_BINDIR}")
+ set(INSTALL_DESTINATION "${LLVM_TOOLS_INSTALL_DIR}")
endif()
install(TARGETS c-index-test
diff --git a/clang/tools/clang-format/CMakeLists.txt b/clang/tools/clang-format/CMakeLists.txt
index bbdef93b576b..8744e414da0a 100644
--- a/clang/tools/clang-format/CMakeLists.txt
+++ b/clang/tools/clang-format/CMakeLists.txt
@@ -36,5 +36,5 @@ install(PROGRAMS clang-format.py
DESTINATION "${CMAKE_INSTALL_DATADIR}/clang"
COMPONENT clang-format)
install(PROGRAMS git-clang-format
- DESTINATION "${CMAKE_INSTALL_BINDIR}"
+ DESTINATION "${LLVM_TOOLS_INSTALL_DIR}"
COMPONENT clang-format)
diff --git a/clang/tools/clang-linker-wrapper/CMakeLists.txt b/clang/tools/clang-linker-wrapper/CMakeLists.txt
index 1614f40fb60e..0e78982310c7 100644
--- a/clang/tools/clang-linker-wrapper/CMakeLists.txt
+++ b/clang/tools/clang-linker-wrapper/CMakeLists.txt
@@ -37,4 +37,4 @@ target_link_libraries(clang-linker-wrapper
${CLANG_LINKER_WRAPPER_LIB_DEPS}
)
-install(TARGETS clang-linker-wrapper RUNTIME DESTINATION bin)
+install(TARGETS clang-linker-wrapper RUNTIME DESTINATION "${LLVM_TOOLS_INSTALL_DIR}")
diff --git a/clang/tools/clang-nvlink-wrapper/CMakeLists.txt b/clang/tools/clang-nvlink-wrapper/CMakeLists.txt
index 2c979e509795..f22b801fe19a 100644
--- a/clang/tools/clang-nvlink-wrapper/CMakeLists.txt
+++ b/clang/tools/clang-nvlink-wrapper/CMakeLists.txt
@@ -22,4 +22,4 @@ target_link_libraries(clang-nvlink-wrapper
${CLANG_NVLINK_WRAPPER_LIB_DEPS}
)
-install(TARGETS clang-nvlink-wrapper RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}")
+install(TARGETS clang-nvlink-wrapper RUNTIME DESTINATION "${LLVM_TOOLS_INSTALL_DIR}")
diff --git a/clang/tools/scan-build-py/CMakeLists.txt b/clang/tools/scan-build-py/CMakeLists.txt
index 061dc7ef4dd9..91499600693b 100644
--- a/clang/tools/scan-build-py/CMakeLists.txt
+++ b/clang/tools/scan-build-py/CMakeLists.txt
@@ -43,7 +43,7 @@ foreach(BinFile ${BinFiles})
${CMAKE_BINARY_DIR}/bin/scan-build-py
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/bin/scan-build)
install (PROGRAMS "bin/scan-build"
- DESTINATION "${CMAKE_INSTALL_BINDIR}"
+ DESTINATION "${LLVM_TOOLS_INSTALL_DIR}"
RENAME scan-build-py
COMPONENT scan-build-py)
list(APPEND Depends ${CMAKE_BINARY_DIR}/bin/scan-build-py)
@@ -56,7 +56,7 @@ foreach(BinFile ${BinFiles})
${CMAKE_BINARY_DIR}/bin/
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/bin/${BinFile})
install(PROGRAMS bin/${BinFile}
- DESTINATION "${CMAKE_INSTALL_BINDIR}"
+ DESTINATION "${LLVM_TOOLS_INSTALL_DIR}"
COMPONENT scan-build-py)
list(APPEND Depends ${CMAKE_BINARY_DIR}/bin/${BinFile})
endif()
diff --git a/clang/tools/scan-build/CMakeLists.txt b/clang/tools/scan-build/CMakeLists.txt
index 4a578b4c6f3e..05574a4919f6 100644
--- a/clang/tools/scan-build/CMakeLists.txt
+++ b/clang/tools/scan-build/CMakeLists.txt
@@ -47,7 +47,7 @@ if(CLANG_INSTALL_SCANBUILD)
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/bin/${BinFile})
list(APPEND Depends ${CMAKE_BINARY_DIR}/bin/${BinFile})
install(PROGRAMS bin/${BinFile}
- DESTINATION "${CMAKE_INSTALL_BINDIR}"
+ DESTINATION "${LLVM_TOOLS_INSTALL_DIR}"
COMPONENT scan-build)
endforeach()
diff --git a/clang/tools/scan-view/CMakeLists.txt b/clang/tools/scan-view/CMakeLists.txt
index 07aec76ee66f..ca6a3380ad0c 100644
--- a/clang/tools/scan-view/CMakeLists.txt
+++ b/clang/tools/scan-view/CMakeLists.txt
@@ -20,7 +20,7 @@ if(CLANG_INSTALL_SCANVIEW)
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/bin/${BinFile})
list(APPEND Depends ${CMAKE_BINARY_DIR}/bin/${BinFile})
install(PROGRAMS bin/${BinFile}
- DESTINATION "${CMAKE_INSTALL_BINDIR}"
+ DESTINATION "${LLVM_TOOLS_INSTALL_DIR}"
COMPONENT scan-view)
endforeach()
diff --git a/clang/utils/hmaptool/CMakeLists.txt b/clang/utils/hmaptool/CMakeLists.txt
index f0d9866782b8..5fcdfc04425f 100644
--- a/clang/utils/hmaptool/CMakeLists.txt
+++ b/clang/utils/hmaptool/CMakeLists.txt
@@ -10,7 +10,7 @@ add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/bin/${CLANG_HM
list(APPEND Depends ${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/bin/${CLANG_HMAPTOOL})
install(PROGRAMS ${CLANG_HMAPTOOL}
- DESTINATION "${CMAKE_INSTALL_BINDIR}"
+ DESTINATION "${LLVM_TOOLS_INSTALL_DIR}"
COMPONENT hmaptool)
add_custom_target(hmaptool ALL DEPENDS ${Depends})
diff --git a/flang/cmake/modules/AddFlang.cmake b/flang/cmake/modules/AddFlang.cmake
index 369e303e148a..3c3697c07406 100644
--- a/flang/cmake/modules/AddFlang.cmake
+++ b/flang/cmake/modules/AddFlang.cmake
@@ -109,7 +109,7 @@ macro(add_flang_tool name)
get_target_export_arg(${name} Flang export_to_flangtargets)
install(TARGETS ${name}
${export_to_flangtargets}
- RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
+ RUNTIME DESTINATION "${LLVM_TOOLS_INSTALL_DIR}"
COMPONENT ${name})
if(NOT LLVM_ENABLE_IDE)
diff --git a/flang/tools/f18/CMakeLists.txt b/flang/tools/f18/CMakeLists.txt
index aa77676c6229..dd15b0b7727b 100644
--- a/flang/tools/f18/CMakeLists.txt
+++ b/flang/tools/f18/CMakeLists.txt
@@ -50,5 +50,5 @@ if (NOT WIN32)
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/flang
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/flang ${CMAKE_BINARY_DIR}/bin)
add_custom_target(flang ALL DEPENDS ${CMAKE_BINARY_DIR}/bin/flang)
- install(PROGRAMS ${CMAKE_BINARY_DIR}/bin/flang DESTINATION "${CMAKE_INSTALL_BINDIR}")
+ install(PROGRAMS ${CMAKE_BINARY_DIR}/bin/flang DESTINATION "${LLVM_TOOLS_INSTALL_DIR}")
endif()
diff --git a/flang/tools/flang-driver/CMakeLists.txt b/flang/tools/flang-driver/CMakeLists.txt
index b3e90746e786..b327e69aaeaa 100644
--- a/flang/tools/flang-driver/CMakeLists.txt
+++ b/flang/tools/flang-driver/CMakeLists.txt
@@ -34,4 +34,4 @@ if(FLANG_PLUGIN_SUPPORT)
export_executable_symbols_for_plugins(flang-new)
endif()
-install(TARGETS flang-new DESTINATION "${CMAKE_INSTALL_BINDIR}")
+install(TARGETS flang-new DESTINATION "${LLVM_TOOLS_INSTALL_DIR}")
diff --git a/lld/cmake/modules/AddLLD.cmake b/lld/cmake/modules/AddLLD.cmake
index dd2898ce6236..86560bddd5e4 100644
--- a/lld/cmake/modules/AddLLD.cmake
+++ b/lld/cmake/modules/AddLLD.cmake
@@ -47,7 +47,7 @@ macro(add_lld_tool name)
get_target_export_arg(${name} LLD export_to_lldtargets)
install(TARGETS ${name}
${export_to_lldtargets}
- RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
+ RUNTIME DESTINATION "${LLVM_TOOLS_INSTALL_DIR}"
COMPONENT ${name})
if(NOT CMAKE_CONFIGURATION_TYPES)
diff --git a/lld/tools/lld/CMakeLists.txt b/lld/tools/lld/CMakeLists.txt
index df48cc0d6c51..1363144fd8e1 100644
--- a/lld/tools/lld/CMakeLists.txt
+++ b/lld/tools/lld/CMakeLists.txt
@@ -20,7 +20,7 @@ target_link_libraries(lld
)
install(TARGETS lld
- RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}")
+ RUNTIME DESTINATION "${LLVM_TOOLS_INSTALL_DIR}")
if(NOT LLD_SYMLINKS_TO_CREATE)
set(LLD_SYMLINKS_TO_CREATE
diff --git a/lldb/cmake/modules/AddLLDB.cmake b/lldb/cmake/modules/AddLLDB.cmake
index 3291a7c808e1..9fe9b9a7940d 100644
--- a/lldb/cmake/modules/AddLLDB.cmake
+++ b/lldb/cmake/modules/AddLLDB.cmake
@@ -189,7 +189,7 @@ function(add_lldb_executable name)
endif()
if(ARG_GENERATE_INSTALL)
- set(install_dest bin)
+ set(install_dest "${LLVM_TOOLS_INSTALL_DIR}")
if(ARG_INSTALL_PREFIX)
set(install_dest ${ARG_INSTALL_PREFIX})
endif()

View File

@@ -0,0 +1,16 @@
llvm/cmake/modules/FindFFI.cmake | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/llvm/cmake/modules/FindFFI.cmake b/llvm/cmake/modules/FindFFI.cmake
index b0d859af8959..a756d0c8fdb0 100644
--- a/llvm/cmake/modules/FindFFI.cmake
+++ b/llvm/cmake/modules/FindFFI.cmake
@@ -34,7 +34,7 @@ else()
endif()
endif()
-find_library(FFI_LIBRARIES ffi PATHS ${FFI_LIBRARY_DIR})
+find_library(FFI_LIBRARIES ffi libffi PATHS ${FFI_LIBRARY_DIR})
if(FFI_LIBRARIES)
include(CMakePushCheckState)

View File

@@ -0,0 +1,22 @@
bolt/tools/driver/CMakeLists.txt | 8 --------
1 file changed, 8 deletions(-)
diff --git a/bolt/tools/driver/CMakeLists.txt b/bolt/tools/driver/CMakeLists.txt
index d50781615663..df06604c724c 100644
--- a/bolt/tools/driver/CMakeLists.txt
+++ b/bolt/tools/driver/CMakeLists.txt
@@ -33,14 +33,6 @@ set(BOLT_DEPENDS
)
add_custom_target(bolt DEPENDS ${BOLT_DEPENDS})
-install(PROGRAMS
- ${CMAKE_BINARY_DIR}/bin/llvm-bolt
- ${CMAKE_BINARY_DIR}/bin/perf2bolt
- ${CMAKE_BINARY_DIR}/bin/llvm-boltdiff
- ${CMAKE_BINARY_DIR}/bin/llvm-bolt-heatmap
- DESTINATION ${CMAKE_INSTALL_BINDIR}
- COMPONENT bolt
- )
add_llvm_install_targets(install-bolt DEPENDS bolt COMPONENT bolt)
set_target_properties(bolt PROPERTIES FOLDER "BOLT")
set_target_properties(install-bolt PROPERTIES FOLDER "BOLT")

5
externals/vcpkg/ports/llvm/clang_usage vendored Executable file
View File

@@ -0,0 +1,5 @@
The package clang provides CMake targets:
find_package(Clang CONFIG REQUIRED)
target_include_directories(main PRIVATE ${CLANG_INCLUDE_DIRS})
target_link_libraries(main PRIVATE clangBasic clangLex clangParse clangAST ...)

5
externals/vcpkg/ports/llvm/flang_usage vendored Executable file
View File

@@ -0,0 +1,5 @@
The package flang provides CMake targets:
find_package(Flang CONFIG REQUIRED)
target_include_directories(main PRIVATE ${FLANG_INCLUDE_DIRS})
target_link_libraries(main PRIVATE flangFrontend flangFrontendTool ...)

5
externals/vcpkg/ports/llvm/lld_usage vendored Executable file
View File

@@ -0,0 +1,5 @@
The package lld provides CMake targets:
find_package(LLD CONFIG REQUIRED)
target_include_directories(main PRIVATE ${LLD_INCLUDE_DIRS})
target_link_libraries(main PRIVATE lldCommon lldCore lldDriver ...)

15
externals/vcpkg/ports/llvm/llvm_usage vendored Executable file
View File

@@ -0,0 +1,15 @@
The package llvm provides CMake targets:
find_package(LLVM CONFIG REQUIRED)
list(APPEND CMAKE_MODULE_PATH "${LLVM_CMAKE_DIR}")
include(HandleLLVMOptions)
add_definitions(${LLVM_DEFINITIONS})
target_include_directories(main PRIVATE ${LLVM_INCLUDE_DIRS})
# Find the libraries that correspond to the LLVM components that we wish to use
llvm_map_components_to_libnames(llvm_libs Support Core IRReader ...)
# Link against LLVM libraries
target_link_libraries(main PRIVATE ${llvm_libs})

5
externals/vcpkg/ports/llvm/mlir_usage vendored Executable file
View File

@@ -0,0 +1,5 @@
The package lld provides CMake targets:
find_package(MLIR CONFIG REQUIRED)
target_include_directories(main PRIVATE ${MLIR_INCLUDE_DIRS})
target_link_libraries(main PRIVATE MLIRIR MLIRParser MLIRPass MLIRSupport ...)

332
externals/vcpkg/ports/llvm/portfile.cmake vendored Executable file
View File

@@ -0,0 +1,332 @@
set(LLVM_VERSION "14.0.4")
vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO llvm/llvm-project
REF llvmorg-${LLVM_VERSION}
SHA512 e14e6c3a1915a96e9ddc609f16ca3a398ca6f7fd0a691dadaa24490078a661340e845cb2d18f3679de4f47300bb822c33ae69548af6a0370d55737831a28b959
HEAD_REF main
PATCHES
0002-fix-install-paths.patch # This patch fixes paths in ClangConfig.cmake, LLVMConfig.cmake, LLDConfig.cmake etc.
0004-fix-dr-1734.patch
0005-fix-tools-path.patch
0007-fix-compiler-rt-install-path.patch
0009-fix-tools-install-path.patch
0010-fix-libffi.patch
0011-fix-install-bolt.patch
)
vcpkg_check_features(
OUT_FEATURE_OPTIONS FEATURE_OPTIONS
FEATURES
tools LLVM_BUILD_TOOLS
tools LLVM_INCLUDE_TOOLS
utils LLVM_BUILD_UTILS
utils LLVM_INCLUDE_UTILS
utils LLVM_INSTALL_UTILS
enable-rtti LLVM_ENABLE_RTTI
enable-ffi LLVM_ENABLE_FFI
enable-terminfo LLVM_ENABLE_TERMINFO
enable-threads LLVM_ENABLE_THREADS
enable-eh LLVM_ENABLE_EH
enable-bindings LLVM_ENABLE_BINDINGS
)
vcpkg_cmake_get_vars(cmake_vars_file)
include("${cmake_vars_file}")
# LLVM generates CMake error due to Visual Studio version 16.4 is known to miscompile part of LLVM.
# LLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN=ON disables this error.
# See https://developercommunity.visualstudio.com/content/problem/845933/miscompile-boolean-condition-deduced-to-be-always.html
# and thread "[llvm-dev] Longstanding failing tests - clang-tidy, MachO, Polly" on llvm-dev Jan 21-23 2020.
list(APPEND FEATURE_OPTIONS
-DLLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN=ON
)
# Force enable or disable external libraries
set(llvm_external_libraries
zlib
libxml2
)
foreach(external_library IN LISTS llvm_external_libraries)
string(TOLOWER "enable-${external_library}" feature_name)
string(TOUPPER "LLVM_ENABLE_${external_library}" define_name)
if(feature_name IN_LIST FEATURES)
list(APPEND FEATURE_OPTIONS
-D${define_name}=FORCE_ON
)
else()
list(APPEND FEATURE_OPTIONS
-D${define_name}=OFF
)
endif()
endforeach()
# By default assertions are enabled for Debug configuration only.
if("enable-assertions" IN_LIST FEATURES)
# Force enable assertions for all configurations.
list(APPEND FEATURE_OPTIONS
-DLLVM_ENABLE_ASSERTIONS=ON
)
elseif("disable-assertions" IN_LIST FEATURES)
# Force disable assertions for all configurations.
list(APPEND FEATURE_OPTIONS
-DLLVM_ENABLE_ASSERTIONS=OFF
)
endif()
# LLVM_ABI_BREAKING_CHECKS can be WITH_ASSERTS (default), FORCE_ON or FORCE_OFF.
# By default in LLVM, abi-breaking checks are enabled if assertions are enabled.
# however, this breaks linking with the debug versions, since the option is
# baked into the header files; thus, we always turn off LLVM_ABI_BREAKING_CHECKS
# unless the user asks for it
if("enable-abi-breaking-checks" IN_LIST FEATURES)
# Force enable abi-breaking checks.
list(APPEND FEATURE_OPTIONS
-DLLVM_ABI_BREAKING_CHECKS=FORCE_ON
)
else()
# Force disable abi-breaking checks.
list(APPEND FEATURE_OPTIONS
-DLLVM_ABI_BREAKING_CHECKS=FORCE_OFF
)
endif()
set(LLVM_ENABLE_PROJECTS)
if("bolt" IN_LIST FEATURES)
list(APPEND LLVM_ENABLE_PROJECTS "bolt")
endif()
if("clang" IN_LIST FEATURES OR "clang-tools-extra" IN_LIST FEATURES)
list(APPEND LLVM_ENABLE_PROJECTS "clang")
if("disable-clang-static-analyzer" IN_LIST FEATURES)
list(APPEND FEATURE_OPTIONS
# Disable ARCMT
-DCLANG_ENABLE_ARCMT=OFF
# Disable static analyzer
-DCLANG_ENABLE_STATIC_ANALYZER=OFF
)
endif()
# 1) LLVM/Clang tools are relocated from ./bin/ to ./tools/llvm/ (LLVM_TOOLS_INSTALL_DIR=tools/llvm)
# 2) Clang resource files are relocated from ./lib/clang/<version> to ./tools/llvm/lib/clang/<version> (see patch 0007-fix-compiler-rt-install-path.patch)
# So, the relative path should be changed from ../lib/clang/<version> to ./lib/clang/<version>
list(APPEND FEATURE_OPTIONS -DCLANG_RESOURCE_DIR=lib/clang/${LLVM_VERSION})
endif()
if("clang-tools-extra" IN_LIST FEATURES)
list(APPEND LLVM_ENABLE_PROJECTS "clang-tools-extra")
endif()
if("compiler-rt" IN_LIST FEATURES)
list(APPEND LLVM_ENABLE_PROJECTS "compiler-rt")
endif()
if("flang" IN_LIST FEATURES)
if(VCPKG_DETECTED_CMAKE_CXX_COMPILER_ID STREQUAL "MSVC" AND VCPKG_TARGET_ARCHITECTURE STREQUAL "x86")
message(FATAL_ERROR "Building Flang with MSVC is not supported on x86. Disable it until issues are fixed.")
endif()
list(APPEND LLVM_ENABLE_PROJECTS "flang")
list(APPEND FEATURE_OPTIONS
# Flang requires C++17
-DCMAKE_CXX_STANDARD=17
)
endif()
if("libclc" IN_LIST FEATURES)
list(APPEND LLVM_ENABLE_PROJECTS "libclc")
endif()
if("lld" IN_LIST FEATURES)
list(APPEND LLVM_ENABLE_PROJECTS "lld")
endif()
if("lldb" IN_LIST FEATURES)
list(APPEND LLVM_ENABLE_PROJECTS "lldb")
list(APPEND FEATURE_OPTIONS
-DLLDB_ENABLE_CURSES=OFF
)
endif()
if("mlir" IN_LIST FEATURES)
list(APPEND LLVM_ENABLE_PROJECTS "mlir")
endif()
if("openmp" IN_LIST FEATURES)
list(APPEND LLVM_ENABLE_PROJECTS "openmp")
# Perl is required for the OpenMP run-time
vcpkg_find_acquire_program(PERL)
get_filename_component(PERL_PATH ${PERL} DIRECTORY)
vcpkg_add_to_path(${PERL_PATH})
# Skip post-build check
set(VCPKG_POLICY_SKIP_DUMPBIN_CHECKS enabled)
endif()
if("polly" IN_LIST FEATURES)
list(APPEND LLVM_ENABLE_PROJECTS "polly")
endif()
if("pstl" IN_LIST FEATURES)
if(VCPKG_DETECTED_CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
message(FATAL_ERROR "Building pstl with MSVC is not supported. Disable it until issues are fixed.")
endif()
list(APPEND LLVM_ENABLE_PROJECTS "pstl")
endif()
set(LLVM_ENABLE_RUNTIMES)
if("libcxx" IN_LIST FEATURES)
if(VCPKG_DETECTED_CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
message(FATAL_ERROR "Building libcxx with MSVC is not supported, as cl doesn't support the #include_next extension.")
endif()
list(APPEND LLVM_ENABLE_RUNTIMES "libcxx")
endif()
if("libcxxabi" IN_LIST FEATURES)
if(VCPKG_DETECTED_CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
message(FATAL_ERROR "Building libcxxabi with MSVC is not supported. Disable it until issues are fixed.")
endif()
list(APPEND LLVM_ENABLE_RUNTIMES "libcxxabi")
endif()
if("libunwind" IN_LIST FEATURES)
list(APPEND LLVM_ENABLE_RUNTIMES "libunwind")
endif()
# this is for normal targets
set(known_llvm_targets
AArch64
AMDGPU
ARM
AVR
BPF
Hexagon
Lanai
Mips
MSP430
NVPTX
PowerPC
RISCV
Sparc
SystemZ
VE
WebAssembly
X86
XCore
)
set(LLVM_TARGETS_TO_BUILD "")
foreach(llvm_target IN LISTS known_llvm_targets)
string(TOLOWER "target-${llvm_target}" feature_name)
if(feature_name IN_LIST FEATURES)
list(APPEND LLVM_TARGETS_TO_BUILD "${llvm_target}")
endif()
endforeach()
# this is for experimental targets
set(known_llvm_experimental_targets
SPRIV
)
set(LLVM_EXPERIMENTAL_TARGETS_TO_BUILD "")
foreach(llvm_target IN LISTS known_llvm_experimental_targets)
string(TOLOWER "target-${llvm_target}" feature_name)
if(feature_name IN_LIST FEATURES)
list(APPEND LLVM_EXPERIMENTAL_TARGETS_TO_BUILD "${llvm_target}")
endif()
endforeach()
vcpkg_find_acquire_program(PYTHON3)
get_filename_component(PYTHON3_DIR ${PYTHON3} DIRECTORY)
vcpkg_add_to_path(${PYTHON3_DIR})
set(LLVM_LINK_JOBS 1)
vcpkg_cmake_configure(
SOURCE_PATH ${SOURCE_PATH}/llvm
OPTIONS
${FEATURE_OPTIONS}
-DLLVM_INCLUDE_EXAMPLES=OFF
-DLLVM_BUILD_EXAMPLES=OFF
-DLLVM_INCLUDE_TESTS=OFF
-DLLVM_BUILD_TESTS=OFF
-DLLVM_INCLUDE_BENCHMARKS=OFF
-DLLVM_BUILD_BENCHMARKS=OFF
# Force TableGen to be built with optimization. This will significantly improve build time.
-DLLVM_OPTIMIZED_TABLEGEN=ON
"-DLLVM_ENABLE_PROJECTS=${LLVM_ENABLE_PROJECTS}"
"-DLLVM_ENABLE_RUNTIMES=${LLVM_ENABLE_RUNTIMES}"
"-DLLVM_TARGETS_TO_BUILD=${LLVM_TARGETS_TO_BUILD}"
"-DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=${LLVM_EXPERIMENTAL_TARGETS_TO_BUILD}"
-DPACKAGE_VERSION=${LLVM_VERSION}
# Limit the maximum number of concurrent link jobs to 1. This should fix low amount of memory issue for link.
"-DLLVM_PARALLEL_LINK_JOBS=${LLVM_LINK_JOBS}"
-DLLVM_TOOLS_INSTALL_DIR=tools/llvm
)
vcpkg_cmake_install(ADD_BIN_TO_PATH)
function(llvm_cmake_package_config_fixup package_name)
cmake_parse_arguments("arg" "DO_NOT_DELETE_PARENT_CONFIG_PATH" "FEATURE_NAME" "" ${ARGN})
if(NOT DEFINED arg_FEATURE_NAME)
set(arg_FEATURE_NAME ${package_name})
endif()
if("${arg_FEATURE_NAME}" STREQUAL "${PORT}" OR "${arg_FEATURE_NAME}" IN_LIST FEATURES)
set(args)
list(APPEND args PACKAGE_NAME "${package_name}")
if(arg_DO_NOT_DELETE_PARENT_CONFIG_PATH)
list(APPEND args "DO_NOT_DELETE_PARENT_CONFIG_PATH")
endif()
vcpkg_cmake_config_fixup(${args})
file(INSTALL "${SOURCE_PATH}/${package_name}/LICENSE.TXT" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${package_name}" RENAME copyright)
if(EXISTS "${CMAKE_CURRENT_LIST_DIR}/${package_name}_usage")
file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/${package_name}_usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${package_name}" RENAME usage)
endif()
endif()
endfunction()
llvm_cmake_package_config_fixup("clang" DO_NOT_DELETE_PARENT_CONFIG_PATH)
llvm_cmake_package_config_fixup("flang" DO_NOT_DELETE_PARENT_CONFIG_PATH)
llvm_cmake_package_config_fixup("lld" DO_NOT_DELETE_PARENT_CONFIG_PATH)
llvm_cmake_package_config_fixup("mlir" DO_NOT_DELETE_PARENT_CONFIG_PATH)
llvm_cmake_package_config_fixup("polly" DO_NOT_DELETE_PARENT_CONFIG_PATH)
llvm_cmake_package_config_fixup("ParallelSTL" FEATURE_NAME "pstl" DO_NOT_DELETE_PARENT_CONFIG_PATH)
llvm_cmake_package_config_fixup("llvm")
set(empty_dirs)
if("clang-tools-extra" IN_LIST FEATURES)
list(APPEND empty_dirs "${CURRENT_PACKAGES_DIR}/include/clang-tidy/plugin")
endif()
if("flang" IN_LIST FEATURES)
list(APPEND empty_dirs "${CURRENT_PACKAGES_DIR}/include/flang/Config")
list(APPEND empty_dirs "${CURRENT_PACKAGES_DIR}/include/flang/CMakeFiles")
list(APPEND empty_dirs "${CURRENT_PACKAGES_DIR}/include/flang/Optimizer/CMakeFiles")
list(APPEND empty_dirs "${CURRENT_PACKAGES_DIR}/include/flang/Optimizer/CodeGen/CMakeFiles")
list(APPEND empty_dirs "${CURRENT_PACKAGES_DIR}/include/flang/Optimizer/Dialect/CMakeFiles")
list(APPEND empty_dirs "${CURRENT_PACKAGES_DIR}/include/flang/Optimizer/Transforms/CMakeFiles")
endif()
if(empty_dirs)
foreach(empty_dir IN LISTS empty_dirs)
if(NOT EXISTS "${empty_dir}")
message(SEND_ERROR "Directory '${empty_dir}' is not exist. Please remove it from the checking.")
else()
file(GLOB_RECURSE files_in_dir "${empty_dir}/*")
if(files_in_dir)
message(SEND_ERROR "Directory '${empty_dir}' is not empty. Please remove it from the checking.")
else()
file(REMOVE_RECURSE "${empty_dir}")
endif()
endif()
endforeach()
endif()
vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/${PORT})
if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug")
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include"
"${CURRENT_PACKAGES_DIR}/debug/share"
"${CURRENT_PACKAGES_DIR}/debug/tools"
)
endif()
if("mlir" IN_LIST FEATURES)
vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/mlir/MLIRConfig.cmake" "set(MLIR_MAIN_SRC_DIR \"${SOURCE_PATH}/mlir\")" "")
vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/mlir/MLIRConfig.cmake" "${CURRENT_BUILDTREES_DIR}" "\${MLIR_INCLUDE_DIRS}")
endif()
# LLVM still generates a few DLLs in the static build:
# * LLVM-C.dll
# * libclang.dll
# * LTO.dll
# * Remarks.dll
set(VCPKG_POLICY_DLLS_IN_STATIC_LIBRARY enabled)

378
externals/vcpkg/ports/llvm/vcpkg.json vendored Executable file
View File

@@ -0,0 +1,378 @@
{
"name": "llvm",
"version": "14.0.4",
"description": "The LLVM Compiler Infrastructure.",
"homepage": "https://llvm.org",
"license": "Apache-2.0",
"supports": "!uwp & !(arm & windows)",
"dependencies": [
{
"name": "vcpkg-cmake",
"host": true
},
{
"name": "vcpkg-cmake-config",
"host": true
},
{
"name": "vcpkg-cmake-get-vars",
"host": true
}
],
"default-features": [
"clang",
"default-options",
"default-targets",
"lld",
"tools"
],
"features": {
"bolt": {
"description": "BOLT is a post-link optimizer developed to speed up large applications.",
"dependencies": [
{
"name": "llvm",
"default-features": false,
"features": [
"tools"
]
}
]
},
"clang": {
"description": "Include C Language Family Front-end.",
"dependencies": [
{
"name": "llvm",
"default-features": false,
"features": [
"compiler-rt",
"tools"
]
}
]
},
"clang-tools-extra": {
"description": "Include Clang tools."
},
"compiler-rt": {
"description": "Include compiler's runtime libraries."
},
"default-options": {
"description": "Build with default options.",
"dependencies": [
{
"name": "llvm",
"default-features": false,
"features": [
"disable-assertions",
"disable-clang-static-analyzer",
"enable-bindings",
"enable-terminfo",
"enable-threads",
"enable-zlib"
]
}
]
},
"default-targets": {
"description": "Build with platform-specific default targets.",
"dependencies": [
{
"name": "llvm",
"default-features": false,
"features": [
"target-spirv"
]
},
{
"name": "llvm",
"default-features": false,
"features": [
"target-aarch64"
],
"platform": "arm64"
},
{
"name": "llvm",
"default-features": false,
"features": [
"target-x86"
],
"platform": "x86 | x64"
},
{
"name": "llvm",
"default-features": false,
"features": [
"target-arm"
],
"platform": "arm & !arm64"
},
{
"name": "llvm",
"default-features": false,
"features": [
"target-all"
],
"platform": "!x86 & !x64 & !arm & !arm64"
}
]
},
"disable-assertions": {
"description": "Build LLVM without assertions."
},
"disable-clang-static-analyzer": {
"description": "Build without static analyzer."
},
"enable-abi-breaking-checks": {
"description": "Build LLVM with LLVM_ABI_BREAKING_CHECKS=FORCE_ON."
},
"enable-assertions": {
"description": "Build LLVM with assertions."
},
"enable-bindings": {
"description": "Build bindings."
},
"enable-eh": {
"description": "Build LLVM with exception handler.",
"dependencies": [
{
"name": "llvm",
"default-features": false,
"features": [
"enable-rtti"
]
}
]
},
"enable-ffi": {
"description": "Build LLVM with FFI.",
"dependencies": [
"libffi"
]
},
"enable-libxml2": {
"description": "Build with LibXml2.",
"dependencies": [
"libxml2"
]
},
"enable-rtti": {
"description": "Build LLVM with run-time type information."
},
"enable-terminfo": {
"description": "Use terminfo database if available."
},
"enable-threads": {
"description": "Use threads if available."
},
"enable-zlib": {
"description": "Build with ZLib.",
"dependencies": [
"zlib"
]
},
"flang": {
"description": "Include Fortran front end.",
"dependencies": [
{
"name": "llvm",
"default-features": false,
"features": [
"clang",
"mlir",
"tools"
]
}
]
},
"libclc": {
"description": "Include OpenCL library."
},
"libcxx": {
"description": "Include libcxx library.",
"dependencies": [
{
"name": "llvm",
"default-features": false,
"features": [
"libcxxabi"
]
}
]
},
"libcxxabi": {
"description": "Include libcxxabi library."
},
"libunwind": {
"description": "Include libunwind library."
},
"lld": {
"description": "Include LLVM linker.",
"dependencies": [
{
"name": "llvm",
"default-features": false,
"features": [
"tools"
]
}
]
},
"lldb": {
"description": "Include LLVM debugger.",
"dependencies": [
{
"name": "llvm",
"default-features": false,
"features": [
"tools"
]
}
]
},
"mlir": {
"description": "Include MLIR (Multi-Level IR Compiler Framework) project.",
"dependencies": [
{
"name": "llvm",
"default-features": false,
"features": [
"tools"
]
}
]
},
"openmp": {
"description": "Include LLVM OpenMP libraries.",
"dependencies": [
{
"name": "llvm",
"default-features": false,
"features": [
"utils"
]
}
]
},
"polly": {
"description": "Include Polly (Polyhedral optimizations for LLVM) project.",
"dependencies": [
{
"name": "llvm",
"default-features": false,
"features": [
"tools",
"utils"
]
}
]
},
"pstl": {
"description": "Include pstl (Parallel STL) library."
},
"target-aarch64": {
"description": "Build with AArch64 backend."
},
"target-all": {
"description": "Build with all backends.",
"dependencies": [
{
"name": "llvm",
"default-features": false,
"features": [
"target-aarch64",
"target-amdgpu",
"target-arm",
"target-avr",
"target-bpf",
"target-hexagon",
"target-lanai",
"target-mips",
"target-msp430",
"target-nvptx",
"target-powerpc",
"target-riscv",
"target-sparc",
"target-spirv",
"target-systemz",
"target-ve",
"target-webassembly",
"target-x86",
"target-xcore"
]
}
]
},
"target-amdgpu": {
"description": "Build with AMDGPU backend."
},
"target-arm": {
"description": "Build with ARM backend."
},
"target-avr": {
"description": "Build with AVR backend."
},
"target-bpf": {
"description": "Build with BPF backend."
},
"target-hexagon": {
"description": "Build with Hexagon backend."
},
"target-lanai": {
"description": "Build with Lanai backend."
},
"target-mips": {
"description": "Build with Mips backend."
},
"target-msp430": {
"description": "Build with MSP430 backend."
},
"target-nvptx": {
"description": "Build with NVPTX backend."
},
"target-powerpc": {
"description": "Build with PowerPC backend."
},
"target-riscv": {
"description": "Build with RISC-V backend."
},
"target-sparc": {
"description": "Build with Sparc backend."
},
"target-spirv": {
"description": "Build with Spriv backend."
},
"target-systemz": {
"description": "Build with SystemZ backend."
},
"target-ve": {
"description": "Build with VE backend."
},
"target-webassembly": {
"description": "Build with WebAssembly backend."
},
"target-x86": {
"description": "Build with X86 backend."
},
"target-xcore": {
"description": "Build with XCore backend."
},
"tools": {
"description": "Build LLVM tools.",
"dependencies": [
{
"name": "llvm",
"default-features": false,
"features": [
"enable-threads"
]
}
]
},
"utils": {
"description": "Build LLVM utils."
}
}
}