mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-08-24 18:58:08 -07:00
Signed-off-by: Paul Zander <negril.nx+gentoo@gmail.com> Part-of: https://codeberg.org/gentoo/gentoo/pulls/985 Signed-off-by: Nowa Ammerlaan <nowa@gentoo.org>
82 lines
2.1 KiB
Bash
82 lines
2.1 KiB
Bash
# Copyright 1999-2026 Gentoo Authors
|
|
# Distributed under the terms of the GNU General Public License v2
|
|
|
|
EAPI=8
|
|
|
|
inherit cmake cuda toolchain-funcs
|
|
|
|
Sparse_PV=$(ver_rs 3 '.')
|
|
Sparse_P="SuiteSparse-${Sparse_PV}"
|
|
DESCRIPTION="Common configurations for all packages in suitesparse"
|
|
HOMEPAGE="https://people.engr.tamu.edu/davis/suitesparse.html"
|
|
SRC_URI="https://github.com/DrTimothyAldenDavis/SuiteSparse/archive/refs/tags/v${Sparse_PV}.tar.gz -> ${Sparse_P}.gh.tar.gz"
|
|
|
|
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="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
|
|
DEPEND="
|
|
virtual/blas
|
|
"
|
|
RDEPEND="${DEPEND}"
|
|
|
|
pkg_pretend() {
|
|
[[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
|
|
}
|
|
|
|
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
|
|
# and simplifies the configuration for dependencies.
|
|
# Define SUITESPARSE_INCLUDEDIR_POSTFIX to "" otherwise it take
|
|
# the value suitesparse, and the include directory would be set to
|
|
# /usr/include/suitesparse
|
|
# This need to be set in all suitesparse ebuilds.
|
|
local mycmakeargs=(
|
|
-DBUILD_STATIC_LIBS=OFF
|
|
-DSUITESPARSE_USE_FORTRAN=ON
|
|
-DSUITESPARSE_USE_OPENMP=$(usex openmp)
|
|
-DSUITESPARSE_INCLUDEDIR_POSTFIX=""
|
|
)
|
|
|
|
if has_version 'virtual/blas[index64]'; then
|
|
mycmakeargs+=( -DSUITESPARSE_USE_64BIT_BLAS=ON )
|
|
fi
|
|
|
|
if has_version 'virtual/blas[flexiblas]'; then
|
|
mycmakeargs+=( -DBLA_VENDOR=FlexiBLAS )
|
|
else
|
|
mycmakeargs+=( -DBLA_VENDOR=Generic )
|
|
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
|
|
}
|