diff --git a/sci-libs/suitesparseconfig/suitesparseconfig-7.12.2-r2.ebuild b/sci-libs/suitesparseconfig/suitesparseconfig-7.12.2-r2.ebuild index e3f8c7045e199..19ce98848d2bc 100644 --- a/sci-libs/suitesparseconfig/suitesparseconfig-7.12.2-r2.ebuild +++ b/sci-libs/suitesparseconfig/suitesparseconfig-7.12.2-r2.ebuild @@ -3,7 +3,7 @@ EAPI=8 -inherit cmake toolchain-funcs +inherit cmake cuda toolchain-funcs Sparse_PV=$(ver_rs 3 '.') Sparse_P="SuiteSparse-${Sparse_PV}" @@ -15,7 +15,7 @@ S="${WORKDIR}/${Sparse_P}/SuiteSparse_config" LICENSE="BSD" SLOT="0/$(ver_cut 1)" KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" -IUSE="openmp" +IUSE="cuda openmp" # we need to depend on blas as the cmake file looks for it. # It is also a runtime dependency as it has headers to link with blas @@ -32,6 +32,14 @@ pkg_setup() { [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp } +src_prepare() { + cmake_src_prepare + + if use cuda; then + cuda_src_prepare + fi +} + src_configure() { # Make sure we always include the Fortran interface. # It doesn't require a Fortran compiler to be present @@ -58,5 +66,16 @@ src_configure() { fi # TODO: Figure out how to make sci-libs/mkl work. Bug 974246 + if use cuda; then + cuda_add_sandbox + addpredict "/dev/char/" + + mycmakeargs+=( + -DSUITESPARSE_CUDA_ARCHITECTURES="${CUDAARCHS:-all-major}" + ) + local -x CUDAHOSTCXX="$(cuda_gccdir)" + local -x CUDAHOSTLD="$(tc-getCXX)" + fi + cmake_src_configure }