diff --git a/ports/halide/CONTROL b/ports/halide/CONTROL deleted file mode 100644 index 8ffcc93dd99d51..00000000000000 --- a/ports/halide/CONTROL +++ /dev/null @@ -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] - diff --git a/ports/halide/portfile.cmake b/ports/halide/portfile.cmake index b8e08adda471ef..83e8399aa58bab 100644 --- a/ports/halide/portfile.cmake +++ b/ports/halide/portfile.cmake @@ -8,25 +8,27 @@ 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 - target-aarch64 TARGET_AARCH64 - target-amdgpu TARGET_AMDGPU - target-arm TARGET_ARM - target-d3d12compute TARGET_D3D12COMPUTE - target-hexagon TARGET_HEXAGON - target-metal TARGET_METAL - target-mips TARGET_MIPS - target-nvptx TARGET_NVPTX - target-opencl TARGET_OPENCL - target-opengl TARGET_OPENGL - target-powerpc TARGET_POWERPC - target-riscv TARGET_RISCV - target-x86 TARGET_X86 +vcpkg_check_features( + OUT_FEATURE_OPTIONS FEATURE_OPTIONS + FEATURES + target-aarch64 TARGET_AARCH64 + target-amdgpu TARGET_AMDGPU + target-arm TARGET_ARM + target-d3d12compute TARGET_D3D12COMPUTE + target-hexagon TARGET_HEXAGON + target-metal TARGET_METAL + target-mips TARGET_MIPS + target-nvptx TARGET_NVPTX + target-opencl TARGET_OPENCL + target-opengl TARGET_OPENGL + target-powerpc TARGET_POWERPC + target-riscv TARGET_RISCV + target-x86 TARGET_X86 ) vcpkg_configure_cmake( @@ -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 diff --git a/ports/halide/vcpkg.json b/ports/halide/vcpkg.json new file mode 100644 index 00000000000000..c66fef61b0da60 --- /dev/null +++ b/ports/halide/vcpkg.json @@ -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" + ] + } + ] + } + } +} diff --git a/ports/llvm/0001-add-msvc-options.patch b/ports/llvm/0001-add-msvc-options.patch deleted file mode 100644 index be5ad818964b2b..00000000000000 --- a/ports/llvm/0001-add-msvc-options.patch +++ /dev/null @@ -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: diff --git a/ports/llvm/0003-fix-openmp-debug.patch b/ports/llvm/0003-fix-openmp-debug.patch index 577785afdb2492..adf3c8ad01289e 100644 --- a/ports/llvm/0003-fix-openmp-debug.patch +++ b/ports/llvm/0003-fix-openmp-debug.patch @@ -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 diff --git a/ports/llvm/0006-workaround-msvc-bug.patch b/ports/llvm/0006-workaround-msvc-bug.patch deleted file mode 100644 index db1574b9ce43d3..00000000000000 --- a/ports/llvm/0006-workaround-msvc-bug.patch +++ /dev/null @@ -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}); -+} - diff --git a/ports/llvm/0008-fix-libcxx-install.patch b/ports/llvm/0008-fix-libcxx-install.patch index 3af957eaf59480..ec4019dc2f86f4 100644 --- a/ports/llvm/0008-fix-libcxx-install.patch +++ b/ports/llvm/0008-fix-libcxx-install.patch @@ -2,17 +2,17 @@ 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) - # 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 $ -- # after we required CMake 3.0. -- install(FILES "${LIBCXX_LIBRARY_DIR}/libc++${CMAKE_SHARED_LIBRARY_SUFFIX}" -+ install(FILES "$" - DESTINATION ${LIBCXX_INSTALL_PREFIX}${LIBCXX_INSTALL_LIBRARY_DIR} - COMPONENT libcxx) - endif() +@@ -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) +- # Replace the libc++ filename with $ +- # after we required CMake 3.0. +- install(FILES "${LIBCXX_LIBRARY_DIR}/libc++${CMAKE_SHARED_LIBRARY_SUFFIX}" ++ install(FILES "$" + DESTINATION ${LIBCXX_INSTALL_PREFIX}${LIBCXX_INSTALL_LIBRARY_DIR} + COMPONENT libcxx) + endif() diff --git a/ports/llvm/0009-fix-tools-install-path.patch b/ports/llvm/0009-fix-tools-install-path.patch index eb6c75bd62d2ab..b544feec08ede3 100644 --- a/ports/llvm/0009-fix-tools-install-path.patch +++ b/ports/llvm/0009-fix-tools-install-path.patch @@ -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 diff --git a/ports/llvm/0010-fix-libffi.patch b/ports/llvm/0010-fix-libffi.patch new file mode 100644 index 00000000000000..e98825595d3c69 --- /dev/null +++ b/ports/llvm/0010-fix-libffi.patch @@ -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() diff --git a/ports/llvm/0011-fix-libxml2.patch b/ports/llvm/0011-fix-libxml2.patch new file mode 100644 index 00000000000000..b5deff09f9b60f --- /dev/null +++ b/ports/llvm/0011-fix-libxml2.patch @@ -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 diff --git a/ports/llvm/portfile.cmake b/ports/llvm/portfile.cmake index 356a25bf1792bf..c242f99e489629 100644 --- a/ports/llvm/portfile.cmake +++ b/ports/llvm/portfile.cmake @@ -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}" diff --git a/ports/llvm/vcpkg.json b/ports/llvm/vcpkg.json index 4590e5111dcd05..06ef3712bba345 100644 --- a/ports/llvm/vcpkg.json +++ b/ports/llvm/vcpkg.json @@ -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": [ diff --git a/ports/mesa/CONTROL b/ports/mesa/CONTROL deleted file mode 100644 index 8ad3e5474f40e4..00000000000000 --- a/ports/mesa/CONTROL +++ /dev/null @@ -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] \ No newline at end of file diff --git a/ports/mesa/dual-osmesa-part2.patch b/ports/mesa/dual-osmesa-part2b.patch similarity index 100% rename from ports/mesa/dual-osmesa-part2.patch rename to ports/mesa/dual-osmesa-part2b.patch diff --git a/ports/mesa/dual-osmesa.patch b/ports/mesa/dual-osmesa.patch deleted file mode 100644 index 8acebe64b57d7b..00000000000000 --- a/ports/mesa/dual-osmesa.patch +++ /dev/null @@ -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' diff --git a/ports/mesa/portfile.cmake b/ports/mesa/portfile.cmake index 9461dc2c598740..0409a61d825f91 100644 --- a/ports/mesa/portfile.cmake +++ b/ports/mesa/portfile.cmake @@ -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( diff --git a/ports/mesa/swravx512.patch b/ports/mesa/swravx512-post-static-link.patch similarity index 87% rename from ports/mesa/swravx512.patch rename to ports/mesa/swravx512-post-static-link.patch index c1085252f1b2df..ac88d9bd738c58 100644 --- a/ports/mesa/swravx512.patch +++ b/ports/mesa/swravx512-post-static-link.patch @@ -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.') diff --git a/ports/mesa/vcpkg.json b/ports/mesa/vcpkg.json new file mode 100644 index 00000000000000..60db1d7a724c59 --- /dev/null +++ b/ports/mesa/vcpkg.json @@ -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 + } + ] + } + } +} diff --git a/scripts/ci.baseline.txt b/scripts/ci.baseline.txt index 0e9115309a4272..df6bddb00ddf2c 100644 --- a/scripts/ci.baseline.txt +++ b/scripts/ci.baseline.txt @@ -839,8 +839,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 @@ -906,6 +906,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 diff --git a/versions/baseline.json b/versions/baseline.json index 1d19fbd847081a..1aaba1fe5ad803 100644 --- a/versions/baseline.json +++ b/versions/baseline.json @@ -2453,7 +2453,7 @@ "port-version": 0 }, "halide": { - "baseline": "11.0.1", + "baseline": "12.0.1", "port-version": 0 }, "happly": { @@ -3769,7 +3769,7 @@ "port-version": 1 }, "llvm": { - "baseline": "11.1.0", + "baseline": "12.0.0", "port-version": 0 }, "lmdb": { @@ -3953,8 +3953,8 @@ "port-version": 0 }, "mesa": { - "baseline": "20.2.2", - "port-version": 1 + "baseline": "21.1.2", + "port-version": 0 }, "meschach": { "baseline": "1.2b-3", diff --git a/versions/h-/halide.json b/versions/h-/halide.json index ba54cd36986d1d..9d1bf20db20a67 100644 --- a/versions/h-/halide.json +++ b/versions/h-/halide.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "50e2c4835a57bb4a172c4b82b2a0e0a3077088ab", + "version": "12.0.1", + "port-version": 0 + }, { "git-tree": "eea72c77e90fcc209eafe9906f8b035ec64af984", "version-string": "11.0.1", diff --git a/versions/l-/llvm.json b/versions/l-/llvm.json index fb9e68ce977683..843314d7c9c96e 100644 --- a/versions/l-/llvm.json +++ b/versions/l-/llvm.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "6597ffba14111050d8e68af4852ea5766c81a78c", + "version-string": "12.0.0", + "port-version": 0 + }, { "git-tree": "7b30e5aa5227b4af185b967afbe34e84cf8c7638", "version-string": "11.1.0", diff --git a/versions/m-/mesa.json b/versions/m-/mesa.json index b28bb72de859e0..aeb14f4b6cb1fd 100644 --- a/versions/m-/mesa.json +++ b/versions/m-/mesa.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "58f52d4a0724c6d4d393b48e232ca323d8670df6", + "version": "21.1.2", + "port-version": 0 + }, { "git-tree": "2966b4bb6816c1fa46e65c61f4cb30efb5c8381a", "version-string": "20.2.2",