summaryrefslogtreecommitdiff
path: root/sci-libs
diff options
context:
space:
mode:
authorroot <root@alpha.trunkmasters.com>2026-07-12 03:04:43 -0500
committerroot <root@alpha.trunkmasters.com>2026-07-12 03:04:43 -0500
commit40d2213d241ba50dbaf9b311a92a93e480fbd474 (patch)
treec0dc1821acc043acc052426e9d018af4b26b4c72 /sci-libs
parent755ecc63c34034b68719f6dac52aa76ba08bbe5c (diff)
downloadbaldeagleos-repo-40d2213d241ba50dbaf9b311a92a93e480fbd474.tar.gz
baldeagleos-repo-40d2213d241ba50dbaf9b311a92a93e480fbd474.tar.xz
baldeagleos-repo-40d2213d241ba50dbaf9b311a92a93e480fbd474.zip
Adding metadata
Diffstat (limited to 'sci-libs')
-rw-r--r--sci-libs/htslib/Manifest1
-rw-r--r--sci-libs/htslib/htslib-1.20.ebuild52
-rw-r--r--sci-libs/htslib/htslib-1.23.1.ebuild2
-rw-r--r--sci-libs/trilinos/trilinos-17.0.0-r1.ebuild252
-rw-r--r--sci-libs/trilinos/trilinos-17.1.0-r1.ebuild253
5 files changed, 506 insertions, 54 deletions
diff --git a/sci-libs/htslib/Manifest b/sci-libs/htslib/Manifest
index fce2951cfeb6..11149f73b75a 100644
--- a/sci-libs/htslib/Manifest
+++ b/sci-libs/htslib/Manifest
@@ -1,2 +1 @@
-DIST htslib-1.20.tar.bz2 4779028 BLAKE2B def7a135f37a4c7a167ada554b92b0e0107ab3dcbdab69abdea387035159f40fb183477275c137b0d786fdfc7264303898f98c54acb1714f9b7cb21e22612143 SHA512 a156f5c895fdae77f976f463a2d4d1111dc056893ef45b7e9cf62e9115898bc8cb47465bb1779e534c26943df478892385d44646e97bd0fa67fceb83ef7a649b
DIST htslib-1.23.1.tar.bz2 4987046 BLAKE2B bb8beb6ce435bb8a940c70edd830c54c90a626de553ddfb159a68cd9fca97a608ee2a4b3ae820b52730bf3be2fd0b8e1b1776f005bf18a39c6237df0451448a8 SHA512 abe3c7cf37c2300b5d2b82f9f0a88cb1b29f289aad829d2c1c7e39ca2ddafd9fd43efea3301a7e1fd1be1b91e5fbc32511961bb20f2aa1a58729ac84603d59f0
diff --git a/sci-libs/htslib/htslib-1.20.ebuild b/sci-libs/htslib/htslib-1.20.ebuild
deleted file mode 100644
index 43627c7821af..000000000000
--- a/sci-libs/htslib/htslib-1.20.ebuild
+++ /dev/null
@@ -1,52 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-inherit toolchain-funcs
-
-DESCRIPTION="C library for high-throughput sequencing data formats"
-HOMEPAGE="http://www.htslib.org/"
-SRC_URI="https://github.com/samtools/${PN}/releases/download/${PV}/${P}.tar.bz2"
-
-LICENSE="MIT"
-SLOT="0/3"
-KEYWORDS="amd64 ~x86"
-IUSE="+bzip2 curl +lzma"
-
-RDEPEND="
- virtual/zlib:=
- bzip2? ( app-arch/bzip2 )
- curl? ( net-misc/curl )
- lzma? ( app-arch/xz-utils )"
-DEPEND="${RDEPEND}"
-
-src_prepare() {
- default
-
- # upstream injects LDFLAGS into the .pc file,
- # which is a big nono for QA
- sed -e '/^\(static_l\|Libs.private\|Requires.private\)/d' \
- -i htslib.pc.in || die
-}
-
-src_configure() {
- econf \
- --disable-gcs \
- --disable-plugins \
- --disable-s3 \
- $(use_enable bzip2 bz2) \
- $(use_enable curl libcurl) \
- $(use_enable lzma)
-}
-
-src_compile() {
- emake AR="$(tc-getAR)"
-}
-
-src_install() {
- default
-
- # doesn't use libtool, can't disable static libraries
- find "${ED}" -name '*.a' -delete || die
-}
diff --git a/sci-libs/htslib/htslib-1.23.1.ebuild b/sci-libs/htslib/htslib-1.23.1.ebuild
index 42b9693c70b2..7ebb54a4348a 100644
--- a/sci-libs/htslib/htslib-1.23.1.ebuild
+++ b/sci-libs/htslib/htslib-1.23.1.ebuild
@@ -11,7 +11,7 @@ SRC_URI="https://github.com/samtools/${PN}/releases/download/${PV}/${P}.tar.bz2"
LICENSE="MIT"
SLOT="0/3"
-KEYWORDS="~amd64 ~x86"
+KEYWORDS="amd64 ~x86"
IUSE="+bzip2 curl +lzma"
RDEPEND="
diff --git a/sci-libs/trilinos/trilinos-17.0.0-r1.ebuild b/sci-libs/trilinos/trilinos-17.0.0-r1.ebuild
new file mode 100644
index 000000000000..ecd197c64ef3
--- /dev/null
+++ b/sci-libs/trilinos/trilinos-17.0.0-r1.ebuild
@@ -0,0 +1,252 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+CMAKE_MAKEFILE_GENERATOR=emake
+inherit cmake flag-o-matic toolchain-funcs
+
+DESCRIPTION="Scientific library collection for large scale problems"
+HOMEPAGE="http://trilinos.sandia.gov/"
+MY_PV="${PV//\./-}"
+PATCHSET="r0"
+SRC_URI="https://github.com/${PN}/Trilinos/archive/${PN}-release-${MY_PV}.tar.gz -> ${P}.tar.gz"
+
+S="${WORKDIR}/Trilinos-${PN}-release-${MY_PV}"
+
+LICENSE="BSD LGPL-2.1"
+SLOT="0/${PV}"
+KEYWORDS="~amd64 ~x86"
+
+IUSE="
+ adolc all-packages arprec clp cuda eigen glpk gtest hdf5 hwloc hypre
+ matio metis mkl mumps netcdf openmp petsc qd scalapack scotch sparse
+ superlu taucs tbb test threads tvmet yaml zlib X
+"
+
+# TODO: fix export cmake function for tests
+RESTRICT="test"
+
+RDEPEND="
+ >=dev-cpp/kokkos-4.5.1:=[cuda(-)=,openmp=]
+ dev-libs/boost:=
+ sys-libs/binutils-libs:=
+ virtual/blas
+ virtual/lapack
+ virtual/mpi
+ adolc? ( sci-libs/adolc )
+ arprec? ( sci-libs/arprec )
+ clp? ( sci-libs/coinor-clp )
+ cuda? ( dev-util/nvidia-cuda-toolkit:= )
+ eigen? ( dev-cpp/eigen:= )
+ glpk? ( sci-mathematics/glpk )
+ gtest? ( dev-cpp/gtest )
+ hdf5? ( sci-libs/hdf5:=[mpi] )
+ hypre? ( sci-libs/hypre:= )
+ hwloc? ( sys-apps/hwloc:= )
+ matio? ( sci-libs/matio )
+ mkl? ( sci-libs/mkl )
+ metis? ( sci-libs/metis )
+ mumps? ( sci-libs/mumps )
+ netcdf? ( sci-libs/netcdf:= )
+ petsc? ( sci-mathematics/petsc )
+ qd? ( sci-libs/qd )
+ scalapack? ( sci-libs/scalapack )
+ scotch? ( sci-libs/scotch:= )
+ sparse? ( sci-libs/cxsparse sci-libs/umfpack )
+ superlu? ( <sci-libs/superlu-5.0.0:= )
+ taucs? ( sci-libs/taucs )
+ tbb? ( dev-cpp/tbb:= )
+ tvmet? ( dev-libs/tvmet )
+ yaml? ( dev-cpp/yaml-cpp:= )
+ zlib? ( virtual/zlib:= )
+ X? ( x11-libs/libX11 )"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig"
+
+PATCHES=(
+ "${FILESDIR}/${P}-drop_boost_system.patch"
+ )
+
+pkg_pretend() {
+ [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
+}
+
+pkg_setup() {
+ [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
+}
+
+trilinos_conf() {
+ local dirs libs d
+ for d in $($(tc-getPKG_CONFIG) --libs-only-L $1); do
+ dirs="${dirs};${d:2}"
+ done
+ [[ -n ${dirs} ]] && mycmakeargs+=( "-D${2}_LIBRARY_DIRS=${dirs:1}" )
+ for d in $($(tc-getPKG_CONFIG) --libs-only-l $1); do
+ libs="${libs};${d:2}"
+ done
+ [[ -n ${libs} ]] && mycmakeargs+=( "-D${2}_LIBRARY_NAMES=${libs:1}" )
+ dirs=""
+ for d in $($(tc-getPKG_CONFIG) --cflags-only-I $1); do
+ dirs="${dirs};${d:2}"
+ done
+ [[ -n ${dirs} ]] && mycmakeargs+=( "-D${2}_INCLUDE_DIRS=${dirs:1}" )
+}
+
+src_configure() {
+ # Trilinos is a massive C++ project. Fixing all of the lto warnings and
+ # making safe for lto compilation/linking will be a massive
+ # undertaking. Thus, simply filter lto flags. bug #862987
+ filter-lto
+
+ local mycmakeargs=(
+ -DBUILD_SHARED_LIBS=ON
+ -DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr"
+ -DCMAKE_SKIP_RPATH=ON
+ -DCMAKE_SKIP_INSTALL_RPATH=ON
+ -DTrilinos_INSTALL_INCLUDE_DIR="${EPREFIX}/usr/include/trilinos"
+ -DTrilinos_INSTALL_LIB_DIR="${EPREFIX}/usr/$(get_libdir)/trilinos"
+ -DTrilinos_ENABLE_ALL_PACKAGES="$(usex all-packages)"
+ -DTrilinos_ENABLE_PyTrilinos=OFF
+ -DTrilinos_ENABLE_Amesos=ON
+ -DTrilinos_ENABLE_AztecOO=ON
+ -DTrilinos_ENABLE_EpetraExt=ON
+ -DTrilinos_ENABLE_Epetra=ON
+ -DTrilinos_ENABLE_Ifpack=ON
+ -DTrilinos_ENABLE_ML=ON
+ -DTrilinos_ENABLE_MueLu=ON
+ -DTrilinos_ENABLE_OpenMP="$(usex openmp)"
+ -DTrilinos_ENABLE_ROL=ON
+ -DTrilinos_ENABLE_Sacado=ON
+ -DTrilinos_ENABLE_Teuchos=ON
+ -DTrilinos_ENABLE_Tpetra=ON
+ -DTrilinos_ENABLE_Zoltan=ON
+ -DTrilinos_ENABLE_TESTS="$(usex test)"
+ -DTPL_ENABLE_ADOLC="$(usex adolc)"
+ -DTPL_ENABLE_AMD="$(usex sparse)"
+ -DTPL_ENABLE_ARPREC="$(usex arprec)"
+ -DTPL_ENABLE_BinUtils=ON
+ -DTPL_ENABLE_BLACS="$(usex scalapack)"
+ -DTPL_ENABLE_BLAS=ON
+ -DTPL_ENABLE_BoostLib=ON
+ -DTPL_ENABLE_Boost=ON
+ -DTPL_ENABLE_Clp="$(usex clp)"
+ -DTPL_ENABLE_CSparse="$(usex sparse)"
+ -DTPL_ENABLE_CUDA="$(usex cuda)"
+ -DTPL_ENABLE_CUSPARSE="$(usex cuda)"
+ -DTPL_ENABLE_Eigen="$(usex eigen)"
+ -DTPL_ENABLE_GLPK="$(usex glpk)"
+ -DTPL_ENABLE_gtest="$(usex gtest)"
+ -DTPL_ENABLE_HDF5="$(usex hdf5)"
+ -DTPL_ENABLE_HWLOC="$(usex hwloc)"
+ -DTPL_ENABLE_HYPRE="$(usex hypre)"
+ -DTPL_ENABLE_Kokkos=ON
+ # Tpetra declares a dependency on kokkos-4.5.1, which we have in
+ # our version constraints. But the logic in the build system also
+ # unconditionally enforces that no newer version is installed.
+ # Thus, disable this check:
+ -DTpetra_IGNORE_KOKKOS_COMPATIBILITY=ON
+ # Enable support for 32bit ordinals which is required for some
+ # dependencies such as sci-libs/dealii
+ -DTpetra_INST_INT_INT=ON
+ -DTPL_ENABLE_LAPACK=ON
+ -DTPL_ENABLE_Matio="$(usex matio)"
+ -DTPL_ENABLE_METIS="$(usex metis)"
+ -DTPL_ENABLE_MKL="$(usex mkl)"
+ -DTPL_ENABLE_MPI=ON
+ -DTPL_ENABLE_MUMPS="$(usex mumps)"
+ -DTPL_ENABLE_Netcdf="$(usex netcdf)"
+ -DTPL_ENABLE_PARDISO_MKL="$(usex mkl)"
+ -DTPL_ENABLE_PETSC="$(usex petsc)"
+ -DTPL_ENABLE_Pthread="$(usex threads)"
+ -DTPL_ENABLE_QD="$(usex qd)"
+ -DTPL_ENABLE_SCALAPACK="$(usex scalapack)"
+ -DTPL_ENABLE_Scotch="$(usex scotch)"
+ -DTPL_ENABLE_SuperLU="$(usex superlu)"
+ -DTPL_ENABLE_TAUCS="$(usex taucs)"
+ -DTPL_ENABLE_TBB="$(usex tbb)"
+ -DTPL_ENABLE_TVMET="$(usex tvmet)"
+ -DTPL_ENABLE_UMFPACK="$(usex sparse)"
+ -DTPL_ENABLE_X11="$(usex X)"
+ -DTPL_ENABLE_yamlcpp="$(usex yaml)"
+ -DTPL_ENABLE_Zlib="$(usex zlib)"
+ )
+
+ #
+ # Make sure some critical configuration options are always set
+ # correctly independently of what Trilinos dependency resolver thinks
+ # it should be doing.
+ #
+ local mycmakeargs+=(
+ -DAmesos2_ENABLE_LAPACK=ON
+ -DAmesos2_ENABLE_MUMPS=OFF
+ -DTpetra_INST_SERIAL=ON
+ )
+
+ use eigen && \
+ mycmakeargs+=(
+ -DEigen_INCLUDE_DIRS="${EPREFIX}/usr/include/eigen3"
+ )
+ use hypre && \
+ mycmakeargs+=(
+ -DHYPRE_INCLUDE_DIRS="${EPREFIX}/usr/include/hypre"
+ )
+ use scotch && \
+ mycmakeargs+=(
+ -DScotch_INCLUDE_DIRS="${EPREFIX}/usr/include/scotch"
+ )
+
+ # cxsparse is a rewrite of csparse + extras
+ use sparse && \
+ mycmakeargs+=(
+ -DCSparse_LIBRARY_NAMES="cxsparse"
+ )
+
+ # mandatory blas and lapack
+ trilinos_conf blas BLAS
+ trilinos_conf lapack LAPACK
+ use superlu && trilinos_conf superlu SuperLU
+ use metis && trilinos_conf metis METIS
+
+ # blacs library is included in scalapack these days
+ if use scalapack; then
+ trilinos_conf scalapack SCALAPACK
+ mycmakeargs+=(
+ -DBLACS_LIBRARY_NAMES="scalapack"
+ -DBLACS_INCLUDE_DIRS="${EPREFIX}/usr/include/blacs"
+ )
+ fi
+
+ #
+ # Make sure we use the compiler wrappers in order to build trilinos.
+ #
+ [ ! -z "${CC}"] && export OMPI_CC="${CC}" MPICH_CC="${CC}" && tc-export OMPI_CC MPICH_CC
+ [ ! -z "${CXX}"] && export OMPI_CXX="${CXX}" MPICH_CXX="${CXX}" && tc-export OMPI_CXX MPICH_CXX
+ export CC=mpicc CXX=mpicxx && tc-export CC CXX
+
+ # Trilinos needs a custom build type:
+ local CMAKE_BUILD_TYPE=Release
+
+ cmake_src_configure
+}
+
+src_install() {
+ cmake_src_install
+
+ # Move the cmake directory to the right location:
+ mkdir -p "${ED}/usr/$(get_libdir)"/cmake
+ mv "${ED}/usr/$(get_libdir)"/trilinos/cmake/* "${ED}/usr/$(get_libdir)"/cmake || die "mv failed"
+ # Fix up include paths:
+ sed -i -e 's#external_packages#trilinos/external_packages#g' \
+ "${ED}/usr/$(get_libdir)"/cmake/**/*.cmake || die "sed failed"
+ rmdir "${ED}/usr/$(get_libdir)/trilinos/cmake" || die "rmdir failed"
+
+ # Register $(get_libdir)/trilinos in LDPATH so that the dynamic linker
+ # has a chance to pick up the libraries, also add Trilinos' binaries ot
+ # the PATH environment variable.
+ cat >> "${T}"/99trilinos <<- EOF
+ LDPATH="${EPREFIX}/usr/$(get_libdir)/trilinos"
+ PATH="${EPREFIX}/usr/$(get_libdir)/trilinos/bin"
+ EOF
+ doenvd "${T}"/99trilinos
+}
diff --git a/sci-libs/trilinos/trilinos-17.1.0-r1.ebuild b/sci-libs/trilinos/trilinos-17.1.0-r1.ebuild
new file mode 100644
index 000000000000..26095ae6fffe
--- /dev/null
+++ b/sci-libs/trilinos/trilinos-17.1.0-r1.ebuild
@@ -0,0 +1,253 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+CMAKE_MAKEFILE_GENERATOR=emake
+inherit cmake flag-o-matic toolchain-funcs
+
+DESCRIPTION="Scientific library collection for large scale problems"
+HOMEPAGE="http://trilinos.sandia.gov/"
+MY_PV="${PV//\./-}"
+PATCHSET="r0"
+SRC_URI="https://github.com/${PN}/Trilinos/archive/${PN}-release-${MY_PV}.tar.gz -> ${P}.tar.gz"
+
+S="${WORKDIR}/Trilinos-${PN}-release-${MY_PV}"
+
+LICENSE="BSD LGPL-2.1"
+SLOT="0/${PV}"
+KEYWORDS="~amd64 ~x86"
+
+IUSE="
+ adolc all-packages arprec clp cuda eigen glpk gtest hdf5 hwloc hypre
+ matio metis mkl mumps netcdf openmp petsc qd scalapack scotch sparse
+ superlu taucs tbb test threads tvmet yaml zlib X
+"
+
+# TODO: fix export cmake function for tests
+RESTRICT="test"
+
+RDEPEND="
+ >=dev-cpp/kokkos-5.1.1:=[cuda(-)=,openmp=]
+ dev-libs/boost:=
+ sys-libs/binutils-libs:=
+ virtual/blas
+ virtual/lapack
+ virtual/mpi
+ adolc? ( sci-libs/adolc )
+ arprec? ( sci-libs/arprec )
+ clp? ( sci-libs/coinor-clp )
+ cuda? ( >=dev-util/nvidia-cuda-toolkit-3.2 )
+ eigen? ( dev-cpp/eigen:3 )
+ glpk? ( sci-mathematics/glpk )
+ gtest? ( dev-cpp/gtest )
+ hdf5? ( sci-libs/hdf5:=[mpi] )
+ hypre? ( sci-libs/hypre:= )
+ hwloc? ( sys-apps/hwloc:= )
+ matio? ( sci-libs/matio )
+ mkl? ( sci-libs/mkl )
+ metis? ( sci-libs/metis )
+ mumps? ( sci-libs/mumps )
+ netcdf? ( sci-libs/netcdf:= )
+ petsc? ( sci-mathematics/petsc )
+ qd? ( sci-libs/qd )
+ scalapack? ( sci-libs/scalapack )
+ scotch? ( sci-libs/scotch:= )
+ sparse? ( sci-libs/cxsparse sci-libs/umfpack )
+ superlu? ( <sci-libs/superlu-5.0.0:= )
+ taucs? ( sci-libs/taucs )
+ tbb? ( dev-cpp/tbb:= )
+ tvmet? ( dev-libs/tvmet )
+ yaml? ( dev-cpp/yaml-cpp:= )
+ zlib? ( virtual/zlib:= )
+ X? ( x11-libs/libX11 )"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-17.0.0-drop_boost_system.patch"
+ "${FILESDIR}/${P}-fix_compilation.patch"
+ )
+
+pkg_pretend() {
+ [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
+}
+
+pkg_setup() {
+ [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
+}
+
+trilinos_conf() {
+ local dirs libs d
+ for d in $($(tc-getPKG_CONFIG) --libs-only-L $1); do
+ dirs="${dirs};${d:2}"
+ done
+ [[ -n ${dirs} ]] && mycmakeargs+=( "-D${2}_LIBRARY_DIRS=${dirs:1}" )
+ for d in $($(tc-getPKG_CONFIG) --libs-only-l $1); do
+ libs="${libs};${d:2}"
+ done
+ [[ -n ${libs} ]] && mycmakeargs+=( "-D${2}_LIBRARY_NAMES=${libs:1}" )
+ dirs=""
+ for d in $($(tc-getPKG_CONFIG) --cflags-only-I $1); do
+ dirs="${dirs};${d:2}"
+ done
+ [[ -n ${dirs} ]] && mycmakeargs+=( "-D${2}_INCLUDE_DIRS=${dirs:1}" )
+}
+
+src_configure() {
+ # Trilinos is a massive C++ project. Fixing all of the lto warnings and
+ # making safe for lto compilation/linking will be a massive
+ # undertaking. Thus, simply filter lto flags. bug #862987
+ filter-lto
+
+ local mycmakeargs=(
+ -DBUILD_SHARED_LIBS=ON
+ -DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr"
+ -DCMAKE_SKIP_RPATH=ON
+ -DCMAKE_SKIP_INSTALL_RPATH=ON
+ -DTrilinos_INSTALL_INCLUDE_DIR="${EPREFIX}/usr/include/trilinos"
+ -DTrilinos_INSTALL_LIB_DIR="${EPREFIX}/usr/$(get_libdir)/trilinos"
+ -DTrilinos_ENABLE_ALL_PACKAGES="$(usex all-packages)"
+ -DTrilinos_ENABLE_PyTrilinos=OFF
+ -DTrilinos_ENABLE_Amesos=ON
+ -DTrilinos_ENABLE_AztecOO=ON
+ -DTrilinos_ENABLE_EpetraExt=ON
+ -DTrilinos_ENABLE_Epetra=ON
+ -DTrilinos_ENABLE_Ifpack=ON
+ -DTrilinos_ENABLE_ML=ON
+ -DTrilinos_ENABLE_MueLu=ON
+ -DTrilinos_ENABLE_OpenMP="$(usex openmp)"
+ -DTrilinos_ENABLE_ROL=ON
+ -DTrilinos_ENABLE_Sacado=ON
+ -DTrilinos_ENABLE_Teuchos=ON
+ -DTrilinos_ENABLE_Tpetra=ON
+ -DTrilinos_ENABLE_Zoltan=ON
+ -DTrilinos_ENABLE_TESTS="$(usex test)"
+ -DTPL_ENABLE_ADOLC="$(usex adolc)"
+ -DTPL_ENABLE_AMD="$(usex sparse)"
+ -DTPL_ENABLE_ARPREC="$(usex arprec)"
+ -DTPL_ENABLE_BinUtils=ON
+ -DTPL_ENABLE_BLACS="$(usex scalapack)"
+ -DTPL_ENABLE_BLAS=ON
+ -DTPL_ENABLE_BoostLib=ON
+ -DTPL_ENABLE_Boost=ON
+ -DTPL_ENABLE_Clp="$(usex clp)"
+ -DTPL_ENABLE_CSparse="$(usex sparse)"
+ -DTPL_ENABLE_CUDA="$(usex cuda)"
+ -DTPL_ENABLE_CUSPARSE="$(usex cuda)"
+ -DTPL_ENABLE_Eigen="$(usex eigen)"
+ -DTPL_ENABLE_GLPK="$(usex glpk)"
+ -DTPL_ENABLE_gtest="$(usex gtest)"
+ -DTPL_ENABLE_HDF5="$(usex hdf5)"
+ -DTPL_ENABLE_HWLOC="$(usex hwloc)"
+ -DTPL_ENABLE_HYPRE="$(usex hypre)"
+ -DTPL_ENABLE_Kokkos=ON
+ # Tpetra declares a dependency on kokkos-4.5.1, which we have in
+ # our version constraints. But the logic in the build system also
+ # unconditionally enforces that no newer version is installed.
+ # Thus, disable this check:
+ -DTpetra_IGNORE_KOKKOS_COMPATIBILITY=ON
+ # Enable support for 32bit ordinals which is required for some
+ # dependencies such as sci-libs/dealii
+ -DTpetra_INST_INT_INT=ON
+ -DTPL_ENABLE_LAPACK=ON
+ -DTPL_ENABLE_Matio="$(usex matio)"
+ -DTPL_ENABLE_METIS="$(usex metis)"
+ -DTPL_ENABLE_MKL="$(usex mkl)"
+ -DTPL_ENABLE_MPI=ON
+ -DTPL_ENABLE_MUMPS="$(usex mumps)"
+ -DTPL_ENABLE_Netcdf="$(usex netcdf)"
+ -DTPL_ENABLE_PARDISO_MKL="$(usex mkl)"
+ -DTPL_ENABLE_PETSC="$(usex petsc)"
+ -DTPL_ENABLE_Pthread="$(usex threads)"
+ -DTPL_ENABLE_QD="$(usex qd)"
+ -DTPL_ENABLE_SCALAPACK="$(usex scalapack)"
+ -DTPL_ENABLE_Scotch="$(usex scotch)"
+ -DTPL_ENABLE_SuperLU="$(usex superlu)"
+ -DTPL_ENABLE_TAUCS="$(usex taucs)"
+ -DTPL_ENABLE_TBB="$(usex tbb)"
+ -DTPL_ENABLE_TVMET="$(usex tvmet)"
+ -DTPL_ENABLE_UMFPACK="$(usex sparse)"
+ -DTPL_ENABLE_X11="$(usex X)"
+ -DTPL_ENABLE_yamlcpp="$(usex yaml)"
+ -DTPL_ENABLE_Zlib="$(usex zlib)"
+ )
+
+ #
+ # Make sure some critical configuration options are always set
+ # correctly independently of what Trilinos dependency resolver thinks
+ # it should be doing.
+ #
+ local mycmakeargs+=(
+ -DAmesos2_ENABLE_LAPACK=ON
+ -DAmesos2_ENABLE_MUMPS=OFF
+ -DTpetra_INST_SERIAL=ON
+ )
+
+ use eigen && \
+ mycmakeargs+=(
+ -DEigen_INCLUDE_DIRS="${EPREFIX}/usr/include/eigen3"
+ )
+ use hypre && \
+ mycmakeargs+=(
+ -DHYPRE_INCLUDE_DIRS="${EPREFIX}/usr/include/hypre"
+ )
+ use scotch && \
+ mycmakeargs+=(
+ -DScotch_INCLUDE_DIRS="${EPREFIX}/usr/include/scotch"
+ )
+
+ # cxsparse is a rewrite of csparse + extras
+ use sparse && \
+ mycmakeargs+=(
+ -DCSparse_LIBRARY_NAMES="cxsparse"
+ )
+
+ # mandatory blas and lapack
+ trilinos_conf blas BLAS
+ trilinos_conf lapack LAPACK
+ use superlu && trilinos_conf superlu SuperLU
+ use metis && trilinos_conf metis METIS
+
+ # blacs library is included in scalapack these days
+ if use scalapack; then
+ trilinos_conf scalapack SCALAPACK
+ mycmakeargs+=(
+ -DBLACS_LIBRARY_NAMES="scalapack"
+ -DBLACS_INCLUDE_DIRS="${EPREFIX}/usr/include/blacs"
+ )
+ fi
+
+ #
+ # Make sure we use the compiler wrappers in order to build trilinos.
+ #
+ [ ! -z "${CC}"] && export OMPI_CC="${CC}" MPICH_CC="${CC}" && tc-export OMPI_CC MPICH_CC
+ [ ! -z "${CXX}"] && export OMPI_CXX="${CXX}" MPICH_CXX="${CXX}" && tc-export OMPI_CXX MPICH_CXX
+ export CC=mpicc CXX=mpicxx && tc-export CC CXX
+
+ # Trilinos needs a custom build type:
+ local CMAKE_BUILD_TYPE=Release
+
+ cmake_src_configure
+}
+
+src_install() {
+ cmake_src_install
+
+ # Move the cmake directory to the right location:
+ mkdir -p "${ED}/usr/$(get_libdir)"/cmake
+ mv "${ED}/usr/$(get_libdir)"/trilinos/cmake/* "${ED}/usr/$(get_libdir)"/cmake || die "mv failed"
+ # Fix up include paths:
+ sed -i -e 's#external_packages#trilinos/external_packages#g' \
+ "${ED}/usr/$(get_libdir)"/cmake/**/*.cmake || die "sed failed"
+ rmdir "${ED}/usr/$(get_libdir)/trilinos/cmake" || die "rmdir failed"
+
+ # Register $(get_libdir)/trilinos in LDPATH so that the dynamic linker
+ # has a chance to pick up the libraries, also add Trilinos' binaries ot
+ # the PATH environment variable.
+ cat >> "${T}"/99trilinos <<- EOF
+ LDPATH="${EPREFIX}/usr/$(get_libdir)/trilinos"
+ PATH="${EPREFIX}/usr/$(get_libdir)/trilinos/bin"
+ EOF
+ doenvd "${T}"/99trilinos
+}