diff options
| author | Ethan Morgan <ethan@gweithio.com> | 2026-02-14 16:44:06 +0000 |
|---|---|---|
| committer | Ethan Morgan <ethan@gweithio.com> | 2026-02-14 16:44:06 +0000 |
| commit | 54409423f767d8b1cf30cb7d0efca6b4ca138823 (patch) | |
| tree | d915ac7828703ce4b963efdd9728a1777ba18c1e /vcpkg/ports/arrayfire | |
Diffstat (limited to 'vcpkg/ports/arrayfire')
| -rw-r--r-- | vcpkg/ports/arrayfire/Fix-constexpr-error-with-vs2019-with-half.patch | 22 | ||||
| -rw-r--r-- | vcpkg/ports/arrayfire/build.patch | 267 | ||||
| -rw-r--r-- | vcpkg/ports/arrayfire/fix-dependency-clfft.patch | 14 | ||||
| -rw-r--r-- | vcpkg/ports/arrayfire/fix-miss-header-file.patch | 12 | ||||
| -rw-r--r-- | vcpkg/ports/arrayfire/portfile.cmake | 121 | ||||
| -rw-r--r-- | vcpkg/ports/arrayfire/vcpkg.json | 56 |
6 files changed, 492 insertions, 0 deletions
diff --git a/vcpkg/ports/arrayfire/Fix-constexpr-error-with-vs2019-with-half.patch b/vcpkg/ports/arrayfire/Fix-constexpr-error-with-vs2019-with-half.patch new file mode 100644 index 0000000..7766c3e --- /dev/null +++ b/vcpkg/ports/arrayfire/Fix-constexpr-error-with-vs2019-with-half.patch @@ -0,0 +1,22 @@ +diff --git a/src/backend/common/half.hpp b/src/backend/common/half.hpp +index ce06eed..fb25d03 100644 +--- a/src/backend/common/half.hpp ++++ b/src/backend/common/half.hpp +@@ -879,15 +879,9 @@ class alignas(2) half { + return *this; + } + +-#if defined(NVCC) || defined(__CUDACC_RTC__) +- AF_CONSTEXPR __DH__ explicit half(__half value) noexcept + #ifdef __CUDA_ARCH__ +- : data_(value) { +- } +-#else +- : data_(*reinterpret_cast<native_half_t*>(&value)) { +- } +-#endif ++ AF_CONSTEXPR __DH__ explicit half(__half value) noexcept : data_(value) {} ++ + AF_CONSTEXPR __DH__ half& operator=(__half value) noexcept { + // NOTE Assignment to ushort from __half only works with device code. + // using memcpy instead diff --git a/vcpkg/ports/arrayfire/build.patch b/vcpkg/ports/arrayfire/build.patch new file mode 100644 index 0000000..a87c02f --- /dev/null +++ b/vcpkg/ports/arrayfire/build.patch @@ -0,0 +1,267 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 682f416..a8cbec8 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -104,8 +104,6 @@ mark_as_advanced( + CUDA_HOST_COMPILER + CUDA_USE_STATIC_CUDA_RUNTIME + CUDA_rt_LIBRARY +- SPDLOG_BUILD_EXAMPLES +- SPDLOG_BUILD_TESTING + ADDR2LINE_PROGRAM + Backtrace_LIBRARY + AF_WITH_STATIC_MKL +@@ -159,9 +157,7 @@ if(NOT LAPACK_FOUND) + endif() + endif() + +-set(SPDLOG_BUILD_TESTING OFF CACHE INTERNAL "Disable testing in spdlog") +-add_subdirectory(extern/spdlog EXCLUDE_FROM_ALL) +-add_subdirectory(extern/glad) ++find_package(spdlog CONFIG REQUIRED) + add_subdirectory(src/backend/common) + add_subdirectory(src/api/c) + add_subdirectory(src/api/cpp) +@@ -269,10 +265,6 @@ install(DIRECTORY examples/ #NOTE The slash at the end is important + DESTINATION ${AF_INSTALL_EXAMPLE_DIR} + COMPONENT examples) + +-install(DIRECTORY assets/examples/ #NOTE The slash at the end is important +- DESTINATION ${AF_INSTALL_EXAMPLE_DIR} +- COMPONENT examples) +- + install(DIRECTORY "${ArrayFire_SOURCE_DIR}/LICENSES/" + DESTINATION LICENSES + COMPONENT licenses) +diff --git a/CMakeModules/AFInstallDirs.cmake b/CMakeModules/AFInstallDirs.cmake +index 2c7b96e..b5006ee 100644 +--- a/CMakeModules/AFInstallDirs.cmake ++++ b/CMakeModules/AFInstallDirs.cmake +@@ -7,8 +7,12 @@ include(GNUInstallDirs) + # NOTE: These paths are all relative to the project installation prefix. + + # Executables +-if(NOT DEFINED AF_INSTALL_BIN_DIR) +- set(AF_INSTALL_BIN_DIR "lib" CACHE PATH "Installation path for executables") ++if(CMAKE_BUILD_TYPE MATCHES Debug) ++ set(AF_INSTALL_BIN_DIR "${AF_BIN_DIR}/debug/bin") ++ message(STATUS " Setting install to debug path ${AF_INSTALL_BIN_DIR}") ++else() ++ set(AF_INSTALL_BIN_DIR "${AF_BIN_DIR}/bin") ++ message(STATUS " Setting install to release path ${AF_INSTALL_BIN_DIR}") + endif() + + # Libraries +diff --git a/CMakeModules/AFconfigure_forge_submodule.cmake b/CMakeModules/AFconfigure_forge_submodule.cmake +index d16849f..36ab01b 100644 +--- a/CMakeModules/AFconfigure_forge_submodule.cmake ++++ b/CMakeModules/AFconfigure_forge_submodule.cmake +@@ -39,13 +39,13 @@ if(AF_BUILD_FORGE) + COMPONENT common_backend_dependencies) + set_property(TARGET forge APPEND_STRING PROPERTY COMPILE_FLAGS " -w") + else(AF_BUILD_FORGE) +- set(FG_VERSION "1.0.0") ++ set(FG_VERSION "1.0.5") + set(FG_VERSION_MAJOR 1) + set(FG_VERSION_MINOR 0) +- set(FG_VERSION_PATCH 0) ++ set(FG_VERSION_PATCH 5) + set(FG_API_VERSION_CURRENT 10) + configure_file( +- ${PROJECT_SOURCE_DIR}/extern/forge/CMakeModules/version.h.in +- ${PROJECT_BINARY_DIR}/extern/forge/include/fg/version.h ++ ${AF_FORGE_PATH}/CMakeModules/version.h.in ++ ${AF_FORGE_PATH}/include/fg/version.h + ) + endif(AF_BUILD_FORGE) +diff --git a/src/api/unified/CMakeLists.txt b/src/api/unified/CMakeLists.txt +index 967eaa6..16bb633 100644 +--- a/src/api/unified/CMakeLists.txt ++++ b/src/api/unified/CMakeLists.txt +@@ -96,7 +96,8 @@ target_include_directories(af + target_link_libraries(af + PRIVATE + cpp_api_interface +- spdlog ++ spdlog::spdlog ++ spdlog::spdlog_header_only + Threads::Threads + Boost::boost + ${CMAKE_DL_LIBS} +diff --git a/src/backend/common/CMakeLists.txt b/src/backend/common/CMakeLists.txt +index c9fe088..8c128fa 100644 +--- a/src/backend/common/CMakeLists.txt ++++ b/src/backend/common/CMakeLists.txt +@@ -77,12 +77,15 @@ else() + target_sources(afcommon_interface INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}/module_loading_unix.cpp) + endif() + ++find_package(glad CONFIG REQUIRED) ++ + target_link_libraries(afcommon_interface + INTERFACE +- spdlog ++ spdlog::spdlog ++ spdlog::spdlog_header_only + Boost::boost +- af_glad_interface + ${CMAKE_DL_LIBS} ++ glad::glad + ) + + if(AF_BUILD_FORGE) +@@ -93,10 +96,9 @@ target_include_directories(afcommon_interface + INTERFACE + ${ArrayFire_SOURCE_DIR}/src/backend + ${ArrayFire_BINARY_DIR} ++ ${AF_FORGE_PATH}/include # passed via vcpkg + SYSTEM INTERFACE + $<$<PLATFORM_ID:Darwin>:${OPENGL_INCLUDE_DIR}> +- ${ArrayFire_SOURCE_DIR}/extern/forge/include +- ${ArrayFire_BINARY_DIR}/extern/forge/include + ) + + if(APPLE AND NOT USE_MKL) +diff --git a/src/backend/cpu/CMakeLists.txt b/src/backend/cpu/CMakeLists.txt +index 170bb0f..c6e2017 100644 +--- a/src/backend/cpu/CMakeLists.txt ++++ b/src/backend/cpu/CMakeLists.txt +@@ -266,9 +266,10 @@ endif(AF_WITH_CPUID) + + target_sources(afcpu + PRIVATE +- ${CMAKE_CURRENT_SOURCE_DIR}/threads/async_queue.hpp +- ${CMAKE_CURRENT_SOURCE_DIR}/threads/event.hpp ++ ${AF_CPU_THREAD_PATH}/include/threads/async_queue.hpp ++ ${AF_CPU_THREAD_PATH}/include/threads/event.hpp + ) ++target_include_directories(afcpu PRIVATE ${AF_CPU_THREAD_PATH}/include) + + arrayfire_set_default_cxx_flags(afcpu) + +diff --git a/src/backend/cuda/CMakeLists.txt b/src/backend/cuda/CMakeLists.txt +index 7e3e408..2edaacd 100644 +--- a/src/backend/cuda/CMakeLists.txt ++++ b/src/backend/cuda/CMakeLists.txt +@@ -110,7 +110,11 @@ cuda_include_directories( + ${COMMON_INTERFACE_DIRS} + ) + if(CUDA_VERSION_MAJOR VERSION_LESS 11) +- cuda_include_directories(${ArrayFire_SOURCE_DIR}/extern/cub) ++ find_path(CUB_INCLUDE_DIRS "cub/agent/agent_histogram.cuh") ++ if (${CUB_INCLUDE_DIRS} EQUAL "CUB_INCLUDE_DIRS-NOTFOUND") ++ set(CUB_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/cub) ++ endif() ++ cuda_include_directories(${CUB_INCLUDE_DIRS}) + endif() + + file(GLOB jit_src "kernel/jit.cuh") +@@ -242,7 +246,7 @@ endif() + + if(CUDA_VERSION_MAJOR VERSION_GREATER 10 OR + (UNIX AND +- CUDA_VERSION_MAJOR VERSION_EQUAL 10 AND CUDA_VERSION_MINOR VERSION_GREATER 0)) ++ CUDA_VERSION_MAJOR VERSION_EQUAL 10 AND CUDA_VERSION_MINOR VERSION_GREATER 1)) + list(APPEND cxx_definitions -DAF_USE_NEW_CUSPARSE_API) + endif() + +@@ -301,7 +305,7 @@ set_target_properties(af_cuda_static_cuda_library + + if(CUDA_VERSION_MAJOR VERSION_GREATER 10 OR + (UNIX AND +- CUDA_VERSION_MAJOR VERSION_EQUAL 10 AND CUDA_VERSION_MINOR VERSION_GREATER 0)) ++ CUDA_VERSION_MAJOR VERSION_EQUAL 10 AND CUDA_VERSION_MINOR VERSION_GREATER 1)) + target_compile_definitions(af_cuda_static_cuda_library PRIVATE AF_USE_NEW_CUSPARSE_API) + endif() + +diff --git a/src/backend/opencl/kernel/scan_by_key/CMakeLists.txt b/src/backend/opencl/kernel/scan_by_key/CMakeLists.txt +index 9a796c9..d9864b0 100644 +--- a/src/backend/opencl/kernel/scan_by_key/CMakeLists.txt ++++ b/src/backend/opencl/kernel/scan_by_key/CMakeLists.txt +@@ -27,6 +27,7 @@ foreach(SBK_BINARY_OP ${SBK_BINARY_OPS}) + add_dependencies(opencl_scan_by_key_${SBK_BINARY_OP} + ${cl_kernel_targets} OpenCL::cl2hpp Boost::boost) + ++ find_package(glad CONFIG REQUIRED) + target_include_directories(opencl_scan_by_key_${SBK_BINARY_OP} + PRIVATE + . +@@ -39,9 +40,7 @@ foreach(SBK_BINARY_OP ${SBK_BINARY_OPS}) + $<TARGET_PROPERTY:OpenCL::OpenCL,INTERFACE_INCLUDE_DIRECTORIES> + $<TARGET_PROPERTY:OpenCL::cl2hpp,INTERFACE_INCLUDE_DIRECTORIES> + $<TARGET_PROPERTY:Boost::boost,INTERFACE_INCLUDE_DIRECTORIES> +- $<TARGET_PROPERTY:af_glad_interface,INTERFACE_INCLUDE_DIRECTORIES> +- ${ArrayFire_SOURCE_DIR}/extern/forge/include +- ${ArrayFire_BINARY_DIR}/extern/forge/include ++ $<TARGET_PROPERTY:glad::glad,INTERFACE_INCLUDE_DIRECTORIES> + ) + + set_target_properties(opencl_scan_by_key_${SBK_BINARY_OP} +diff --git a/src/backend/opencl/kernel/sort_by_key/CMakeLists.txt b/src/backend/opencl/kernel/sort_by_key/CMakeLists.txt +index d618ff2..9f51739 100644 +--- a/src/backend/opencl/kernel/sort_by_key/CMakeLists.txt ++++ b/src/backend/opencl/kernel/sort_by_key/CMakeLists.txt +@@ -32,14 +32,13 @@ foreach(SBK_TYPE ${SBK_TYPES}) + ../../../include + ${CMAKE_CURRENT_BINARY_DIR}) + ++ find_package(glad CONFIG REQUIRED) + target_include_directories(opencl_sort_by_key_${SBK_TYPE} + SYSTEM PRIVATE + $<TARGET_PROPERTY:OpenCL::OpenCL,INTERFACE_INCLUDE_DIRECTORIES> + $<TARGET_PROPERTY:OpenCL::cl2hpp,INTERFACE_INCLUDE_DIRECTORIES> + $<TARGET_PROPERTY:Boost::boost,INTERFACE_INCLUDE_DIRECTORIES> +- $<TARGET_PROPERTY:af_glad_interface,INTERFACE_INCLUDE_DIRECTORIES> +- ${ArrayFire_SOURCE_DIR}/extern/forge/include +- ${ArrayFire_BINARY_DIR}/extern/forge/include ++ $<TARGET_PROPERTY:glad::glad,INTERFACE_INCLUDE_DIRECTORIES> + ) + + set_target_properties(opencl_sort_by_key_${SBK_TYPE} +diff --git a/src/backend/opencl/CMakeLists.txt b/src/backend/opencl/CMakeLists.txt +index b543433..9b5923b 100644 +--- a/src/backend/opencl/CMakeLists.txt ++++ b/src/backend/opencl/CMakeLists.txt +@@ -432,12 +432,9 @@ if(AF_OPENCL_BLAS_LIBRARY STREQUAL "clBLAS") + PRIVATE + clBLAS::clBLAS) + elseif(AF_OPENCL_BLAS_LIBRARY STREQUAL "CLBlast") +- include(build_CLBlast) ++ find_package(CLBlast CONFIG REQUIRED) + target_compile_definitions(afopencl PRIVATE USE_CLBLAST) +- target_link_libraries(afopencl +- PRIVATE +- CLBlast) +- add_dependencies(afopencl CLBlast-ext) ++ target_link_libraries(afopencl PRIVATE clblast) + endif() + + +diff --git a/src/backend/opencl/homography.cpp b/src/backend/opencl/homography.cpp +index 3b598b0..2815923 100644 +--- a/src/backend/opencl/homography.cpp ++++ b/src/backend/opencl/homography.cpp +@@ -39,7 +39,7 @@ int homography(Array<T> &bestH, const Array<float> &x_src, + ::std::min(iter, static_cast<unsigned>( + log(1.f - LMEDSConfidence) / + log(1.f - pow(1.f - LMEDSOutlierRatio, 4.f)))); +- err = createValueArray<float>(af::dim4(nsamples, iter), FLT_MAX); ++ err = createValueArray<float>(af::dim4(nsamples, iter), std::numeric_limits<float>::max()); + } else { + // Avoid passing "null" cl_mem object to kernels + err = createEmptyArray<float>(af::dim4(1)); +diff --git a/src/backend/opencl/kernel/homography.hpp b/src/backend/opencl/kernel/homography.hpp +index b84e599..90d0c80 100644 +--- a/src/backend/opencl/kernel/homography.hpp ++++ b/src/backend/opencl/kernel/homography.hpp +@@ -39,7 +39,9 @@ std::array<Kernel, 5> getHomographyKernels(const af_homography_type htype) { + }; + options.emplace_back(getTypeBuildDefinition<T>()); + options.emplace_back(DefineKeyValue( +- EPS, (std::is_same<T, double>::value ? DBL_EPSILON : FLT_EPSILON))); ++ EPS, (std::is_same<T, double>::value ++ ? std::numeric_limits<double>::epsilon() ++ : std::numeric_limits<float>::epsilon()))); + if (htype == AF_HOMOGRAPHY_RANSAC) { + options.emplace_back(DefineKey(RANSAC)); + } diff --git a/vcpkg/ports/arrayfire/fix-dependency-clfft.patch b/vcpkg/ports/arrayfire/fix-dependency-clfft.patch new file mode 100644 index 0000000..8072746 --- /dev/null +++ b/vcpkg/ports/arrayfire/fix-dependency-clfft.patch @@ -0,0 +1,14 @@ +diff --git a/src/backend/opencl/CMakeLists.txt b/src/backend/opencl/CMakeLists.txt +index f970da0..b543433 100644 +--- a/src/backend/opencl/CMakeLists.txt ++++ b/src/backend/opencl/CMakeLists.txt +@@ -12,7 +12,8 @@ set_property(CACHE AF_OPENCL_BLAS_LIBRARY PROPERTY STRINGS "clBLAS" "CLBlast") + + af_deprecate(OPENCL_BLAS_LIBRARY AF_OPENCL_BLAS_LIBRARY) + +-include(build_clFFT) ++find_package(clFFT CONFIG REQUIRED) ++add_library(clFFT::clFFT ALIAS clFFT) + + file(GLOB kernel_src kernel/*.cl kernel/KParam.hpp) + diff --git a/vcpkg/ports/arrayfire/fix-miss-header-file.patch b/vcpkg/ports/arrayfire/fix-miss-header-file.patch new file mode 100644 index 0000000..c29c51f --- /dev/null +++ b/vcpkg/ports/arrayfire/fix-miss-header-file.patch @@ -0,0 +1,12 @@ +diff --git a/src/backend/common/half.hpp b/src/backend/common/half.hpp +index fb25d03..2f6a8a4 100644 +--- a/src/backend/common/half.hpp ++++ b/src/backend/common/half.hpp +@@ -33,6 +33,7 @@ + #endif + + #include <backend.hpp> ++#include <cstdint> + + #ifdef __CUDACC_RTC__ + using uint16_t = unsigned short; diff --git a/vcpkg/ports/arrayfire/portfile.cmake b/vcpkg/ports/arrayfire/portfile.cmake new file mode 100644 index 0000000..d6640be --- /dev/null +++ b/vcpkg/ports/arrayfire/portfile.cmake @@ -0,0 +1,121 @@ +vcpkg_download_distfile( + CUDA_PATCHES + URLS "https://github.com/arrayfire/arrayfire/pull/3552/commits/674e7bec90b90467139d32bf633467fe60824617.diff?full_index=1" + FILENAME "fix-cuda-674e7bec90b90467139d32bf633467fe60824617.patch" + SHA512 201ba8c46f5eafd5d8dbc78ddc1fb4c24b8d820f034e081b8ff30712705fe059c2850bbb7394d81931620619071559fed0e98b13cc4f985103e354c44a322e78 +) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO arrayfire/arrayfire + REF d99887ae431fcd58168b653a1e69f027f04d5188 # v3.8.0 + SHA512 d8ddf6ba254744e62acf5ecf680f0ae56b05f8957b5463572923977ba2ffea7fa37cc1b6179421a1188a6f9e66565ca0f8cd00807513ccbe66ba1e9bbd41a3da + HEAD_REF master + PATCHES + build.patch + Fix-constexpr-error-with-vs2019-with-half.patch + fix-dependency-clfft.patch + fix-miss-header-file.patch + "${CUDA_PATCHES}" +) + +# arrayfire cpu thread lib needed as a submodule for the CPU backend +vcpkg_from_github( + OUT_SOURCE_PATH CPU_THREADS_PATH + REPO arrayfire/threads + REF b666773940269179f19ef11c8f1eb77005e85d9a + SHA512 b3e8b54acf3a588b1f821c2774d5da2d8f8441962c6d99808d513f7117278b9066eb050b8b501bddbd3882e68eb5cc5da0b2fca54e15ab1923fe068a3fe834f5 + HEAD_REF master +) + +# Get forge. We only need headers and aren't actually linking. +# We don't want to use the vcpkg dependency since it is broken in many +# environments - see https://github.com/microsoft/vcpkg/issues/14864. This +# can be relaxed when the issue is fixed. Forge and its dependencies +# are still runtime dependencies, so the user can use the graphics +# library by installing forge and freeimage. +vcpkg_from_github( + OUT_SOURCE_PATH FORGE_PATH + REPO arrayfire/forge + REF 1a0f0cb6371a8c8053ab5eb7cbe3039c95132389 # v1.0.5 + SHA512 8f8607421880a0f0013380eb5efb3a4f05331cd415d68c9cd84dd57eb727da1df6223fc6d65b106675d6aa09c3388359fab64443c31fadadf7641161be6b3b89 + HEAD_REF master +) + +################################### Build ################################### + +# Default flags +set(AF_DEFAULT_VCPKG_CMAKE_FLAGS + -DBUILD_TESTING=OFF + -DAF_BUILD_DOCS=OFF + -DAF_BUILD_EXAMPLES=OFF + -DUSE_CPU_MKL=ON + -DUSE_OPENCL_MKL=ON + -DAF_CPU_THREAD_PATH=${CPU_THREADS_PATH} # for building the arrayfire cpu threads lib + -DAF_FORGE_PATH=${FORGE_PATH} # forge headers for building the graphics lib + -DAF_BUILD_FORGE=OFF +) + +if("cpu" IN_LIST FEATURES) + if(VCPKG_TARGET_IS_WINDOWS AND VCPKG_CRT_LINKAGE STREQUAL "static") + list(APPEND AF_DEFAULT_VCPKG_CMAKE_FLAGS "-DMKL_THREAD_LAYER=Sequential") + endif() + if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") + list(APPEND AF_DEFAULT_VCPKG_CMAKE_FLAGS "-DINT_SIZE=8") + # This seems scary but only selects the MKL interface. 4 = lp; 8 = ilp; Since x64 has ilp as the default use it! + endif() +endif() + +# bin/dll directory for Windows non-static builds for the unified backend dll +if (VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_LIBRARY_LINKAGE STREQUAL "static") + set(AF_BIN_DIR ${CURRENT_PACKAGES_DIR}) + list(APPEND AF_DEFAULT_VCPKG_CMAKE_FLAGS "-DAF_BIN_DIR=${AF_BIN_DIR}") +endif() + +if (VCPKG_TARGET_IS_WINDOWS AND VCPKG_LIBRARY_LINKAGE STREQUAL "static") + message(WARNING "NOTE: Windows support with static linkeage is still experimental.") +endif() + +# Determine which backend to build via specified feature +vcpkg_check_features( + OUT_FEATURE_OPTIONS AF_BACKEND_FEATURE_OPTIONS + FEATURES + unified AF_BUILD_UNIFIED + cpu AF_BUILD_CPU + cuda AF_BUILD_CUDA + opencl AF_BUILD_OPENCL +) + +# Build and install +vcpkg_cmake_configure( + SOURCE_PATH "${SOURCE_PATH}" + DISABLE_PARALLEL_CONFIGURE + OPTIONS + ${AF_DEFAULT_VCPKG_CMAKE_FLAGS} + ${AF_BACKEND_FEATURE_OPTIONS} + MAYBE_UNUSED_VARIABLES + AF_CPU_THREAD_PATH +) +vcpkg_cmake_install() + +vcpkg_copy_pdbs() + +if(NOT VCPKG_TARGET_IS_WINDOWS) + vcpkg_cmake_config_fixup(CONFIG_PATH share/ArrayFire/cmake) +else() + vcpkg_cmake_config_fixup(CONFIG_PATH cmake) +endif() + +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" + "${CURRENT_PACKAGES_DIR}/debug/examples" + "${CURRENT_PACKAGES_DIR}/debug/share" + "${CURRENT_PACKAGES_DIR}/examples" + "${CURRENT_PACKAGES_DIR}/LICENSES" + "${CURRENT_PACKAGES_DIR}/debug/LICENSES") +if(FEATURES STREQUAL "core") + file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") +endif() + +# Copyright and license +file(INSTALL "${SOURCE_PATH}/COPYRIGHT.md" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") +vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") diff --git a/vcpkg/ports/arrayfire/vcpkg.json b/vcpkg/ports/arrayfire/vcpkg.json new file mode 100644 index 0000000..f12aae3 --- /dev/null +++ b/vcpkg/ports/arrayfire/vcpkg.json @@ -0,0 +1,56 @@ +{ + "name": "arrayfire", + "version-semver": "3.8.0", + "port-version": 8, + "description": "ArrayFire is a general-purpose library that simplifies the process of developing software that targets parallel and massively-parallel architectures including CPUs, GPUs, and other hardware acceleration devices.", + "homepage": "https://github.com/arrayfire/arrayfire", + "license": "BSD-3-Clause", + "supports": "x64", + "dependencies": [ + "boost-compute", + "boost-stacktrace", + "glad", + "spdlog", + { + "name": "vcpkg-cmake", + "host": true + }, + { + "name": "vcpkg-cmake-config", + "host": true + } + ], + "default-features": [ + "cpu", + "unified" + ], + "features": { + "cpu": { + "description": "ArrayFire CPU backend", + "dependencies": [ + "intel-mkl" + ] + }, + "cuda": { + "description": "ArrayFire CUDA backend. This feature only supports dynamic because dependency cudnn is dynamic only.", + "dependencies": [ + "cuda", + "cudnn" + ] + }, + "opencl": { + "description": "ArrayFire OpenCL backend", + "dependencies": [ + "clblast", + "clfft", + "opencl" + ] + }, + "unified": { + "description": "ArrayFire unified backend", + "dependencies": [ + "intel-mkl" + ] + } + } +} |