From: "Matthias Maier" <tamiko@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: sci-libs/trilinos/
Date: Tue, 23 Jul 2024 17:04:45 +0000 (UTC)	[thread overview]
Message-ID: <1721754276.5aa5cfa563766dec9d4d82e23622d82d75bec3ae.tamiko@gentoo> (raw)
commit:     5aa5cfa563766dec9d4d82e23622d82d75bec3ae
Author:     Matthias Maier <tamiko <AT> gentoo <DOT> org>
AuthorDate: Tue Jul 23 12:57:09 2024 +0000
Commit:     Matthias Maier <tamiko <AT> gentoo <DOT> org>
CommitDate: Tue Jul 23 17:04:36 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5aa5cfa5
sci-libs/trilinos: add 16.0.0
Signed-off-by: Matthias Maier <tamiko <AT> gentoo.org>
 sci-libs/trilinos/Manifest               |   1 +
 sci-libs/trilinos/trilinos-16.0.0.ebuild | 250 +++++++++++++++++++++++++++++++
 2 files changed, 251 insertions(+)
diff --git a/sci-libs/trilinos/Manifest b/sci-libs/trilinos/Manifest
index 2de0d7b37c4b..360dcde13929 100644
--- a/sci-libs/trilinos/Manifest
+++ b/sci-libs/trilinos/Manifest
@@ -1,3 +1,4 @@
 DIST trilinos-14.4.0.tar.gz 188325969 BLAKE2B 909e3ebe229d035263d835e0d68977516d2a5df168785021fe300f7904e149586a82a6dba271cc1472455472397ee5467443244fb68fb27c00cf4e9b3d10a282 SHA512 497fc4fb4ab4338fffef7111635f3dc3b12cb7302bc3f56bafb5cc75b7c68e94cc22fcacd9dd625803a0f38e4fbce5105cab61df76e033a4581568c36a53fe8a
 DIST trilinos-15.0.0.tar.gz 182971338 BLAKE2B 0e459b9d070085a2a5bf06de8274ceec628f8913ab87c87a9502baf8065bfdabeca827ea9fa0f274c163bff1e7dc252eabf79ca250c0470d1da5e13492287d28 SHA512 a364e67686cdd4e1e34aa0e14b6cc051ed21a72b63719c47260d7839d47590b9e652be76cb9d61e513c7933b965fc8141c3ff898167e22353b33c9491a525c84
 DIST trilinos-15.1.1.tar.gz 183340366 BLAKE2B 4d1184fac143ae2b2950d0bf35bae8f813436f894734e5a9aa96d7622ed265cc41a04001a846437a1d1921258c20ae165e9e55f1754241541bde7136c08a6e5c SHA512 5a1a7d321dd3b47fafe0422884d1a7bf6731d5ee806a4fd1bf31f179ca5d6f4290cda4515d0d7786024ea15c17e88422a9518370c5cfb32b4b44761de232e0de
+DIST trilinos-16.0.0.tar.gz 198059287 BLAKE2B b23389d6aa49e34b87f614e9c4a835b224bcd4054028b106c94358a4125a5544df2013ce3560a56e76d68e900df613d7ae002fea0dacd8bd93ea002a4db7d53b SHA512 ed8b9f6ec8d35879f28f066685f70c492ee83ffdc42cfed75750216c0c689c81b00355520a7db441e56d83a6a153b0dbe4f8422d163a942cdcc6786235f64688
diff --git a/sci-libs/trilinos/trilinos-16.0.0.ebuild b/sci-libs/trilinos/trilinos-16.0.0.ebuild
new file mode 100644
index 000000000000..6cbf380341aa
--- /dev/null
+++ b/sci-libs/trilinos/trilinos-16.0.0.ebuild
@@ -0,0 +1,250 @@
+# Copyright 1999-2024 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"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+
+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
+	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:= )
+	taucs? ( sci-libs/taucs )
+	tbb? ( dev-cpp/tbb:= )
+	tvmet? ( dev-libs/tvmet )
+	yaml? ( dev-cpp/yaml-cpp:= )
+	zlib? ( sys-libs/zlib )
+	X? ( x11-libs/libX11 )"
+DEPEND="${RDEPEND}
+	virtual/pkgconfig"
+
+PATCHES=(
+)
+
+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}"
+		-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_BinUtils=ON
+		-DTPL_ENABLE_BLAS=ON
+		-DTPL_ENABLE_LAPACK=ON
+		-DTPL_ENABLE_MPI=ON
+		-DTPL_ENABLE_ADOLC="$(usex adolc)"
+		-DTPL_ENABLE_AMD="$(usex sparse)"
+		-DTPL_ENABLE_ARPREC="$(usex arprec)"
+		-DTPL_ENABLE_BLACS="$(usex scalapack)"
+		-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_Matio="$(usex matio)"
+		-DTPL_ENABLE_METIS="$(usex metis)"
+		-DTPL_ENABLE_MKL="$(usex mkl)"
+		-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_Thrust="$(usex cuda)"
+		-DTPL_ENABLE_TVMET="$(usex tvmet)"
+		-DTPL_ENABLE_UMFPACK="$(usex sparse)"
+		-DTPL_ENABLE_X11="$(usex X)"
+		-DTPL_ENABLE_yaml-cpp="$(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
+
+	# Clean up the mess:
+
+	# Let us move the bin directory out of the way to avoid potential
+	# clashes due to very generically named binaries such as
+	# »nvcc_wrapper«, etc.
+	mv "${ED}"/bin "${ED}/usr/$(get_libdir)"/trilinos || die "mv failed"
+
+	# 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
+}
next             reply	other threads:[~2024-07-23 17:04 UTC|newest]
Thread overview: 54+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-07-23 17:04 Matthias Maier [this message]
  -- strict thread matches above, loose matches on Subject: below --
2025-08-09 17:12 [gentoo-commits] repo/gentoo:master commit in: sci-libs/trilinos/ Matthias Maier
2025-08-09 16:08 Matthias Maier
2025-07-16 22:50 Matthias Maier
2025-07-16 22:50 Matthias Maier
2025-05-18 21:48 Matthias Maier
2025-05-18 21:48 Matthias Maier
2025-05-18  7:10 Matthias Maier
2025-05-18  7:10 Matthias Maier
2025-05-18  7:10 Matthias Maier
2024-06-10 22:19 Matthias Maier
2024-06-10 22:19 Matthias Maier
2023-12-07  5:23 Matthias Maier
2023-12-07  5:23 Matthias Maier
2023-12-07  5:23 Matthias Maier
2023-08-16  5:27 Matthias Maier
2023-06-21 22:48 Matthias Maier
2023-05-23 23:10 Matthias Maier
2023-05-23 13:05 Matthias Maier
2023-05-23 11:03 Matthias Maier
2022-12-19 14:47 Andreas Sturmlechner
2022-11-30  4:29 Matthias Maier
2022-06-14  3:41 Matthias Maier
2022-06-14  3:41 Matthias Maier
2022-06-14  3:41 Matthias Maier
2022-06-13 22:48 Matthias Maier
2022-06-13 22:41 Matthias Maier
2022-06-13 21:58 Matthias Maier
2022-06-12  6:28 Matthias Maier
2022-06-12  6:06 Matthias Maier
2022-06-12  4:43 Matthias Maier
2022-06-12  3:51 Matthias Maier
2022-06-11  8:44 Matthias Maier
2022-05-23  3:03 Matthias Maier
2021-12-28 22:00 Sam James
2021-11-12  5:03 Matthias Maier
2021-11-12  4:57 Matthias Maier
2021-11-12  4:57 Matthias Maier
2021-10-29 22:23 Sam James
2021-01-19  3:15 Sam James
2020-12-20 21:31 Matthias Maier
2020-12-20 21:31 Matthias Maier
2020-12-20 21:31 Matthias Maier
2020-10-24 21:26 Matthias Maier
2020-06-10 17:59 Matthias Maier
2020-04-25  4:38 Matthias Maier
2020-04-25  2:02 Matthias Maier
2020-04-24 18:48 Matthias Maier
2019-08-13  6:11 Matthias Maier
2019-08-06  5:06 Matthias Maier
2019-08-06  5:06 Matthias Maier
2019-08-05 13:30 Matthias Maier
2019-08-05  6:56 Matthias Maier
2019-08-05  6:52 Matthias Maier
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox
  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):
  git send-email \
    --in-reply-to=1721754276.5aa5cfa563766dec9d4d82e23622d82d75bec3ae.tamiko@gentoo \
    --to=tamiko@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY
  https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
  Be sure your reply has a Subject: header at the top and a blank line
  before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox