diff options
| -rw-r--r-- | ports/halide/CONTROL | 80 | ||||
| -rw-r--r-- | ports/halide/fix-install-path.patch | 35 | ||||
| -rw-r--r-- | ports/halide/portfile.cmake | 103 | ||||
| -rw-r--r-- | ports/halide/usage | 14 | ||||
| -rw-r--r-- | ports/llvm/CONTROL | 9 | ||||
| -rw-r--r-- | ports/llvm/portfile.cmake | 78 | ||||
| -rw-r--r-- | scripts/ci.baseline.txt | 3 |
7 files changed, 133 insertions, 189 deletions
diff --git a/ports/halide/CONTROL b/ports/halide/CONTROL index fe1f94474..5de3a27db 100644 --- a/ports/halide/CONTROL +++ b/ports/halide/CONTROL @@ -1,49 +1,63 @@ Source: halide
-Version: master_2020_03_07
+Version: 10.0.0
Homepage: https://github.com/halide/Halide
-Description: Halide is a programming language designed to make it easier to write high-performance image processing code on modern machines.
-Build-Depends: llvm[tools], openblas
+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: app
-Description: app support
+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: tutorials
-Description: tutorials support
+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: utils
-Description: utils
+Feature: target-aarch64
+Description: Include AArch64 target
+Build-Depends: llvm[core,target-aarch64]
-Feature: nativeclient
-Description: nativeclient
+Feature: target-amdgpu
+Description: Include AMDGPU target
+Build-Depends: llvm[core,target-amdgpu]
-Feature: hexagon
-Description: hexagon
+Feature: target-arm
+Description: Include ARM target
+Build-Depends: llvm[core,target-arm]
-Feature: metal
-Description: metal support
+Feature: target-d3d12compute
+Description: Include Direct3D 12 Compute target
-Feature: mips
-Description: mips support
+Feature: target-hexagon
+Description: Include Hexagon target
+Build-Depends: llvm[core,target-hexagon]
-Feature: powerpc
-Description: powerpc support
+Feature: target-metal
+Description: Include Metal target
-Feature: ptx
-Description: ptx support
+Feature: target-mips
+Description: Include Mips target
+Build-Depends: llvm[core,target-mips]
-Feature: opencl
-Build-Depends: opencl
-Description: opencl support
+Feature: target-nvptx
+Description: Include NVPTX target
+Build-Depends: llvm[core,target-nvptx]
-Feature: opengl
-Build-Depends: opengl
-Description: opengl support
+Feature: target-opencl
+Description: Include OpenCL-C target
-Feature: rtti
-Description: rtti support
+Feature: target-opengl
+Description: Include OpenGL/GLSL target
-Feature: docs
-Description: docs
+Feature: target-powerpc
+Description: Include PowerPC target
+Build-Depends: llvm[core,target-powerpc]
-Feature: test
-Description: test
\ No newline at end of file +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/fix-install-path.patch b/ports/halide/fix-install-path.patch deleted file mode 100644 index 5fb24ea45..000000000 --- a/ports/halide/fix-install-path.patch +++ /dev/null @@ -1,35 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 577b61ed2..7c6dd8ac4 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -432,7 +432,7 @@ install(FILES - DESTINATION include) - - install(DIRECTORY tutorial -- DESTINATION . -+ DESTINATION share/halide - FILES_MATCHING - PATTERN "*.cpp" - PATTERN "*.h" -@@ -463,10 +463,10 @@ install(FILES - README.md - README_rungen.md - README_webassembly.md -- DESTINATION .) -+ DESTINATION share/halide) - - # ---- halide.cmake --install(FILES halide.cmake DESTINATION .) -+install(FILES halide.cmake DESTINATION share/halide) - - # ---- halide_config - file(GLOB FILES "${Halide_SOURCE_DIR}/tools/halide_config.*.tpl") -@@ -475,7 +475,7 @@ foreach(F ${FILES}) - string(REGEX REPLACE "\\.tpl$" "" FNAME "${FNAME}") # Strip .tpl extension - configure_file("${F}" "${CMAKE_BINARY_DIR}/${FNAME}" @ONLY) - install(FILES "${CMAKE_BINARY_DIR}/${FNAME}" -- DESTINATION .) -+ DESTINATION share/halide) - endforeach() - - add_custom_target(distrib diff --git a/ports/halide/portfile.cmake b/ports/halide/portfile.cmake index 4a6a04f72..c10b55531 100644 --- a/ports/halide/portfile.cmake +++ b/ports/halide/portfile.cmake @@ -1,73 +1,70 @@ +vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) + +# Halide distributes some loadable modules that belong in lib on all platforms. +# CMake defaults module DLLs into the lib folder, which is incompatible with +# vcpkg’s current policy. This sidesteps that issue, a bit bluntly. +set(VCPKG_POLICY_EMPTY_PACKAGE enabled) + vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO halide/Halide - REF f43293be3725bb959941e38c1b1fa9ae925f7389 - SHA512 f223185e208acf6c5b73353a6b5be815db5f2598f568596e800c35ea40b0babe4630da44229e14a5607e9d5e78298d07e7b36a9cbc7b71bf3e665bc12caff68e - HEAD_REF master - PATCHES - fix-install-path.patch + REF fa9d6e1fa40c449883a7d64ca1fbc58ec94259af # refs/tags/v10.0.0 + SHA512 e6da0b0798d921443a946159a67db8631e423d5bdd738c59ac872c1113cd40223f02f2bc63b3e7d6001eebb4c6b85a9229030f17f6082ae4e7c489d5612b966c + HEAD_REF release/10.x ) -set(TARGET_X86 OFF) -set(TARGET_ARM OFF) -set(TARGET_AARCH64 OFF) -if (VCPKG_TARGET_ARCHITECTURE STREQUAL x86 OR VCPKG_TARGET_ARCHITECTURE STREQUAL x64) - # llvm x86 components are required for llvm x64 - set(TARGET_X86 ON) -elseif (VCPKG_TARGET_ARCHITECTURE STREQUAL arm) - set(TARGET_X86 OFF) - if (TARGET_TRIPLET STREQUAL arm64) - set(TARGET_AARCH64 ON) - else() - set(TARGET_ARM ON) - endif() -endif() - -if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) - set(HALIDE_SHARED_LIBRARY ON) -else() - set(HALIDE_SHARED_LIBRARY OFF) -endif() - vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS - app WITH_APPS - test WITH_TESTS - tutorials WITH_TUTORIALS - docs WITH_DOCS - utils WITH_UTILS - nativeclient TARGET_NATIVE_CLIENT - hexagon TARGET_HEXAGON - metal TARGET_METAL - mips TARGET_MIPS - powerpc TARGET_POWERPC - ptx TARGET_PTX - opencl TARGET_OPENCL - opengl TARGET_OPENGL - opengl TARGET_OPENGLCOMPUTE - rtti HALIDE_ENABLE_RTTI + 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( SOURCE_PATH ${SOURCE_PATH} PREFER_NINJA OPTIONS ${FEATURE_OPTIONS} - -DTRIPLET_SYSTEM_ARCH=${TRIPLET_SYSTEM_ARCH} - -DHALIDE_SHARED_LIBRARY=${HALIDE_SHARED_LIBRARY} - -DTARGET_X86=${TARGET_X86} - -DTARGET_ARM=${TARGET_ARM} - -DTARGET_AARCH64=${TARGET_AARCH64} - #-DTARGET_AMDGPU - -DWARNINGS_AS_ERRORS=OFF + -DWITH_APPS=NO + -DWITH_DOCS=NO + -DWITH_PYTHON_BINDINGS=NO + -DWITH_TESTS=NO + -DWITH_TUTORIALS=NO + -DWITH_UTILS=NO + -DCMAKE_INSTALL_LIBDIR=bin + -DCMAKE_INSTALL_DATADIR=share/${PORT} + -DHALIDE_INSTALL_CMAKEDIR=share/${PORT} ) vcpkg_install_cmake() -vcpkg_fixup_cmake_targets(CONFIG_PATH share/halide) +vcpkg_copy_tools( + TOOL_NAMES + featurization_to_sample + get_host_target + retrain_cost_model + weightsdir_to_weightsfile + AUTO_CLEAN +) vcpkg_copy_pdbs() -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include ${CURRENT_PACKAGES_DIR}/debug/share) -file(RENAME ${CURRENT_PACKAGES_DIR}/share/${PORT}/halide_config.cmake ${CURRENT_PACKAGES_DIR}/share/${PORT}/halide-config.cmake) -file(RENAME ${CURRENT_PACKAGES_DIR}/share/${PORT}/halide_config.make ${CURRENT_PACKAGES_DIR}/share/${PORT}/halide-config.make) +vcpkg_fixup_cmake_targets() + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/share/${PORT}/tutorial) + +file(GLOB readmes "${CURRENT_PACKAGES_DIR}/share/${PORT}/*.md") +file(REMOVE ${readmes}) -file(INSTALL ${SOURCE_PATH}/LICENSE.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) +configure_file(${SOURCE_PATH}/LICENSE.txt ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright COPYONLY) +configure_file(${CMAKE_CURRENT_LIST_DIR}/usage ${CURRENT_PACKAGES_DIR}/share/${PORT}/usage COPYONLY) diff --git a/ports/halide/usage b/ports/halide/usage new file mode 100644 index 000000000..aa40a7dec --- /dev/null +++ b/ports/halide/usage @@ -0,0 +1,14 @@ +The package halide provides CMake targets:
+
+ find_package(Halide REQUIRED)
+
+ # JIT mode:
+ target_link_libraries(main PRIVATE Halide::Halide)
+
+ # AOT mode:
+ target_link_libraries(gen PRIVATE Halide::Generator)
+ add_halide_library(filter FROM gen)
+ target_link_libraries(main PRIVATE filter)
+
+For more information see:
+ https://github.com/halide/Halide/blob/v10.0.0/README_cmake.md
diff --git a/ports/llvm/CONTROL b/ports/llvm/CONTROL index f461f1cb5..28de43699 100644 --- a/ports/llvm/CONTROL +++ b/ports/llvm/CONTROL @@ -1,10 +1,10 @@ Source: llvm Version: 10.0.0 -Port-Version: 5 +Port-Version: 6 Homepage: https://llvm.org/ Description: The LLVM Compiler Infrastructure Supports: !uwp -Default-Features: tools, enable-rtti, disable-assertions, disable-abi-breaking-checks, clang, disable-clang-static-analyzer, lld +Default-Features: tools, enable-rtti, disable-assertions, disable-abi-breaking-checks, clang, disable-clang-static-analyzer, lld, default-targets Feature: tools Description: Build LLVM tools. @@ -12,8 +12,13 @@ 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-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. diff --git a/ports/llvm/portfile.cmake b/ports/llvm/portfile.cmake index 305e6bf78..56209147a 100644 --- a/ports/llvm/portfile.cmake +++ b/ports/llvm/portfile.cmake @@ -92,72 +92,18 @@ if("polly" IN_LIST FEATURES) list(APPEND LLVM_ENABLE_PROJECTS "polly") endif() -set(LLVM_TARGETS_TO_BUILD) -if("target-all" IN_LIST FEATURES) - set(LLVM_TARGETS_TO_BUILD "all") -else() - if("target-aarch64" IN_LIST FEATURES) - list(APPEND LLVM_TARGETS_TO_BUILD "AArch64") - endif() - if("target-amdgpu" IN_LIST FEATURES) - list(APPEND LLVM_TARGETS_TO_BUILD "AMDGPU") - endif() - if("target-arm" IN_LIST FEATURES) - list(APPEND LLVM_TARGETS_TO_BUILD "ARM") - endif() - if("target-bpf" IN_LIST FEATURES) - list(APPEND LLVM_TARGETS_TO_BUILD "BPF") - endif() - if("target-hexagon" IN_LIST FEATURES) - list(APPEND LLVM_TARGETS_TO_BUILD "Hexagon") - endif() - if("target-lanai" IN_LIST FEATURES) - list(APPEND LLVM_TARGETS_TO_BUILD "Lanai") - endif() - if("target-mips" IN_LIST FEATURES) - list(APPEND LLVM_TARGETS_TO_BUILD "Mips") - endif() - if("target-msp430" IN_LIST FEATURES) - list(APPEND LLVM_TARGETS_TO_BUILD "MSP430") - endif() - if("target-nvptx" IN_LIST FEATURES) - list(APPEND LLVM_TARGETS_TO_BUILD "NVPTX") - endif() - if("target-powerpc" IN_LIST FEATURES) - list(APPEND LLVM_TARGETS_TO_BUILD "PowerPC") - endif() - if("target-riscv" IN_LIST FEATURES) - list(APPEND LLVM_TARGETS_TO_BUILD "RISCV") - endif() - if("target-sparc" IN_LIST FEATURES) - list(APPEND LLVM_TARGETS_TO_BUILD "Sparc") - endif() - if("target-systemz" IN_LIST FEATURES) - list(APPEND LLVM_TARGETS_TO_BUILD "SystemZ") - endif() - if("target-webassembly" IN_LIST FEATURES) - list(APPEND LLVM_TARGETS_TO_BUILD "WebAssembly") - endif() - if("target-x86" IN_LIST FEATURES) - list(APPEND LLVM_TARGETS_TO_BUILD "X86") - endif() - if("target-xcore" IN_LIST FEATURES) - list(APPEND LLVM_TARGETS_TO_BUILD "XCore") - endif() -endif() - -# Detect target to build if not specified -if("${LLVM_TARGETS_TO_BUILD}" STREQUAL "") - if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86" OR VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") - set(LLVM_TARGETS_TO_BUILD "X86") - elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm") - set(LLVM_TARGETS_TO_BUILD "ARM") - elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64") - set(LLVM_TARGETS_TO_BUILD "AArch64") - else() - set(LLVM_TARGETS_TO_BUILD "all") - endif() -endif() +set(known_llvm_targets + AArch64 AMDGPU ARM BPF Hexagon Lanai Mips + MSP430 NVPTX PowerPC RISCV Sparc SystemZ + WebAssembly X86 XCore) + +set(LLVM_TARGETS_TO_BUILD "") +foreach(llvm_target IN LISTS known_llvm_targets) + string(TOLOWER "target-${llvm_target}" feature_name) + if(feature_name IN_LIST FEATURES) + list(APPEND LLVM_TARGETS_TO_BUILD "${llvm_target}") + endif() +endforeach() # Use comma-separated string instead of semicolon-separated string. # See https://github.com/microsoft/vcpkg/issues/4320 diff --git a/scripts/ci.baseline.txt b/scripts/ci.baseline.txt index f39868985..cd1296b59 100644 --- a/scripts/ci.baseline.txt +++ b/scripts/ci.baseline.txt @@ -523,6 +523,9 @@ h3:arm64-windows=fail h3:arm-uwp=fail h3:x64-uwp=fail halide:x64-windows-static=fail +# Halide depends on LLVM, which is mis-compiled by MSVC in x86-windows-dbg. +# See https://developercommunity.visualstudio.com/content/problem/1179643/msvc-copies-overaligned-non-trivially-copyable-par.html +halide:x86-windows=skip hdf5:arm64-windows=fail hdf5:arm-uwp=fail hdf5:x64-uwp=fail |
