aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/suitesparse-graphblas
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/suitesparse-graphblas
move to own git serverHEADmaster
Diffstat (limited to 'vcpkg/ports/suitesparse-graphblas')
-rw-r--r--vcpkg/ports/suitesparse-graphblas/crossbuild.diff24
-rw-r--r--vcpkg/ports/suitesparse-graphblas/portfile.cmake52
-rw-r--r--vcpkg/ports/suitesparse-graphblas/vcpkg.json30
3 files changed, 106 insertions, 0 deletions
diff --git a/vcpkg/ports/suitesparse-graphblas/crossbuild.diff b/vcpkg/ports/suitesparse-graphblas/crossbuild.diff
new file mode 100644
index 0000000..7751db6
--- /dev/null
+++ b/vcpkg/ports/suitesparse-graphblas/crossbuild.diff
@@ -0,0 +1,24 @@
+diff --git a/JITpackage/CMakeLists.txt b/JITpackage/CMakeLists.txt
+index 64492a1..bd15dd0 100644
+--- a/JITpackage/CMakeLists.txt
++++ b/JITpackage/CMakeLists.txt
+@@ -13,7 +13,10 @@ project ( jitpackage LANGUAGES C )
+ set ( GRAPHBLAS_CROSS_TOOLCHAIN_FLAGS_NATIVE "" CACHE STRING
+ "list of configuration flags used for building native generator binaries when cross-compiling" )
+
+-if ( CMAKE_CROSSCOMPILING )
++if (GRB_JITPACKAGE_EXECUTABLE)
++ add_executable(grb_jitpackage IMPORTED)
++ set_target_properties(grb_jitpackage PROPERTIES IMPORTED_LOCATION "${GRB_JITPACKAGE_EXECUTABLE}")
++elseif (0)
+
+ cmake_path ( GET PROJECT_BINARY_DIR FILENAME _subdir )
+ if ( ${_subdir} STREQUAL "native" )
+@@ -60,6 +63,7 @@ else ( )
+ if ( NOT WIN32 )
+ target_link_libraries ( grb_jitpackage PRIVATE m )
+ endif ( )
++ install(TARGETS grb_jitpackage)
+
+ # Generate an import target to be able to run the native executable when
+ # cross-compiling.
diff --git a/vcpkg/ports/suitesparse-graphblas/portfile.cmake b/vcpkg/ports/suitesparse-graphblas/portfile.cmake
new file mode 100644
index 0000000..b17e4b9
--- /dev/null
+++ b/vcpkg/ports/suitesparse-graphblas/portfile.cmake
@@ -0,0 +1,52 @@
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO DrTimothyAldenDavis/GraphBLAS
+ REF v${VERSION}
+ SHA512 b43b3dc34e392a39de7112133e061ee5831017dde2f1cbfad7381abbbc0123740deb319b877ad891c5674caa0bdf0d5c7966780107dfad28eb89735af5bd8840
+ HEAD_REF stable
+ PATCHES
+ crossbuild.diff
+)
+
+string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_STATIC_LIBS)
+
+vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
+ FEATURES
+ openmp GRAPHBLAS_USE_OPENMP
+ INVERTED_FEATURES
+ precompiled GRAPHBLAS_COMPACT
+)
+
+if(VCPKG_CROSSCOMPILING)
+ list(APPEND FEATURE_OPTIONS "-DGRB_JITPACKAGE_EXECUTABLE=${CURRENT_HOST_INSTALLED_DIR}/manual-tools/${PORT}/grb_jitpackage${VCPKG_HOST_EXECUTABLE_SUFFIX}")
+endif()
+
+# Prevent JIT cache from being created at ~/.SuiteSparse by default. Only used during build.
+# see https://github.com/DrTimothyAldenDavis/SuiteSparse/blob/v7.8.1/GraphBLAS/cmake_modules/GraphBLAS_JIT_paths.cmake
+set(ENV{GRAPHBLAS_CACHE_PATH} "${CURRENT_BUILDTREES_DIR}/cache")
+
+vcpkg_cmake_configure(
+ SOURCE_PATH "${SOURCE_PATH}"
+ DISABLE_PARALLEL_CONFIGURE
+ OPTIONS
+ -DBUILD_STATIC_LIBS=${BUILD_STATIC_LIBS}
+ -DSUITESPARSE_USE_CUDA=OFF
+ -DSUITESPARSE_USE_STRICT=ON
+ -DSUITESPARSE_USE_FORTRAN=OFF
+ -DSUITESPARSE_DEMOS=OFF
+ -DGRAPHBLAS_JIT_ENABLE_RELOCATE=ON
+ ${FEATURE_OPTIONS}
+)
+
+vcpkg_cmake_install()
+vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/GraphBLAS" PACKAGE_NAME "graphblas")
+vcpkg_fixup_pkgconfig()
+
+if(NOT VCPKG_CROSSCOMPILING)
+ vcpkg_copy_tools(AUTO_CLEAN TOOL_NAMES grb_jitpackage DESTINATION "${CURRENT_PACKAGES_DIR}/manual-tools/${PORT}")
+endif()
+
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share")
+
+vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE")
diff --git a/vcpkg/ports/suitesparse-graphblas/vcpkg.json b/vcpkg/ports/suitesparse-graphblas/vcpkg.json
new file mode 100644
index 0000000..f3d710a
--- /dev/null
+++ b/vcpkg/ports/suitesparse-graphblas/vcpkg.json
@@ -0,0 +1,30 @@
+{
+ "$comment": "Use scripts/update_suitesparse.py to update all SuiteSparse ports",
+ "name": "suitesparse-graphblas",
+ "version-semver": "10.1.1",
+ "description": "SuiteSparse:GraphBLAS: graph algorithms in the language of linear algebra",
+ "homepage": "https://people.engr.tamu.edu/davis/GraphBLAS.html",
+ "license": null,
+ "dependencies": [
+ {
+ "name": "suitesparse-graphblas",
+ "host": true
+ },
+ {
+ "name": "vcpkg-cmake",
+ "host": true
+ },
+ {
+ "name": "vcpkg-cmake-config",
+ "host": true
+ }
+ ],
+ "features": {
+ "openmp": {
+ "description": "Enable OpenMP support"
+ },
+ "precompiled": {
+ "description": "Pre-compile kernels instead of using JIT compilation at runtime. Increases the library size and compile time by about 15x. Use the GRAPHBLAS_CACHE_PATH env var to set the JIT cache directory if not enabled."
+ }
+ }
+}