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/clblas | |
Diffstat (limited to 'vcpkg/ports/clblas')
| -rw-r--r-- | vcpkg/ports/clblas/Fix-BuildDLL.patch | 16 | ||||
| -rw-r--r-- | vcpkg/ports/clblas/abs-arm.patch | 24 | ||||
| -rw-r--r-- | vcpkg/ports/clblas/cmake.patch | 36 | ||||
| -rw-r--r-- | vcpkg/ports/clblas/fix-cmake-4.diff | 58 | ||||
| -rw-r--r-- | vcpkg/ports/clblas/portfile.cmake | 52 | ||||
| -rw-r--r-- | vcpkg/ports/clblas/vcpkg.json | 19 |
6 files changed, 205 insertions, 0 deletions
diff --git a/vcpkg/ports/clblas/Fix-BuildDLL.patch b/vcpkg/ports/clblas/Fix-BuildDLL.patch new file mode 100644 index 0000000..f717c28 --- /dev/null +++ b/vcpkg/ports/clblas/Fix-BuildDLL.patch @@ -0,0 +1,16 @@ +diff --git a/src/library/CMakeLists.txt b/src/library/CMakeLists.txt +index f2d5a88..8f84133 100644 +--- a/src/library/CMakeLists.txt ++++ b/src/library/CMakeLists.txt +@@ -910,11 +910,6 @@ endif( ) + + include( InstallRequiredSystemLibraries ) + +-# Install necessary runtime files for debug builds +-install( PROGRAMS ${CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS} +- CONFIGURATIONS Debug +- DESTINATION ${CLBLAS_RUNTIME_DESTINATION} ) +- + # Install all *.pdb files for debug builds + install( DIRECTORY ${PROJECT_BINARY_DIR}/staging/ + DESTINATION ${CLBLAS_RUNTIME_DESTINATION} diff --git a/vcpkg/ports/clblas/abs-arm.patch b/vcpkg/ports/clblas/abs-arm.patch new file mode 100644 index 0000000..8bc6f38 --- /dev/null +++ b/vcpkg/ports/clblas/abs-arm.patch @@ -0,0 +1,24 @@ +diff --git a/src/library/blas/gens/gemv.c b/src/library/blas/gens/gemv.c +index 9835482..8bf3476 100644 +--- a/src/library/blas/gens/gemv.c ++++ b/src/library/blas/gens/gemv.c +@@ -21,6 +21,7 @@ + + #include <string.h> + #include <stdio.h> ++#include <stdlib.h> // for abs(int) + #include <assert.h> + #include <math.h> + #include <clblas_stddef.h> +diff --git a/src/library/blas/gens/symv.c b/src/library/blas/gens/symv.c +index 47c8f1d..31ab3c5 100644 +--- a/src/library/blas/gens/symv.c ++++ b/src/library/blas/gens/symv.c +@@ -21,6 +21,7 @@ + + #include <string.h> + #include <stdio.h> ++#include <stdlib.h> // for abs(int) + #include <assert.h> + #include <math.h> + #include <clblas_stddef.h> diff --git a/vcpkg/ports/clblas/cmake.patch b/vcpkg/ports/clblas/cmake.patch new file mode 100644 index 0000000..ebe2c0e --- /dev/null +++ b/vcpkg/ports/clblas/cmake.patch @@ -0,0 +1,36 @@ +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index 6a88c41..05b8029 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -276,6 +276,9 @@ endif()
+
+ # This will define OPENCL_FOUND
+ find_package( OpenCL ${OPENCL_VERSION} )
++set( OPENCL_FOUND ${OpenCL_FOUND})
++set( OPENCL_LIBRARIES ${OpenCL_LIBRARIES} )
++set( OPENCL_INCLUDE_DIRS ${OpenCL_INCLUDE_DIRS} )
+
+ # Find Boost on the system, and configure the type of boost build we want
+ set( Boost_USE_MULTITHREADED ON )
+diff --git a/src/clBLASConfig.cmake.in b/src/clBLASConfig.cmake.in
+index f52d1d6..464feca 100644
+--- a/src/clBLASConfig.cmake.in
++++ b/src/clBLASConfig.cmake.in
+@@ -1,3 +1,3 @@
+ include(${CMAKE_CURRENT_LIST_DIR}/clBLASTargets.cmake)
+-get_filename_component(CLBLAS_INCLUDE_DIRS ${CMAKE_CURRENT_LIST_DIR}/@reldir@/include ABSOLUTE)
++get_filename_component(CLBLAS_INCLUDE_DIRS ${CMAKE_CURRENT_LIST_DIR}/@reldir@/../include ABSOLUTE)
+ set(CLBLAS_LIBRARIES clBLAS)
+diff --git a/src/library/CMakeLists.txt b/src/library/CMakeLists.txt
+index 5164898..f2d5a88 100644
+--- a/src/library/CMakeLists.txt
++++ b/src/library/CMakeLists.txt
+@@ -894,7 +894,7 @@ install( TARGETS clBLAS
+ EXPORT Library
+ RUNTIME DESTINATION bin${SUFFIX_BIN}
+ LIBRARY DESTINATION lib${SUFFIX_LIB}
+- ARCHIVE DESTINATION lib${SUFFIX_LIB}/import
++ ARCHIVE DESTINATION lib${SUFFIX_LIB}
+ )
+
+ # For debug builds, include the debug runtimes into the package for testing on non-developer machines
diff --git a/vcpkg/ports/clblas/fix-cmake-4.diff b/vcpkg/ports/clblas/fix-cmake-4.diff new file mode 100644 index 0000000..3c46f1c --- /dev/null +++ b/vcpkg/ports/clblas/fix-cmake-4.diff @@ -0,0 +1,58 @@ +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index 75df37a..4e31cd3 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -103,19 +103,19 @@ else( ) + endif( ) + + # Define a version for the code +-if( NOT DEFINED clBLAS_VERSION_MAJOR ) +- set( clBLAS_VERSION_MAJOR 2 ) ++if( NOT DEFINED CLBLAS_VERSION_MAJOR ) ++ set( CLBLAS_VERSION_MAJOR 2 ) + endif( ) + +-if( NOT DEFINED clBLAS_VERSION_MINOR ) +- set( clBLAS_VERSION_MINOR 12 ) ++if( NOT DEFINED CLBLAS_VERSION_MINOR ) ++ set( CLBLAS_VERSION_MINOR 12 ) + endif( ) + +-if( NOT DEFINED clBLAS_VERSION_PATCH ) +- set( clBLAS_VERSION_PATCH 0 ) ++if( NOT DEFINED CLBLAS_VERSION_PATCH ) ++ set( CLBLAS_VERSION_PATCH 0 ) + endif( ) + +-set( clBLAS_VERSION "${clBLAS_VERSION_MAJOR}.${clBLAS_VERSION_MINOR}.${clBLAS_VERSION_PATCH}") ++set( clBLAS_VERSION "${CLBLAS_VERSION_MAJOR}.${CLBLAS_VERSION_MINOR}.${CLBLAS_VERSION_PATCH}") + + # Increment this if we break backward compatibility. + set( clBLAS_SOVERSION 2 ) +@@ -425,9 +425,9 @@ endif( ) + + set( CPACK_SOURCE_PACKAGE_FILE_NAME "${CMAKE_PROJECT_NAME}-${clBLAS_VERSION}-${CMAKE_HOST_SYSTEM_NAME}-Source") + +-set( CPACK_PACKAGE_VERSION_MAJOR ${clBLAS_VERSION_MAJOR} ) +-set( CPACK_PACKAGE_VERSION_MINOR ${clBLAS_VERSION_MINOR} ) +-set( CPACK_PACKAGE_VERSION_PATCH ${clBLAS_VERSION_PATCH} ) ++set( CPACK_PACKAGE_VERSION_MAJOR ${CLBLAS_VERSION_MAJOR} ) ++set( CPACK_PACKAGE_VERSION_MINOR ${CLBLAS_VERSION_MINOR} ) ++set( CPACK_PACKAGE_VERSION_PATCH ${CLBLAS_VERSION_PATCH} ) + set( CPACK_PACKAGE_DESCRIPTION_SUMMARY "OpenCL implementation of a BLAS library") + set( CPACK_PACKAGE_VENDOR "Neutral") + set( CPACK_SOURCE_IGNORE_FILES "/\\\\.hg/;/\\\\.svn/;/\\\\.git/" ) +diff --git a/src/clBLAS.version.h.in b/src/clBLAS.version.h.in +index a05cbce..ab22a87 100644 +--- a/src/clBLAS.version.h.in ++++ b/src/clBLAS.version.h.in +@@ -17,6 +17,6 @@ + + /* the configured version and settings for clblas + */ +-#define clblasVersionMajor @clBLAS_VERSION_MAJOR@ +-#define clblasVersionMinor @clBLAS_VERSION_MINOR@ +-#define clblasVersionPatch @clBLAS_VERSION_PATCH@ ++#define clblasVersionMajor @CLBLAS_VERSION_MAJOR@ ++#define clblasVersionMinor @CLBLAS_VERSION_MINOR@ ++#define clblasVersionPatch @CLBLAS_VERSION_PATCH@ diff --git a/vcpkg/ports/clblas/portfile.cmake b/vcpkg/ports/clblas/portfile.cmake new file mode 100644 index 0000000..93254b8 --- /dev/null +++ b/vcpkg/ports/clblas/portfile.cmake @@ -0,0 +1,52 @@ +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO clMathLibraries/clBLAS + REF v2.12 + SHA512 5d9b0c58adde69e83d95e9c713e0cdc5f64785fe7e05553a14c57fa483c4ef39e9dc780c26880a7f15924967d5ce4ea29035c29d63eac7ee5a2ae5ddacac2b72 + HEAD_REF master + PATCHES + cmake.patch + Fix-BuildDLL.patch + abs-arm.patch + fix-cmake-4.diff # https://github.com/clMathLibraries/clBLAS/pull/364 +) + +# v2.12 has a very old FindOpenCL.cmake using OPENCL_ vs. OpenCL_ var names +# conflicting with the built-in, more modern FindOpenCL.cmake +file(REMOVE "${SOURCE_PATH}/src/FindOpenCL.cmake") + +vcpkg_find_acquire_program(PYTHON3) + +vcpkg_cmake_configure( + SOURCE_PATH "${SOURCE_PATH}/src" + OPTIONS + -DBUILD_TEST=OFF + -DBUILD_KTEST=OFF + -DSUFFIX_LIB= + -DPYTHON_EXECUTABLE=${PYTHON3} +) + +vcpkg_cmake_install() +if(VCPKG_LIBRARY_LINKAGE STREQUAL static) + file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") +endif() +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") + +if(VCPKG_TARGET_IS_WINDOWS) + file(REMOVE + "${CURRENT_PACKAGES_DIR}/debug/bin/clBLAS-tune.pdb" + "${CURRENT_PACKAGES_DIR}/debug/bin/clBLAS-tune.exe" + "${CURRENT_PACKAGES_DIR}/bin/clBLAS-tune.exe" + ) +endif() + +if(VCPKG_TARGET_IS_WINDOWS) + vcpkg_cmake_config_fixup(CONFIG_PATH CMake) +else() + vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/clBLAS) +endif() + +vcpkg_copy_pdbs() +vcpkg_fixup_pkgconfig() + +file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/clblas" RENAME copyright) diff --git a/vcpkg/ports/clblas/vcpkg.json b/vcpkg/ports/clblas/vcpkg.json new file mode 100644 index 0000000..26067ec --- /dev/null +++ b/vcpkg/ports/clblas/vcpkg.json @@ -0,0 +1,19 @@ +{ + "name": "clblas", + "version": "2.12", + "port-version": 8, + "description": "clBLAS is an OpenCL 1.2 accelerated BLAS (Basic Linear Algebra Subsystem) library.", + "license": "Apache-2.0", + "supports": "!(windows & arm)", + "dependencies": [ + "opencl", + { + "name": "vcpkg-cmake", + "host": true + }, + { + "name": "vcpkg-cmake-config", + "host": true + } + ] +} |