[llvm] update to 12.0.0, enable zlib and libxml2 (#17302)

* [llvm] update to 12.0.0, enable zlib and libxml2

* [llvm] disable libxml2 by default, arm64-windows should be supported

* [llvm] try to fix build with ffi on Windows #17663

* [llvm] re-enable libxml2

* [llvm] fix formatting

* [llvm] overwrite version

* [mesa] update to v21.1.0

* [llvm] update ci.baseline

* [halide] update to the latest master commit

* [llvm] disable libxml2 port until complete PR #15390

* update versions

* [llvm] fix disabling of external libraries

* update version

* update ci.baseline

* update ci.baseline

* fix typo

* [llvm] fix libxml2 (depends on #17945)

* revert "[halide] update to the latest master commit"

* update versions

* [halide] fix zlib dependency for tools

* update versions

* [halide] update to official release v12.0.0

* update versions

* [halide] update to v12.0.1

* update version

* [mesa] remove llvm from defaults

* update version

* update ci.baseline

* [mesa] update to v21.1.2 and fix build with LLVM on Windows

* [llvm] allow to build libunwind project on Windows

* update versions

* [mesa] update ci.baseline.txt to disable x64-windows-static-md, may be fixed in the PR #18495
This commit is contained in:
Yury Bura 2021-06-30 02:08:28 +03:00 committed by GitHub
parent 75beef03d6
commit c482408411
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
23 changed files with 488 additions and 339 deletions

View File

@ -1,64 +0,0 @@
Source: halide
Version: 11.0.1
Homepage: https://github.com/halide/Halide
Description: Halide is a programming language designed to make it easier to write high-performance image and array processing code on modern machines.
Supports: !uwp
Default-Features: jit
Build-Depends: llvm[enable-rtti,tools,clang]
Feature: jit
Description: Include targets required for jit compilation
Build-Depends: halide[core,target-x86] (x86|x64), halide[core,target-arm] (arm&!arm64), halide[core,target-aarch64] (arm64), halide[target-all] (!x86&!x64&!arm&!arm64)
Feature: target-all
Description: Include all targets
Build-Depends: halide[core,target-aarch64,target-amdgpu,target-arm,target-d3d12compute,target-hexagon,target-metal,target-mips,target-nvptx,target-opencl,target-opengl,target-powerpc,target-riscv,target-x86]
Feature: target-aarch64
Description: Include AArch64 target
Build-Depends: llvm[core,target-aarch64]
Feature: target-amdgpu
Description: Include AMDGPU target
Build-Depends: llvm[core,target-amdgpu]
Feature: target-arm
Description: Include ARM target
Build-Depends: llvm[core,target-arm]
Feature: target-d3d12compute
Description: Include Direct3D 12 Compute target
Feature: target-hexagon
Description: Include Hexagon target
Build-Depends: llvm[core,target-hexagon]
Feature: target-metal
Description: Include Metal target
Feature: target-mips
Description: Include Mips target
Build-Depends: llvm[core,target-mips]
Feature: target-nvptx
Description: Include NVPTX target
Build-Depends: llvm[core,target-nvptx]
Feature: target-opencl
Description: Include OpenCL-C target
Feature: target-opengl
Description: Include OpenGL/GLSL target
Feature: target-powerpc
Description: Include PowerPC target
Build-Depends: llvm[core,target-powerpc]
Feature: target-riscv
Description: Include RISCV target
Build-Depends: llvm[core,target-riscv]
Feature: target-x86
Description: Include X86 target
Build-Depends: llvm[core,target-x86]

View File

@ -8,12 +8,14 @@ set(VCPKG_POLICY_EMPTY_PACKAGE enabled)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO halide/Halide
REF 85c1b91c47ce15aab0d9502d955e48615f3bcee0 # v11.0.1
SHA512 3bfdf9fc82d56d099cf74b6683c0017724c1c4ae791e824f5ef3b4d4c1dcb52dd5adddb740ccf6b073b71fcbb748238f42040071ddb64c155f8fdc2709b8121d
HEAD_REF release/11.x
REF 5dabcaa9effca1067f907f6c8ea212f3d2b1d99a # v12.0.1
SHA512 5ab44703850885561337e23d8b538a5adfe1611e24e8daa4a1313756b4f9dfeb54e89bf8400d46a3340c00234402681b4f44ba3ed5322027fd6cb5dfbd525acd
HEAD_REF release/12.x
)
vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
vcpkg_check_features(
OUT_FEATURE_OPTIONS FEATURE_OPTIONS
FEATURES
target-aarch64 TARGET_AARCH64
target-amdgpu TARGET_AMDGPU
target-arm TARGET_ARM
@ -43,7 +45,7 @@ vcpkg_configure_cmake(
-DHALIDE_INSTALL_CMAKEDIR=share/${PORT}
)
vcpkg_install_cmake()
vcpkg_install_cmake(ADD_BIN_TO_PATH)
vcpkg_copy_tools(
TOOL_NAMES

202
ports/halide/vcpkg.json Normal file
View File

@ -0,0 +1,202 @@
{
"name": "halide",
"version": "12.0.1",
"description": "Halide is a programming language designed to make it easier to write high-performance image and array processing code on modern machines.",
"homepage": "https://github.com/halide/Halide",
"supports": "!uwp",
"dependencies": [
{
"name": "llvm",
"features": [
"clang",
"enable-rtti",
"tools"
]
}
],
"default-features": [
"jit"
],
"features": {
"jit": {
"description": "Include targets required for jit compilation",
"dependencies": [
{
"name": "halide",
"default-features": false,
"features": [
"target-aarch64"
],
"platform": "arm64"
},
{
"name": "halide",
"default-features": false,
"features": [
"target-x86"
],
"platform": "x86 | x64"
},
{
"name": "halide",
"default-features": false,
"features": [
"target-arm"
],
"platform": "arm & !arm64"
},
{
"name": "halide",
"features": [
"target-all"
],
"platform": "!x86 & !x64 & !arm & !arm64"
}
]
},
"target-aarch64": {
"description": "Include AArch64 target",
"dependencies": [
{
"name": "llvm",
"default-features": false,
"features": [
"target-aarch64"
]
}
]
},
"target-all": {
"description": "Include all targets",
"dependencies": [
{
"name": "halide",
"default-features": false,
"features": [
"target-aarch64",
"target-amdgpu",
"target-arm",
"target-d3d12compute",
"target-hexagon",
"target-metal",
"target-mips",
"target-nvptx",
"target-opencl",
"target-opengl",
"target-powerpc",
"target-riscv",
"target-x86"
]
}
]
},
"target-amdgpu": {
"description": "Include AMDGPU target",
"dependencies": [
{
"name": "llvm",
"default-features": false,
"features": [
"target-amdgpu"
]
}
]
},
"target-arm": {
"description": "Include ARM target",
"dependencies": [
{
"name": "llvm",
"default-features": false,
"features": [
"target-arm"
]
}
]
},
"target-d3d12compute": {
"description": "Include Direct3D 12 Compute target"
},
"target-hexagon": {
"description": "Include Hexagon target",
"dependencies": [
{
"name": "llvm",
"default-features": false,
"features": [
"target-hexagon"
]
}
]
},
"target-metal": {
"description": "Include Metal target"
},
"target-mips": {
"description": "Include Mips target",
"dependencies": [
{
"name": "llvm",
"default-features": false,
"features": [
"target-mips"
]
}
]
},
"target-nvptx": {
"description": "Include NVPTX target",
"dependencies": [
{
"name": "llvm",
"default-features": false,
"features": [
"target-nvptx"
]
}
]
},
"target-opencl": {
"description": "Include OpenCL-C target"
},
"target-opengl": {
"description": "Include OpenGL/GLSL target"
},
"target-powerpc": {
"description": "Include PowerPC target",
"dependencies": [
{
"name": "llvm",
"default-features": false,
"features": [
"target-powerpc"
]
}
]
},
"target-riscv": {
"description": "Include RISCV target",
"dependencies": [
{
"name": "llvm",
"default-features": false,
"features": [
"target-riscv"
]
}
]
},
"target-x86": {
"description": "Include X86 target",
"dependencies": [
{
"name": "llvm",
"default-features": false,
"features": [
"target-x86"
]
}
]
}
}
}

View File

@ -1,31 +0,0 @@
llvm/cmake/modules/HandleLLVMOptions.cmake | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/llvm/cmake/modules/HandleLLVMOptions.cmake b/llvm/cmake/modules/HandleLLVMOptions.cmake
index 5ef22eb493ba..3e2f372e80c9 100644
--- a/llvm/cmake/modules/HandleLLVMOptions.cmake
+++ b/llvm/cmake/modules/HandleLLVMOptions.cmake
@@ -426,6 +426,12 @@ if( MSVC )
append("/Zc:inline" CMAKE_C_FLAGS CMAKE_CXX_FLAGS)
+ # Some projects use the __cplusplus preprocessor macro to check support for
+ # a particular version of the C++ standard. When this option is not specified
+ # explicitly, macro's value is "199711L" that implies C++98 Standard.
+ # https://devblogs.microsoft.com/cppblog/msvc-now-correctly-reports-__cplusplus/
+ append("/Zc:__cplusplus" CMAKE_CXX_FLAGS)
+
# Allow users to request PDBs in release mode. CMake offeres the
# RelWithDebInfo configuration, but it uses different optimization settings
# (/Ob1 vs /Ob2 or -O2 vs -O3). LLVM provides this flag so that users can get
@@ -478,6 +484,10 @@ if( MSVC )
endif()
endif()
endif()
+ # By default MSVC has a 2^16 limit on the number of sections in an object file,
+ # but in many objects files need more than that. This flag is to increase the
+ # number of sections.
+ append("/bigobj" CMAKE_CXX_FLAGS)
endif( MSVC )
# Warnings-as-errors handling for GCC-compatible compilers:

View File

@ -1,9 +1,12 @@
openmp/runtime/src/CMakeLists.txt | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/openmp/runtime/src/CMakeLists.txt b/openmp/runtime/src/CMakeLists.txt
index 81275c0483d..61468e048ec 100644
index 822f9ca2b825..814e25864610 100644
--- a/openmp/runtime/src/CMakeLists.txt
+++ b/openmp/runtime/src/CMakeLists.txt
@@ -136,7 +136,7 @@ libomp_get_ldflags(LIBOMP_CONFIGURED_LDFLAGS)
add_library(omp ${LIBOMP_LIBRARY_KIND} ${LIBOMP_SOURCE_FILES})
@@ -157,7 +157,7 @@ else()
endif()
set_target_properties(omp PROPERTIES
- PREFIX "" SUFFIX "" OUTPUT_NAME "${LIBOMP_LIB_FILE}"
@ -11,7 +14,7 @@ index 81275c0483d..61468e048ec 100644
LINK_FLAGS "${LIBOMP_CONFIGURED_LDFLAGS}"
LINKER_LANGUAGE ${LIBOMP_LINKER_LANGUAGE}
)
@@ -215,7 +215,7 @@ if(WIN32)
@@ -232,7 +232,7 @@ if(WIN32)
# Create new import library that is just the previously created one + kmp_import.cpp
add_library(ompimp STATIC ${LIBOMP_GENERATED_IMP_LIB} kmp_import.cpp)
set_target_properties(ompimp PROPERTIES

View File

@ -1,39 +0,0 @@
diff --git a/llvm/lib/CodeGen/GlobalISel/LegalityPredicates.cpp b/llvm/lib/CodeGen/GlobalISel/LegalityPredicates.cpp
--- a/llvm/lib/CodeGen/GlobalISel/LegalityPredicates.cpp
+++ b/llvm/lib/CodeGen/GlobalISel/LegalityPredicates.cpp
@@ -10,6 +10,17 @@
//
//===----------------------------------------------------------------------===//
+// Disable optimizations to work around MSVC debug mode bug in 32-bit:
+// https://developercommunity.visualstudio.com/content/problem/1179643/msvc-copies-overaligned-non-trivially-copyable-par.html
+// FIXME: Remove this when the issue is closed.
+#if defined(_MSC_VER) && !defined(__clang__) && defined(_M_IX86)
+// We have to disable runtime checks in order to enable optimizations. This is
+// done for the entire file because the problem is actually observed in STL
+// template functions.
+#pragma runtime_checks("", off)
+#pragma optimize("gs", on)
+#endif
+
#include "llvm/CodeGen/GlobalISel/LegalizerInfo.h"
using namespace llvm;
diff --git a/llvm/unittests/CodeGen/GlobalISel/LegalizerInfoTest.cpp b/llvm/unittests/CodeGen/GlobalISel/LegalizerInfoTest.cpp
--- a/llvm/unittests/CodeGen/GlobalISel/LegalizerInfoTest.cpp
+++ b/llvm/unittests/CodeGen/GlobalISel/LegalizerInfoTest.cpp
@@ -406,3 +406,13 @@
32, 8, AtomicOrdering::NotAtomic }));
}
}
+
+// This code sequence doesn't do anything, but it covers a previously uncovered
+// codepath that used to crash in MSVC x86_32 debug mode.
+TEST(LegalizerInfoTest, MSVCDebugMiscompile) {
+ const LLT S1 = LLT::scalar(1);
+ const LLT P0 = LLT::pointer(0, 32);
+ LegalizerInfo LI;
+ auto Builder = LI.getActionDefinitionsBuilder(TargetOpcode::G_PTRTOINT);
+ (void)Builder.legalForCartesianProduct({S1}, {P0});
+}

View File

@ -2,10 +2,10 @@
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/libcxx/src/CMakeLists.txt b/libcxx/src/CMakeLists.txt
index 2001c09761d9..e17de934534f 100644
index 9965104cb5b2..0d2a33c6b33c 100644
--- a/libcxx/src/CMakeLists.txt
+++ b/libcxx/src/CMakeLists.txt
@@ -364,9 +364,7 @@ if (LIBCXX_INSTALL_LIBRARY)
@@ -372,9 +372,7 @@ endif()
# 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)

View File

@ -74,10 +74,10 @@ index ec0702d76f18..9a34a09921b1 100644
endforeach()
diff --git a/clang/tools/scan-view/CMakeLists.txt b/clang/tools/scan-view/CMakeLists.txt
index 22edb974bac7..60f69d358fb9 100644
index dd3d33439299..ded0b5530ad9 100644
--- a/clang/tools/scan-view/CMakeLists.txt
+++ b/clang/tools/scan-view/CMakeLists.txt
@@ -22,7 +22,7 @@ if(CLANG_INSTALL_SCANVIEW)
@@ -19,7 +19,7 @@ if(CLANG_INSTALL_SCANVIEW)
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/bin/${BinFile})
list(APPEND Depends ${CMAKE_BINARY_DIR}/bin/${BinFile})
install(PROGRAMS bin/${BinFile}
@ -100,10 +100,10 @@ index 62f2de0cb15c..38dc821c76de 100644
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
index ba36a234babf..1197a8d8ff32 100644
--- a/flang/cmake/modules/AddFlang.cmake
+++ b/flang/cmake/modules/AddFlang.cmake
@@ -120,7 +120,7 @@ macro(add_flang_tool name)
@@ -119,7 +119,7 @@ macro(add_flang_tool name)
install(TARGETS ${name}
${export_to_flangtargets}
@ -113,24 +113,24 @@ index 7fe8b7e9f406..b338dddd0850 100644
if(NOT LLVM_ENABLE_IDE)
diff --git a/flang/tools/f18/CMakeLists.txt b/flang/tools/f18/CMakeLists.txt
index f3af6e8312fe..aa58108b332b 100644
index 2e5350aecdc6..b4ab145846b5 100644
--- a/flang/tools/f18/CMakeLists.txt
+++ b/flang/tools/f18/CMakeLists.txt
@@ -58,7 +58,7 @@ endforeach()
@@ -63,12 +63,12 @@ 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)
# This flang shell script will only work in a POSIX shell.
if (NOT WIN32)
file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/flang
DESTINATION ${CMAKE_BINARY_DIR}/bin
FILE_PERMISSIONS OWNER_EXECUTE OWNER_READ OWNER_WRITE)
- install(PROGRAMS ${CMAKE_BINARY_DIR}/bin/flang DESTINATION bin)
+ install(PROGRAMS ${CMAKE_BINARY_DIR}/bin/flang DESTINATION tools/llvm)
endif()
diff --git a/lld/cmake/modules/AddLLD.cmake b/lld/cmake/modules/AddLLD.cmake
index 23df41312403..86f4eafeed07 100644
--- a/lld/cmake/modules/AddLLD.cmake
@ -145,7 +145,7 @@ index 23df41312403..86f4eafeed07 100644
if(NOT CMAKE_CONFIGURATION_TYPES)
diff --git a/lld/tools/lld/CMakeLists.txt b/lld/tools/lld/CMakeLists.txt
index e6f72fcd3488..0e5a2c81e825 100644
index 5cff736ff57f..32f43bc1c9be 100644
--- a/lld/tools/lld/CMakeLists.txt
+++ b/lld/tools/lld/CMakeLists.txt
@@ -21,7 +21,7 @@ target_link_libraries(lld
@ -156,7 +156,7 @@ index e6f72fcd3488..0e5a2c81e825 100644
+ RUNTIME DESTINATION tools/llvm)
if(NOT LLD_SYMLINKS_TO_CREATE)
set(LLD_SYMLINKS_TO_CREATE lld-link ld.lld ld64.lld wasm-ld)
set(LLD_SYMLINKS_TO_CREATE
diff --git a/lldb/cmake/modules/AddLLDB.cmake b/lldb/cmake/modules/AddLLDB.cmake
index 4ed5c647c5d2..cb31901dddbb 100644
--- a/lldb/cmake/modules/AddLLDB.cmake

View File

@ -0,0 +1,16 @@
llvm/cmake/config-ix.cmake | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/llvm/cmake/config-ix.cmake b/llvm/cmake/config-ix.cmake
index 818fafbce148..66fc9f509ac7 100644
--- a/llvm/cmake/config-ix.cmake
+++ b/llvm/cmake/config-ix.cmake
@@ -335,7 +335,7 @@ if( LLVM_ENABLE_FFI )
message(FATAL_ERROR "libffi includes are not found.")
endif()
- find_library(FFI_LIBRARY_PATH ffi PATHS ${FFI_LIBRARY_DIR})
+ find_library(FFI_LIBRARY_PATH NAMES ffi libffi PATHS ${FFI_LIBRARY_DIR})
if( NOT FFI_LIBRARY_PATH )
message(FATAL_ERROR "libffi is not found.")
endif()

View File

@ -0,0 +1,34 @@
clang/tools/c-index-test/CMakeLists.txt | 6 +-----
lldb/cmake/modules/LLDBConfig.cmake | 2 +-
2 files changed, 2 insertions(+), 6 deletions(-)
diff --git a/clang/tools/c-index-test/CMakeLists.txt b/clang/tools/c-index-test/CMakeLists.txt
index ceef4b086..40b9e9955 100644
--- a/clang/tools/c-index-test/CMakeLists.txt
+++ b/clang/tools/c-index-test/CMakeLists.txt
@@ -40,11 +40,7 @@ set_target_properties(c-index-test
# If libxml2 is available, make it available for c-index-test.
if (CLANG_HAVE_LIBXML)
- if ((CMAKE_OSX_SYSROOT) AND (EXISTS ${CMAKE_OSX_SYSROOT}/${LIBXML2_INCLUDE_DIR}))
- include_directories(SYSTEM ${CMAKE_OSX_SYSROOT}/${LIBXML2_INCLUDE_DIR})
- else()
- include_directories(SYSTEM ${LIBXML2_INCLUDE_DIR})
- endif()
+ include_directories(SYSTEM ${LIBXML2_INCLUDE_DIRS})
target_link_libraries(c-index-test PRIVATE ${LIBXML2_LIBRARIES})
endif()
diff --git a/lldb/cmake/modules/LLDBConfig.cmake b/lldb/cmake/modules/LLDBConfig.cmake
index 2fdf1502d..beeeeb9b1 100644
--- a/lldb/cmake/modules/LLDBConfig.cmake
+++ b/lldb/cmake/modules/LLDBConfig.cmake
@@ -214,7 +214,7 @@ if (LLDB_ENABLE_LZMA)
endif()
if (LLDB_ENABLE_LIBXML2)
- include_directories(${LIBXML2_INCLUDE_DIR})
+ include_directories(${LIBXML2_INCLUDE_DIRS})
endif()
include_directories(BEFORE

View File

@ -1,4 +1,4 @@
set(LLVM_VERSION "11.1.0")
set(LLVM_VERSION "12.0.0")
vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
@ -6,18 +6,18 @@ vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO llvm/llvm-project
REF llvmorg-${LLVM_VERSION}
SHA512 9a8ce022a935eed42fa71a224f2a207122aadcbef58ee855fdb4825f879e7d028e4dcff22c19b9d336db1c8bf63fb84372d44981acf84615f757e54306c92b81
SHA512 0cff02155c5ac0d6db2b72d60d9819d5b5dd859663b45f721b1c7540239c2fceb1f57d9173f6870c49de851c242ed8e85c5c6d6577a1f8092a7c5dcd12513b26
HEAD_REF master
PATCHES
0001-add-msvc-options.patch # Fixed in LLVM 12.0.0
0002-fix-install-paths.patch # This patch fixes paths in ClangConfig.cmake, LLVMConfig.cmake, LLDConfig.cmake etc.
0003-fix-openmp-debug.patch
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
0010-fix-libffi.patch
0011-fix-libxml2.patch
)
vcpkg_check_features(
@ -43,6 +43,25 @@ 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.
@ -119,9 +138,6 @@ if("libcxxabi" IN_LIST FEATURES)
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)
@ -204,9 +220,6 @@ vcpkg_configure_cmake(
-DLLVM_BUILD_EXAMPLES=OFF
-DLLVM_INCLUDE_TESTS=OFF
-DLLVM_BUILD_TESTS=OFF
# Disable optional dependencies to libxml2 and zlib.
-DLLVM_ENABLE_LIBXML2=OFF
-DLLVM_ENABLE_ZLIB=OFF
# Force TableGen to be built with optimization. This will significantly improve build time.
-DLLVM_OPTIMIZED_TABLEGEN=ON
"-DLLVM_ENABLE_PROJECTS=${LLVM_ENABLE_PROJECTS}"

View File

@ -1,6 +1,6 @@
{
"name": "llvm",
"version-string": "11.1.0",
"version-string": "12.0.0",
"description": "The LLVM Compiler Infrastructure.",
"homepage": "https://llvm.org",
"supports": "!uwp",
@ -42,9 +42,9 @@
"disable-assertions",
"disable-clang-static-analyzer",
"enable-bindings",
"enable-rtti",
"enable-terminfo",
"enable-threads"
"enable-threads",
"enable-zlib"
]
}
]
@ -122,6 +122,12 @@
"libffi"
]
},
"enable-libxml2": {
"description": "Build with LibXml2.",
"dependencies": [
"libxml2"
]
},
"enable-rtti": {
"description": "Build LLVM with run-time type information."
},
@ -131,6 +137,12 @@
"enable-threads": {
"description": "Use threads if available."
},
"enable-zlib": {
"description": "Build with ZLib.",
"dependencies": [
"zlib"
]
},
"flang": {
"description": "Include Fortran front end.",
"dependencies": [

View File

@ -1,32 +0,0 @@
Source: mesa
Version: 20.2.2
Port-Version: 1
Homepage: https://www.mesa3d.org/
Description: Mesa - The 3D Graphics Library
Build-Depends: zlib, zstd, tool-meson
Default-Features: default-features
Supports: !(windows&arm)
Feature: default-features
Description: Platform dependent default features
Build-Depends: mesa[core,llvm](x64), mesa[core,opengl], mesa[core,gles1], mesa[core,gles2]
Feature: llvm
Description: Build with llvmpipe
Build-Depends: llvm[core]
Feature: gles1
Description: Build support for OpenGL ES 1.x
Build-Depends: mesa[core]
Feature: gles2
Description: Build support for OpenGL ES 2.x and 3.x
Build-Depends: mesa[core]
Feature: opengl
Description: Build support for OpenGL (all versions)
Build-Depends: mesa[core]
Feature: egl
Description: Build support for EGL platform
Build-Depends: mesa[core]

View File

@ -1,80 +0,0 @@
diff --git a/include/meson.build b/include/meson.build
index a64d9373a92..22c50eb5eb7 100644
--- a/include/meson.build
+++ b/include/meson.build
@@ -89,7 +89,7 @@ if with_egl
)
endif
-if with_osmesa != 'none'
+if with_osmesa != []
install_headers('GL/osmesa.h', subdir : 'GL')
endif
diff --git a/meson.build b/meson.build
index 898d025f066..d73818e7ce5 100644
--- a/meson.build
+++ b/meson.build
@@ -444,7 +444,7 @@ if with_any_vk and (with_platform_x11 and not with_dri3)
error('Vulkan drivers require dri3 for X11 support')
endif
if with_dri
- if with_glx == 'disabled' and not with_egl and not with_gbm and with_osmesa != 'classic'
+ if with_glx == 'disabled' and not with_egl and not with_gbm and not with_osmesa.contains('classic')
error('building dri drivers require at least one windowing system or classic osmesa')
endif
endif
@@ -1508,8 +1508,8 @@ else
dep_unwind = null_dep
endif
-if with_osmesa != 'none'
- if with_osmesa == 'gallium' and not with_gallium_softpipe
+if with_osmesa != []
+ if with_osmesa.contains('gallium') and not with_gallium_softpipe
error('OSMesa gallium requires gallium softpipe or llvmpipe.')
endif
if host_machine.system() == 'windows'
@@ -1710,10 +1710,10 @@ lines = ['',
with_gles2 ? 'yes' : 'no'),
]
-if with_osmesa != 'none'
+if with_osmesa != []
lines += ''
suffix = ''
- if with_osmesa == 'gallium'
+ if with_osmesa.contains('gallium')
suffix = '(Gallium)'
endif
lines += 'OSMesa: lib' + osmesa_lib_name + suffix
diff --git a/meson_options.txt b/meson_options.txt
index 626baf3d5c2..cb3dc3b383f 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -295,9 +295,9 @@ option(
)
option(
'osmesa',
- type : 'combo',
- value : 'none',
- choices : ['none', 'classic', 'gallium'],
+ type : 'array',
+ value : [],
+ choices : ['classic', 'gallium'],
description : 'Build OSmesa.'
)
option(
diff --git a/src/mesa/meson.build b/src/mesa/meson.build
index fa5c54cc6fb..f7b223862fa 100644
--- a/src/mesa/meson.build
+++ b/src/mesa/meson.build
@@ -744,7 +744,7 @@ libmesa_gallium = static_library(
)
subdir('drivers/dri')
-if with_osmesa == 'classic'
+if with_osmesa.contains('classic')
subdir('drivers/osmesa')
endif
if with_glx == 'xlib'

View File

@ -1,14 +1,14 @@
# Build-Depends: From X Window PR: zstd, drm (!windows), elfutils (!windows), wayland (!windows), wayland-protocols (!windows), xdamage, xshmfence (!windows), x11, xcb, xfixes, xext, xxf86vm, xrandr, xv, xvmc (!windows), egl-registry, opengl-registry, tool-meson
# Required LLVM modules: LLVM (modules: bitwriter, core, coroutines, engine, executionengine, instcombine, mcdisassembler, mcjit, scalaropts, transformutils) found: YES
#patches are from https://github.com/pal1000/mesa-dist-win/tree/master/patches
set(PATCHES dual-osmesa.patch
dual-osmesa-part2.patch
swravx512.patch
)
# Patches are from https://github.com/pal1000/mesa-dist-win/tree/master/patches
set(PATCHES
# Fix swrAVX512 build
swravx512-post-static-link.patch
)
vcpkg_check_linkage(ONLY_DYNAMIC_CRT)
IF(VCPKG_TARGET_IS_WINDOWS)
if(VCPKG_TARGET_IS_WINDOWS)
set(VCPKG_POLICY_DLLS_IN_STATIC_LIBRARY enabled) # some parts of this port can only build as a shared library.
endif()
@ -16,10 +16,10 @@ vcpkg_from_gitlab(
GITLAB_URL https://gitlab.freedesktop.org
OUT_SOURCE_PATH SOURCE_PATH
REPO mesa/mesa
REF df2977f871fc70ebd6be48c180d117189b5861b5 #v20.2.2
SHA512 6c51d817fe265ea6405c4e8afbb516f30cf697d00cf39f162473ea8a59c202bcdfbfe4b6f7c4a6fd2d4e98eb4a1604cb5e0a02558338bf415e53fe5421cbfbbe
HEAD_REF master # branch name
PATCHES ${PATCHES} #patch name
REF mesa-21.1.2
SHA512 746ef292dd93ddd23ab34e18e87196db63302defd99357f31ac24876003c75b32cfa8ed38d0292271cd9142a056f6a6549ffcd0f086d0c69c4ff83ac7195188c
HEAD_REF master
PATCHES ${PATCHES}
)
vcpkg_find_acquire_program(PYTHON3)
get_filename_component(PYTHON3_DIR "${PYTHON3}" DIRECTORY)
@ -115,9 +115,7 @@ list(APPEND MESA_OPTIONS -Dvalgrind=disabled)
list(APPEND MESA_OPTIONS -Dglvnd=false)
list(APPEND MESA_OPTIONS -Dglx=disabled)
list(APPEND MESA_OPTIONS -Dgbm=disabled)
#list(APPEND MESA_OPTIONS -Dosmesa=['gallium','classic']) # classic has compiler errors.
list(APPEND MESA_OPTIONS -Dosmesa=['gallium'])
list(APPEND MESA_OPTIONS -Dosmesa=true)
if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
list(APPEND MESA_OPTIONS -Dshared-swr=false)
@ -160,9 +158,9 @@ endif()
list(APPEND MESA_OPTIONS -Dshared-glapi=enabled) #shared GLAPI required when building two or more of the following APIs - opengl, gles1 gles2
if(VCPKG_TARGET_IS_WINDOWS)
list(APPEND MESA_OPTIONS -Dplatforms=['windows'])
list(APPEND MESA_OPTIONS -Dmicrosoft-clc=disabled)
endif()
vcpkg_configure_meson(

View File

@ -1,17 +1,8 @@
diff --git a/src/gallium/drivers/swr/meson.build b/src/gallium/drivers/swr/meson.build
index 2fad60365a3..dce7f656d64 100644
index 11ea7d3f43e..f34e88b1eec 100644
--- a/src/gallium/drivers/swr/meson.build
+++ b/src/gallium/drivers/swr/meson.build
@@ -249,7 +249,7 @@ endif
if with_swr_arches.contains('knl')
swr_knl_args = cpp.first_supported_argument(
- '-march=knl', '-target-cpu=mic-knl', '-xMIC-AVX512',
+ '-march=knl', '-target-cpu=mic-knl', '-xMIC-AVX512', '/arch:AVX512',
)
if swr_knl_args == []
error('Cannot find KNL support for swr.')
@@ -274,7 +274,7 @@ endif
@@ -213,7 +213,7 @@ endif
if with_swr_arches.contains('skx')
swr_skx_args = cpp.first_supported_argument(
@ -20,3 +11,12 @@ index 2fad60365a3..dce7f656d64 100644
)
if swr_skx_args == []
error('Cannot find SKX support for swr.')
@@ -252,7 +252,7 @@ endif
if with_swr_arches.contains('knl')
swr_knl_args = cpp.first_supported_argument(
- '-march=knl', '-target-cpu=mic-knl', '-xMIC-AVX512',
+ '-march=knl', '-target-cpu=mic-knl', '-xMIC-AVX512', '/arch:AVX512',
)
if swr_knl_args == []
error('Cannot find KNL support for swr.')

99
ports/mesa/vcpkg.json Normal file
View File

@ -0,0 +1,99 @@
{
"name": "mesa",
"version": "21.1.2",
"description": "Mesa - The 3D Graphics Library",
"homepage": "https://www.mesa3d.org/",
"supports": "!(windows & arm)",
"dependencies": [
"tool-meson",
"zlib",
"zstd"
],
"default-features": [
"default-features"
],
"features": {
"default-features": {
"description": "Platform dependent default features",
"dependencies": [
{
"name": "mesa",
"default-features": false,
"features": [
"gles1"
]
},
{
"name": "mesa",
"default-features": false,
"features": [
"gles2"
]
},
{
"name": "mesa",
"default-features": false,
"features": [
"opengl"
]
},
{
"name": "mesa",
"default-features": false,
"features": [
"llvm"
],
"platform": "x64"
}
]
},
"egl": {
"description": "Build support for EGL platform",
"dependencies": [
{
"name": "mesa",
"default-features": false
}
]
},
"gles1": {
"description": "Build support for OpenGL ES 1.x",
"dependencies": [
{
"name": "mesa",
"default-features": false
}
]
},
"gles2": {
"description": "Build support for OpenGL ES 2.x and 3.x",
"dependencies": [
{
"name": "mesa",
"default-features": false
}
]
},
"llvm": {
"description": "Build with llvmpipe",
"dependencies": [
{
"name": "llvm",
"default-features": false,
"features": [
"libclc"
]
}
]
},
"opengl": {
"description": "Build support for OpenGL (all versions)",
"dependencies": [
{
"name": "mesa",
"default-features": false
}
]
}
}
}

View File

@ -826,8 +826,8 @@ live555:x64-windows-static-md=fail
live555:x86-windows=fail
llgl:arm-uwp=fail
llgl:x64-uwp=fail
llvm:arm-uwp=fail
llvm:arm64-windows=fail
llvm:arm-uwp=fail
llvm:x64-uwp=fail
lmdb:arm-uwp=fail
lmdb:x64-uwp=fail
@ -894,6 +894,7 @@ memorymodule:x64-osx=fail
memorymodule:x64-uwp=fail
# Due to static crt.
mesa:x64-windows-static=fail
mesa:x64-windows-static-md=fail
# Missing dependent libraries.
mesa:x64-linux=fail
mesa:x64-osx=fail

View File

@ -2457,7 +2457,7 @@
"port-version": 0
},
"halide": {
"baseline": "11.0.1",
"baseline": "12.0.1",
"port-version": 0
},
"happly": {
@ -3777,7 +3777,7 @@
"port-version": 1
},
"llvm": {
"baseline": "11.1.0",
"baseline": "12.0.0",
"port-version": 0
},
"lmdb": {
@ -3961,8 +3961,8 @@
"port-version": 0
},
"mesa": {
"baseline": "20.2.2",
"port-version": 1
"baseline": "21.1.2",
"port-version": 0
},
"meschach": {
"baseline": "1.2b-3",

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "50e2c4835a57bb4a172c4b82b2a0e0a3077088ab",
"version": "12.0.1",
"port-version": 0
},
{
"git-tree": "eea72c77e90fcc209eafe9906f8b035ec64af984",
"version-string": "11.0.1",

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "6597ffba14111050d8e68af4852ea5766c81a78c",
"version-string": "12.0.0",
"port-version": 0
},
{
"git-tree": "7b30e5aa5227b4af185b967afbe34e84cf8c7638",
"version-string": "11.1.0",

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "58f52d4a0724c6d4d393b48e232ca323d8670df6",
"version": "21.1.2",
"port-version": 0
},
{
"git-tree": "2966b4bb6816c1fa46e65c61f4cb30efb5c8381a",
"version-string": "20.2.2",