aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/clblas
diff options
context:
space:
mode:
authorEthan Morgan <ethan@gweithio.com>2026-02-14 16:44:06 +0000
committerEthan Morgan <ethan@gweithio.com>2026-02-14 16:44:06 +0000
commit54409423f767d8b1cf30cb7d0efca6b4ca138823 (patch)
treed915ac7828703ce4b963efdd9728a1777ba18c1e /vcpkg/ports/clblas
move to own git serverHEADmaster
Diffstat (limited to 'vcpkg/ports/clblas')
-rw-r--r--vcpkg/ports/clblas/Fix-BuildDLL.patch16
-rw-r--r--vcpkg/ports/clblas/abs-arm.patch24
-rw-r--r--vcpkg/ports/clblas/cmake.patch36
-rw-r--r--vcpkg/ports/clblas/fix-cmake-4.diff58
-rw-r--r--vcpkg/ports/clblas/portfile.cmake52
-rw-r--r--vcpkg/ports/clblas/vcpkg.json19
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
+ }
+ ]
+}