diff options
Diffstat (limited to 'vcpkg/ports/suitesparse-graphblas')
| -rw-r--r-- | vcpkg/ports/suitesparse-graphblas/crossbuild.diff | 24 | ||||
| -rw-r--r-- | vcpkg/ports/suitesparse-graphblas/portfile.cmake | 52 | ||||
| -rw-r--r-- | vcpkg/ports/suitesparse-graphblas/vcpkg.json | 30 |
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." + } + } +} |