[llvm] update to 11.1.0, add features and fix issues (#16232)

* fix issue #16215

* add more projects and fix issue #16222

* add version

* exclude libc from default projects

* remove libc, add fland to default projects

* update to v11.1.0

* fix compiler-rt install path

* fix SHA for version 11.1.0

* fix libc++ install

* re-fix libc++ install

* fix pstl install

* fix flang's license file name

* install tools in tools/llvm, fix file names

* revert bin directory for libraries

* don't create clang sub-directory in llvm/tools

* overwrite version

* copy tool dependencies

* overwrite version

* remove vcpkg_copy_tools call

* overwrite version

* restore default features

* overwrite version

* overwrite version

* convert manifest to json

* install usage files

* overwrite version

* remove feature `default-projects`

* modernize CMake in usage files

* overwrite version

* update ordering

* override version
This commit is contained in:
Yury Bura 2021-04-14 01:17:17 +03:00 committed by GitHub
parent e3fee6ed40
commit 40449ff1cb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
14 changed files with 698 additions and 189 deletions

View File

@ -1,5 +1,15 @@
clang/cmake/modules/CMakeLists.txt | 4 ++--
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 ++--
polly/cmake/CMakeLists.txt | 4 ++--
pstl/CMakeLists.txt | 4 ++--
8 files changed, 14 insertions(+), 14 deletions(-)
diff --git a/clang/cmake/modules/CMakeLists.txt b/clang/cmake/modules/CMakeLists.txt
index d233f552f01..26f502ad2d2 100644
index d233f552f01f..26f502ad2d23 100644
--- a/clang/cmake/modules/CMakeLists.txt
+++ b/clang/cmake/modules/CMakeLists.txt
@@ -1,11 +1,11 @@
@ -17,7 +27,7 @@ index d233f552f01..26f502ad2d2 100644
get_property(CLANG_EXPORTS GLOBAL PROPERTY CLANG_EXPORTS)
diff --git a/flang/cmake/modules/CMakeLists.txt b/flang/cmake/modules/CMakeLists.txt
index d233f552f01..26f502ad2d2 100644
index 4822124ca412..1ca3eff8f14e 100644
--- a/flang/cmake/modules/CMakeLists.txt
+++ b/flang/cmake/modules/CMakeLists.txt
@@ -1,11 +1,11 @@
@ -35,7 +45,7 @@ index d233f552f01..26f502ad2d2 100644
get_property(FLANG_EXPORTS GLOBAL PROPERTY FLANG_EXPORTS)
diff --git a/lld/cmake/modules/CMakeLists.txt b/lld/cmake/modules/CMakeLists.txt
index d233f552f01..26f502ad2d2 100644
index fa505a533762..90413be34120 100644
--- a/lld/cmake/modules/CMakeLists.txt
+++ b/lld/cmake/modules/CMakeLists.txt
@@ -1,11 +1,11 @@
@ -53,11 +63,10 @@ index d233f552f01..26f502ad2d2 100644
get_property(LLD_EXPORTS GLOBAL PROPERTY LLD_EXPORTS)
diff --git a/llvm/cmake/modules/AddLLVM.cmake b/llvm/cmake/modules/AddLLVM.cmake
index 211f9551271..2abe3803f91 100644
index b74adc11ade9..0638aea2f8f6 100644
--- a/llvm/cmake/modules/AddLLVM.cmake
+++ b/llvm/cmake/modules/AddLLVM.cmake
@@ -973,10 +973,10 @@
if(ARG_GEN_CONFIG)
@@ -974,7 +974,7 @@ function(process_llvm_pass_plugins)
## Part 1: Extension header to be included whenever we need extension
# processing.
@ -66,10 +75,8 @@ index 211f9551271..2abe3803f91 100644
set(llvm_cmake_builddir "${LLVM_BINARY_DIR}/${LLVM_INSTALL_PACKAGE_DIR}")
file(WRITE
"${llvm_cmake_builddir}/LLVMConfigExtensions.cmake"
"set(LLVM_STATIC_EXTENSIONS ${LLVM_STATIC_EXTENSIONS})")
install(FILES
diff --git a/llvm/cmake/modules/CMakeLists.txt b/llvm/cmake/modules/CMakeLists.txt
index 9cf22b436fa..8eeb27d1794 100644
index 4b8879f65fe4..9e097ab223b5 100644
--- a/llvm/cmake/modules/CMakeLists.txt
+++ b/llvm/cmake/modules/CMakeLists.txt
@@ -1,4 +1,4 @@
@ -79,7 +86,7 @@ index 9cf22b436fa..8eeb27d1794 100644
# 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 d233f552f01..26f502ad2d2 100644
index b9fb9adce2ea..85a54f699f30 100644
--- a/mlir/cmake/modules/CMakeLists.txt
+++ b/mlir/cmake/modules/CMakeLists.txt
@@ -1,11 +1,11 @@
@ -97,7 +104,7 @@ index d233f552f01..26f502ad2d2 100644
get_property(MLIR_EXPORTS GLOBAL PROPERTY MLIR_EXPORTS)
diff --git a/polly/cmake/CMakeLists.txt b/polly/cmake/CMakeLists.txt
index 211f9551271..2abe3803f91 100644
index 211f95512717..2abe3803f910 100644
--- a/polly/cmake/CMakeLists.txt
+++ b/polly/cmake/CMakeLists.txt
@@ -1,7 +1,7 @@
@ -110,3 +117,20 @@ index 211f9551271..2abe3803f91 100644
if (CMAKE_CONFIGURATION_TYPES)
set(POLLY_EXPORTS_FILE_NAME "PollyExports-$<LOWER_CASE:$<CONFIG>>.cmake")
else()
diff --git a/pstl/CMakeLists.txt b/pstl/CMakeLists.txt
index 8e6e1354707b..2ae7f7090025 100644
--- a/pstl/CMakeLists.txt
+++ b/pstl/CMakeLists.txt
@@ -81,10 +81,10 @@ install(TARGETS ParallelSTL
install(EXPORT ParallelSTLTargets
FILE ParallelSTLTargets.cmake
NAMESPACE pstl::
- DESTINATION lib/cmake/ParallelSTL)
+ DESTINATION share/ParallelSTL)
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/ParallelSTLConfig.cmake"
"${CMAKE_CURRENT_BINARY_DIR}/ParallelSTLConfigVersion.cmake"
- DESTINATION lib/cmake/ParallelSTL)
+ DESTINATION share/ParallelSTL)
install(DIRECTORY include/
DESTINATION include
PATTERN "*.in" EXCLUDE)

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 0692fe75a441..65f72c2da7da 100644
--- a/clang/lib/Headers/CMakeLists.txt
+++ b/clang/lib/Headers/CMakeLists.txt
@@ -208,7 +208,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 61bbbf8faedd..f6d0b73d9913 100644
--- a/clang/runtime/CMakeLists.txt
+++ b/clang/runtime/CMakeLists.txt
@@ -82,7 +82,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:STRING=lib${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION}
+ -DCOMPILER_RT_INSTALL_PATH:STRING=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 964dd598f102..7379a1ba06d1 100644
--- a/compiler-rt/cmake/base-config-ix.cmake
+++ b/compiler-rt/cmake/base-config-ix.cmake
@@ -43,7 +43,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,18 @@
libcxx/src/CMakeLists.txt | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/libcxx/src/CMakeLists.txt b/libcxx/src/CMakeLists.txt
index 2001c09761d9..e17de934534f 100644
--- a/libcxx/src/CMakeLists.txt
+++ b/libcxx/src/CMakeLists.txt
@@ -364,9 +364,7 @@ if (LIBCXX_INSTALL_LIBRARY)
# NOTE: This install command must go after the cxx install command otherwise
# it will not be executed after the library symlinks are installed.
if (LIBCXX_ENABLE_SHARED AND LIBCXX_ENABLE_ABI_LINKER_SCRIPT)
- # Replace the libc++ filename with $<TARGET_LINKER_FILE:cxx>
- # after we required CMake 3.0.
- install(FILES "${LIBCXX_LIBRARY_DIR}/libc++${CMAKE_SHARED_LIBRARY_SUFFIX}"
+ install(FILES "$<TARGET_LINKER_FILE:cxx_shared>"
DESTINATION ${LIBCXX_INSTALL_PREFIX}${LIBCXX_INSTALL_LIBRARY_DIR}
COMPONENT libcxx)
endif()

View File

@ -0,0 +1,172 @@
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/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 | 4 ++--
lld/cmake/modules/AddLLD.cmake | 2 +-
lld/tools/lld/CMakeLists.txt | 2 +-
lldb/cmake/modules/AddLLDB.cmake | 2 +-
12 files changed, 13 insertions(+), 13 deletions(-)
diff --git a/clang-tools-extra/modularize/CMakeLists.txt b/clang-tools-extra/modularize/CMakeLists.txt
index 4caae81c49b6..8c459c51cc34 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 tools/llvm
COMPONENT clang-extras)
diff --git a/clang/cmake/modules/AddClang.cmake b/clang/cmake/modules/AddClang.cmake
index 704278a0e93b..e8a87f574474 100644
--- a/clang/cmake/modules/AddClang.cmake
+++ b/clang/cmake/modules/AddClang.cmake
@@ -170,7 +170,7 @@ macro(add_clang_tool name)
install(TARGETS ${name}
${export_to_clangtargets}
- RUNTIME DESTINATION bin
+ RUNTIME DESTINATION tools/llvm
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 ceef4b08637c..ce6d7799475b 100644
--- a/clang/tools/c-index-test/CMakeLists.txt
+++ b/clang/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 tools/llvm)
endif()
install(TARGETS c-index-test
diff --git a/clang/tools/clang-format/CMakeLists.txt b/clang/tools/clang-format/CMakeLists.txt
index 35ecdb11253c..d1b800dfdadc 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 share/clang
COMPONENT clang-format)
install(PROGRAMS git-clang-format
- DESTINATION bin
+ DESTINATION tools/llvm
COMPONENT clang-format)
diff --git a/clang/tools/scan-build/CMakeLists.txt b/clang/tools/scan-build/CMakeLists.txt
index ec0702d76f18..9a34a09921b1 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 bin
+ DESTINATION tools/llvm
COMPONENT scan-build)
endforeach()
diff --git a/clang/tools/scan-view/CMakeLists.txt b/clang/tools/scan-view/CMakeLists.txt
index 22edb974bac7..60f69d358fb9 100644
--- a/clang/tools/scan-view/CMakeLists.txt
+++ b/clang/tools/scan-view/CMakeLists.txt
@@ -22,7 +22,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 bin
+ DESTINATION tools/llvm
COMPONENT scan-view)
endforeach()
diff --git a/clang/utils/hmaptool/CMakeLists.txt b/clang/utils/hmaptool/CMakeLists.txt
index 62f2de0cb15c..38dc821c76de 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 bin
+ DESTINATION tools/llvm
COMPONENT hmaptool)
add_custom_target(hmaptool ALL DEPENDS ${Depends})
diff --git a/flang/cmake/modules/AddFlang.cmake b/flang/cmake/modules/AddFlang.cmake
index 7fe8b7e9f406..b338dddd0850 100644
--- a/flang/cmake/modules/AddFlang.cmake
+++ b/flang/cmake/modules/AddFlang.cmake
@@ -120,7 +120,7 @@ macro(add_flang_tool name)
install(TARGETS ${name}
${export_to_flangtargets}
- RUNTIME DESTINATION bin
+ RUNTIME DESTINATION tools/llvm
COMPONENT ${name})
if(NOT LLVM_ENABLE_IDE)
diff --git a/flang/tools/f18/CMakeLists.txt b/flang/tools/f18/CMakeLists.txt
index f3af6e8312fe..aa58108b332b 100644
--- a/flang/tools/f18/CMakeLists.txt
+++ b/flang/tools/f18/CMakeLists.txt
@@ -58,7 +58,7 @@ endforeach()
add_custom_target(module_files ALL DEPENDS ${MODULE_FILES})
-install(TARGETS f18 DESTINATION bin)
+install(TARGETS f18 DESTINATION tools/llvm)
set(FLANG_INTRINSIC_MODULES_DIR ${FLANG_BINARY_DIR}/include/flang)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/flang.sh.in ${CMAKE_BINARY_DIR}/tools/flang/bin/flang @ONLY)
@@ -68,4 +68,4 @@ set(FLANG_INTRINSIC_MODULES_DIR ${CMAKE_INSTALL_PREFIX}/include/flang)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/flang.sh.in ${FLANG_BINARY_DIR}/bin/flang-install.sh @ONLY)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/f18_version.h.in ${CMAKE_CURRENT_BINARY_DIR}/f18_version.h @ONLY)
-install(PROGRAMS ${FLANG_BINARY_DIR}/bin/flang-install.sh DESTINATION bin RENAME flang PERMISSIONS OWNER_EXECUTE OWNER_READ OWNER_WRITE)
+install(PROGRAMS ${FLANG_BINARY_DIR}/bin/flang-install.sh DESTINATION tools/llvm RENAME flang PERMISSIONS OWNER_EXECUTE OWNER_READ OWNER_WRITE)
diff --git a/lld/cmake/modules/AddLLD.cmake b/lld/cmake/modules/AddLLD.cmake
index 23df41312403..86f4eafeed07 100644
--- a/lld/cmake/modules/AddLLD.cmake
+++ b/lld/cmake/modules/AddLLD.cmake
@@ -54,7 +54,7 @@ macro(add_lld_tool name)
install(TARGETS ${name}
${export_to_lldtargets}
- RUNTIME DESTINATION bin
+ RUNTIME DESTINATION tools/llvm
COMPONENT ${name})
if(NOT CMAKE_CONFIGURATION_TYPES)
diff --git a/lld/tools/lld/CMakeLists.txt b/lld/tools/lld/CMakeLists.txt
index e6f72fcd3488..0e5a2c81e825 100644
--- a/lld/tools/lld/CMakeLists.txt
+++ b/lld/tools/lld/CMakeLists.txt
@@ -21,7 +21,7 @@ target_link_libraries(lld
)
install(TARGETS lld
- RUNTIME DESTINATION bin)
+ RUNTIME DESTINATION tools/llvm)
if(NOT LLD_SYMLINKS_TO_CREATE)
set(LLD_SYMLINKS_TO_CREATE lld-link ld.lld ld64.lld wasm-ld)
diff --git a/lldb/cmake/modules/AddLLDB.cmake b/lldb/cmake/modules/AddLLDB.cmake
index 4ed5c647c5d2..cb31901dddbb 100644
--- a/lldb/cmake/modules/AddLLDB.cmake
+++ b/lldb/cmake/modules/AddLLDB.cmake
@@ -187,7 +187,7 @@ function(add_lldb_executable name)
endif()
if(ARG_GENERATE_INSTALL)
- set(install_dest bin)
+ set(install_dest tools/llvm)
if(ARG_INSTALL_PREFIX)
set(install_dest ${ARG_INSTALL_PREFIX})
endif()

View File

@ -1,137 +0,0 @@
Source: llvm
Version: 11.0.0
Port-Version: 2
Homepage: https://llvm.org/
Description: The LLVM Compiler Infrastructure
Supports: !uwp
Default-Features: tools, enable-rtti, enable-threads, disable-assertions, disable-abi-breaking-checks, clang, disable-clang-static-analyzer, lld, default-targets, enable-terminfo, enable-bindings
Feature: tools
Description: Build LLVM tools.
Feature: utils
Description: Build LLVM utils.
Feature: default-targets
Description: Build with platform-specific default targets
Build-Depends: llvm[core,target-x86] (x86|x64), llvm[core,target-arm] (arm&!arm64), llvm[core,target-aarch64] (arm64), llvm[core,target-all] (!x86&!x64&!arm&!arm64)
Feature: target-all
Description: Build with all backends.
Build-Depends: llvm[core,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-systemz,target-webassembly,target-x86,target-xcore]
Feature: target-aarch64
Description: Build with AArch64 backend.
Feature: target-amdgpu
Description: Build with AMDGPU backend.
Feature: target-arm
Description: Build with ARM backend.
Feature: target-avr
Description: Build with AVR backend.
Feature: target-bpf
Description: Build with BPF backend.
Feature: target-hexagon
Description: Build with Hexagon backend.
Feature: target-lanai
Description: Build with Lanai backend.
Feature: target-mips
Description: Build with Mips backend.
Feature: target-msp430
Description: Build with MSP430 backend.
Feature: target-nvptx
Description: Build with NVPTX backend.
Feature: target-powerpc
Description: Build with PowerPC backend.
Feature: target-riscv
Description: Build with RISCV backend.
Feature: target-sparc
Description: Build with Sparc backend.
Feature: target-systemz
Description: Build with SystemZ backend.
Feature: target-webassembly
Description: Build with WebAssembly backend.
Feature: target-x86
Description: Build with X86 backend.
Feature: target-xcore
Description: Build with XCore backend.
Feature: enable-eh
Description: Build LLVM with exception handler.
Build-Depends: llvm[core,enable-rtti]
Feature: enable-rtti
Description: Build LLVM with run-time type information.
Feature: enable-ffi
Description: Build LLVM with FFI.
Build-Depends: libffi
Feature: enable-bindings
Description: Build bindings.
Feature: enable-assertions
Description: Build LLVM with assertions.
Feature: disable-assertions
Description: Build LLVM without assertions.
Feature: enable-terminfo
Description: Build LLVM with terminfo.
Feature: enable-threads
Description: Enable multi-threaded LTO.
Feature: enable-abi-breaking-checks
Description: Build LLVM with LLVM_ABI_BREAKING_CHECKS=FORCE_ON.
Feature: disable-abi-breaking-checks
Description: Build LLVM with LLVM_ABI_BREAKING_CHECKS=FORCE_OFF.
Feature: clang
Description: Build C Language Family Front-end.
Feature: disable-clang-static-analyzer
Description: Build without static analyzer.
Feature: clang-tools-extra
Description: Build Clang tools.
Feature: compiler-rt
Description: Build compiler's runtime libraries.
Feature: flang
Description: Build Fortran front end.
Build-Depends: llvm[core,mlir]
Feature: lld
Description: Build LLVM linker.
Feature: lldb
Description: Build LLDB debugger.
Feature: mlir
Description: Build Multi-Level IR Compiler Framework.
Feature: openmp
Description: Build LLVM OpenMP libraries.
Build-Depends: llvm[core,utils]
Feature: polly
Description: Build polyhedral optimizations for LLVM.
Build-Depends: llvm[core,utils]

5
ports/llvm/clang_usage Normal 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
ports/llvm/flang_usage Normal 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
ports/llvm/lld_usage Normal 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
ports/llvm/llvm_usage Normal 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
ports/llvm/mlir_usage Normal 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 ...)

View File

@ -1,4 +1,4 @@
set(LLVM_VERSION "11.0.0")
set(LLVM_VERSION "11.1.0")
vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
@ -6,7 +6,7 @@ vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO llvm/llvm-project
REF llvmorg-${LLVM_VERSION}
SHA512 b6d38871ccce0e086e27d35e42887618d68e57d8274735c59e3eabc42dee352412489296293f8d5169fe0044936345915ee7da61ebdc64ec10f7737f6ecd90f2
SHA512 9a8ce022a935eed42fa71a224f2a207122aadcbef58ee855fdb4825f879e7d028e4dcff22c19b9d336db1c8bf63fb84372d44981acf84615f757e54306c92b81
HEAD_REF master
PATCHES
0001-add-msvc-options.patch # Fixed in LLVM 12.0.0
@ -15,20 +15,24 @@ vcpkg_from_github(
0004-fix-dr-1734.patch
0005-fix-tools-path.patch
0006-workaround-msvc-bug.patch # Fixed in LLVM 12.0.0
0007-fix-compiler-rt-install-path.patch
0008-fix-libcxx-install.patch
0009-fix-tools-install-path.patch
)
vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
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
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
tools LLVM_BUILD_TOOLS
tools LLVM_INCLUDE_TOOLS
utils LLVM_BUILD_UTILS
utils LLVM_INCLUDE_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
)
# LLVM generates CMake error due to Visual Studio version 16.4 is known to miscompile part of LLVM.
@ -77,6 +81,10 @@ if("clang" IN_LIST FEATURES OR "clang-tools-extra" IN_LIST FEATURES)
-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")
@ -87,7 +95,7 @@ endif()
if("flang" IN_LIST FEATURES)
# Disable Flang on Windows (see http://lists.llvm.org/pipermail/flang-dev/2020-July/000448.html).
if(VCPKG_TARGET_IS_WINDOWS)
message(FATAL_ERROR "Building Flang with MSVC is not supported.")
message(FATAL_ERROR "Building Flang with MSVC is not supported. Disable it until issues are fixed.")
endif()
list(APPEND LLVM_ENABLE_PROJECTS "flang")
list(APPEND FEATURE_OPTIONS
@ -95,6 +103,27 @@ if("flang" IN_LIST FEATURES)
-DCMAKE_CXX_STANDARD=17
)
endif()
if("libclc" IN_LIST FEATURES)
list(APPEND LLVM_ENABLE_PROJECTS "libclc")
endif()
if("libcxx" IN_LIST FEATURES)
if(VCPKG_TARGET_IS_WINDOWS)
message(FATAL_ERROR "Building libcxx with MSVC is not supported. Disable it until issues are fixed.")
endif()
list(APPEND LLVM_ENABLE_PROJECTS "libcxx")
endif()
if("libcxxabi" IN_LIST FEATURES)
if(VCPKG_TARGET_IS_WINDOWS)
message(FATAL_ERROR "Building libcxxabi with MSVC is not supported. Disable it until issues are fixed.")
endif()
list(APPEND LLVM_ENABLE_PROJECTS "libcxxabi")
endif()
if("libunwind" IN_LIST FEATURES)
if(VCPKG_TARGET_IS_WINDOWS)
message(FATAL_ERROR "Building libunwind with MSVC is not supported. Disable it until issues are fixed.")
endif()
list(APPEND LLVM_ENABLE_PROJECTS "libunwind")
endif()
if("lld" IN_LIST FEATURES)
list(APPEND LLVM_ENABLE_PROJECTS "lld")
endif()
@ -107,7 +136,7 @@ endif()
if("openmp" IN_LIST FEATURES)
# Disable OpenMP on Windows (see https://bugs.llvm.org/show_bug.cgi?id=45074).
if(VCPKG_TARGET_IS_WINDOWS)
message(FATAL_ERROR "Building OpenMP with MSVC is not supported.")
message(FATAL_ERROR "Building OpenMP with MSVC is not supported. Disable it until issues are fixed.")
endif()
list(APPEND LLVM_ENABLE_PROJECTS "openmp")
# Perl is required for the OpenMP run-time
@ -121,12 +150,17 @@ if("openmp" IN_LIST FEATURES)
)
endif()
endif()
if("parallel-libs" IN_LIST FEATURES)
list(APPEND LLVM_ENABLE_PROJECTS "parallel-libs")
endif()
if("polly" IN_LIST FEATURES)
list(APPEND LLVM_ENABLE_PROJECTS "polly")
endif()
if("tools" IN_LIST FEATURES)
list(APPEND FEATURE_OPTIONS -DCLANG_RESOURCE_DIR=../../lib/clang/11.0.0)
if("pstl" IN_LIST FEATURES)
if(VCPKG_TARGET_IS_WINDOWS)
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(known_llvm_targets
@ -190,9 +224,14 @@ vcpkg_configure_cmake(
vcpkg_install_cmake()
vcpkg_fixup_cmake_targets(CONFIG_PATH "share/llvm" TARGET_PATH "share/llvm")
file(INSTALL ${SOURCE_PATH}/llvm/LICENSE.TXT DESTINATION ${CURRENT_PACKAGES_DIR}/share/llvm RENAME copyright)
file(INSTALL ${CMAKE_CURRENT_LIST_DIR}/llvm_usage DESTINATION ${CURRENT_PACKAGES_DIR}/share/llvm RENAME usage)
if("clang" IN_LIST FEATURES)
vcpkg_fixup_cmake_targets(CONFIG_PATH "share/clang" TARGET_PATH "share/clang" DO_NOT_DELETE_PARENT_CONFIG_PATH)
file(INSTALL ${SOURCE_PATH}/clang/LICENSE.TXT DESTINATION ${CURRENT_PACKAGES_DIR}/share/clang RENAME copyright)
file(INSTALL ${CMAKE_CURRENT_LIST_DIR}/clang_usage DESTINATION ${CURRENT_PACKAGES_DIR}/share/clang RENAME usage)
endif()
if("clang-tools-extra" IN_LIST FEATURES)
@ -205,7 +244,8 @@ endif()
if("flang" IN_LIST FEATURES)
vcpkg_fixup_cmake_targets(CONFIG_PATH "share/flang" TARGET_PATH "share/flang" DO_NOT_DELETE_PARENT_CONFIG_PATH)
file(INSTALL ${SOURCE_PATH}/flang/LICENSE.TXT DESTINATION ${CURRENT_PACKAGES_DIR}/share/flang RENAME copyright)
file(INSTALL ${SOURCE_PATH}/flang/LICENSE.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/flang RENAME copyright)
file(INSTALL ${CMAKE_CURRENT_LIST_DIR}/flang_usage DESTINATION ${CURRENT_PACKAGES_DIR}/share/flang RENAME usage)
# Remove empty include directory /include/flang/Config
file(GLOB_RECURSE INCLUDE_FLANG_CONFIG_FILES "${CURRENT_PACKAGES_DIR}/include/flang/Config/*")
if(NOT INCLUDE_FLANG_CONFIG_FILES)
@ -216,39 +256,26 @@ endif()
if("lld" IN_LIST FEATURES)
vcpkg_fixup_cmake_targets(CONFIG_PATH "share/lld" TARGET_PATH "share/lld" DO_NOT_DELETE_PARENT_CONFIG_PATH)
file(INSTALL ${SOURCE_PATH}/lld/LICENSE.TXT DESTINATION ${CURRENT_PACKAGES_DIR}/share/lld RENAME copyright)
file(INSTALL ${CMAKE_CURRENT_LIST_DIR}/lld_usage DESTINATION ${CURRENT_PACKAGES_DIR}/share/lld RENAME usage)
endif()
if("mlir" IN_LIST FEATURES)
vcpkg_fixup_cmake_targets(CONFIG_PATH "share/mlir" TARGET_PATH "share/mlir" DO_NOT_DELETE_PARENT_CONFIG_PATH)
file(INSTALL ${SOURCE_PATH}/mlir/LICENSE.TXT DESTINATION ${CURRENT_PACKAGES_DIR}/share/mlir RENAME copyright)
file(INSTALL ${CMAKE_CURRENT_LIST_DIR}/mlir_usage DESTINATION ${CURRENT_PACKAGES_DIR}/share/mlir RENAME usage)
endif()
if("polly" IN_LIST FEATURES)
vcpkg_fixup_cmake_targets(CONFIG_PATH "share/polly" TARGET_PATH "share/polly" DO_NOT_DELETE_PARENT_CONFIG_PATH)
file(INSTALL ${SOURCE_PATH}/polly/LICENSE.TXT DESTINATION ${CURRENT_PACKAGES_DIR}/share/polly RENAME copyright)
file(INSTALL ${SOURCE_PATH}/polly/LICENSE.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/polly RENAME copyright)
endif()
vcpkg_fixup_cmake_targets(CONFIG_PATH "share/llvm" TARGET_PATH "share/llvm")
file(INSTALL ${SOURCE_PATH}/llvm/LICENSE.TXT DESTINATION ${CURRENT_PACKAGES_DIR}/share/llvm RENAME copyright)
if(VCPKG_TARGET_IS_WINDOWS)
set(LLVM_EXECUTABLE_REGEX [[^([^.]*|[^.]*\.lld)\.exe$]])
else()
set(LLVM_EXECUTABLE_REGEX [[^([^.]*|[^.]*\.lld)$]])
if("pstl" IN_LIST FEATURES)
vcpkg_fixup_cmake_targets(CONFIG_PATH "share/ParallelSTL" TARGET_PATH "share/ParallelSTL" DO_NOT_DELETE_PARENT_CONFIG_PATH)
file(INSTALL ${SOURCE_PATH}/pstl/LICENSE.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/ParallelSTL RENAME copyright)
endif()
file(GLOB LLVM_TOOL_FILES "${CURRENT_PACKAGES_DIR}/bin/*")
set(LLVM_TOOLS)
foreach(tool_file IN LISTS LLVM_TOOL_FILES)
get_filename_component(tool_file "${tool_file}" NAME)
if(tool_file MATCHES "${LLVM_EXECUTABLE_REGEX}")
list(APPEND LLVM_TOOLS "${CMAKE_MATCH_1}")
endif()
endforeach()
if(LLVM_TOOLS)
vcpkg_copy_tools(TOOL_NAMES ${LLVM_TOOLS} AUTO_CLEAN)
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)

321
ports/llvm/vcpkg.json Normal file
View File

@ -0,0 +1,321 @@
{
"name": "llvm",
"version-string": "11.1.0",
"description": "The LLVM Compiler Infrastructure.",
"homepage": "https://llvm.org",
"supports": "!uwp",
"default-features": [
"clang",
"default-options",
"default-targets",
"lld",
"tools"
],
"features": {
"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-abi-breaking-checks",
"disable-assertions",
"disable-clang-static-analyzer",
"enable-bindings",
"enable-rtti",
"enable-terminfo",
"enable-threads"
]
}
]
},
"default-targets": {
"description": "Build with platform-specific default targets.",
"dependencies": [
{
"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-abi-breaking-checks": {
"description": "Build LLVM with LLVM_ABI_BREAKING_CHECKS=FORCE_OFF."
},
"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-rtti": {
"description": "Build LLVM with run-time type information."
},
"enable-terminfo": {
"description": "Use terminfo database if available."
},
"enable-threads": {
"description": "Use threads if available."
},
"flang": {
"description": "Include Fortran front end.",
"dependencies": [
{
"name": "llvm",
"default-features": false,
"features": [
"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"
]
}
]
},
"parallel-libs": {
"description": "Include parallel-libs project."
},
"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-systemz",
"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-systemz": {
"description": "Build with SystemZ 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."
},
"utils": {
"description": "Build LLVM utils."
}
}
}

View File

@ -3689,8 +3689,8 @@
"port-version": 1
},
"llvm": {
"baseline": "11.0.0",
"port-version": 2
"baseline": "11.1.0",
"port-version": 0
},
"lmdb": {
"baseline": "0.9.24",

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "7b30e5aa5227b4af185b967afbe34e84cf8c7638",
"version-string": "11.1.0",
"port-version": 0
},
{
"git-tree": "308632b643c39d4e6871c550156d218b4cf8d968",
"version-string": "11.0.0",