Update to latest versions.

This commit is contained in:
andreili 2024-01-22 01:17:57 +01:00
parent c2d0aeabb0
commit 589675cba2
9 changed files with 22 additions and 770 deletions

View File

@ -2,3 +2,8 @@ dev-cpp
dev-libs
sci-electronics
sci-libs
cross-riscv32-unknown-elf
cross-x86_64-w64-mingw32
cross-i686-w64-mingw32
cross-aarch64-unknown-linux-gnu
cross-avr

View File

@ -1,14 +1,5 @@
AUX gcc-13.patch 627 BLAKE2B dd45523c61b5f328a04ab7397d2bfbf345a15eff1c0290390111b15f67f541d74811c100d9d9930c6a9f2b8da980de0c7ad04ef7067d1d08852102185fba1e60 SHA512 0c0e6d41025f3e331883cf2b3dd21ad5420f74f16d3222a9de17e61386cbd0fa7cfc3ab10beaa983ba42b44a9cfbfa51ab040c4e964a1aa8de47ecb4b7edd750
AUX v13-gcc-13.patch 2199 BLAKE2B 588a656312a38f3034651bc0d286635be4815312cd4c57411a03b7ba8e1e863c8758f114e5f09085468a6801c35f26300dd26f15871f5546428ec9aad698c7da SHA512 84d7a7911b59e985c03d1d6d189d59193ced479464e0c3c07c1dce1caed5cc2a1d76563724a1c09ef15bd0f2a8a98b581d5091a5b2c99861ecdaa3237264e295
AUX v14-gcc13.patch 629 BLAKE2B a61ff618e63e4fc5675670e4b2f53fffc67bba6fe74f8ccfbad69bd9694ef8982b7769a809e634152851fcc47b1cd0d1269458c11e0a8eddfd8acf9917f3b1c2 SHA512 57293c2d8c3a3b869df37d9723db55af82050c76ec2881480ea543c6f1f452cc74c6f24bc2bf682de082902ed1c61b05769d6e5a3da6c7e92b1f595265bcbb8c
AUX v14.patch 2101 BLAKE2B 2c888edcddb386f9256cb0fc85c0386ca1d24c0cfaaa1af08778e802c0fce058f29bc0a63912d46044c8cfa82025e1ba8086c75444d2ec003e2ff4b90543160e SHA512 436a472f9fa5d43c52e12d8d7ebfc961a82e9e9a893c61113980906fcdfff1ec4b38bb2fb5df4b239c8485931b8fad720eda5f19da1c61096e874c0f7f357945
AUX xyce.patch 1991 BLAKE2B 94c0b1a5afc67c0897c51506a8ae3ba82e821e2ededba960907dfac50109e685858d09dce4322fae1c569f7d53ab6ffec8dcc8f0f00b90242f860467399858a0 SHA512 dde23513862d8a79767ecadb3be076fa6f83e0c6867e98e4ea936d37d18c435fd0200197b38deec757eefab076338274f3788c18e73288744739c9f4de47560f
DIST trilinos-13.4.0-patches-r0.tar.xz 8740 BLAKE2B 333ab9ff1acb2f4b08007c7b99b96f023f6c742e4f991fc0ab9dd6595be7e3e319a77d5e329790cedca72d7a9060df837549d28e8a6cb4b8a838570d455ae356 SHA512 f30c16801cadec2a612ab2f7d3ca05c5ddfdfc513343a182562253cdfb58d38fa8b771ab07f7bc6bcb2505d146469da2ddda478f74447de746d5eca850da123e
DIST trilinos-13.4.1.tar.gz 168720416 BLAKE2B 5201c36aa998045f4eab99b67fce25f9a2f2a9524b8ca1147cd8db9ccc306e3df61336df3b2ee981317c8defbae2df9e36546a0e5ddfed3142213e437e4dfba0 SHA512 9c0fb3af2fa625cd0af1309bfa61c212e12657820707348c81355d506e07f540da5e42aa30237fbc80adf257bb636029345f248abaf7ef96fcdaed1c28ec3a19
DIST trilinos-14.0.0.tar.gz 179086187 BLAKE2B 0e0c3e3fa4b88164cd7e90720ec42eb007f8e89734e5537a7eba1f17754faf30c21fa1d77f7e8a7968bdb8bb230596a1adc74f8170577fd7b4eccb2e88c5b8f6 SHA512 b08fcf4f6bf2605267c44c038f352949e5bfe14b853de77e4c80e28f66c088ead1699b1e49f8475f1b98ce5a21238b98a299e760f1373e585c78b65120fa18e5
DIST trilinos-14.2.0.tar.gz 178867695 BLAKE2B 07ff61775399014091aae9c14ad12a69ab19853bc3489c15775490aa3f6e8ae868ac4e90bf046d10bf1ecb1d5558992f0afb0ce656f947336559fcf10085c038 SHA512 c676ff2b59904dc05a0ff434dd164bc96076999a5851c160c5851c124d3c519dd0cc3f088eba19f2000c7d1c2377f4efb2b2b8f9f3ee641b2180f3b99b28ea0b
DIST trilinos-14.4.0.tar.gz 188325969 BLAKE2B 909e3ebe229d035263d835e0d68977516d2a5df168785021fe300f7904e149586a82a6dba271cc1472455472397ee5467443244fb68fb27c00cf4e9b3d10a282 SHA512 497fc4fb4ab4338fffef7111635f3dc3b12cb7302bc3f56bafb5cc75b7c68e94cc22fcacd9dd625803a0f38e4fbce5105cab61df76e033a4581568c36a53fe8a
EBUILD trilinos-13.4.1.ebuild 9560 BLAKE2B bf029cfd7877ab5377dd8ea76eccc7bfac400500ffefcc01fcb78a11e096a17cd0dd140a9e04686d13ee82f33b96dc35795480faae57411e5fad1d016b30c7d4 SHA512 3819f3abf8889a48ab4e62302cfe6018269d13a0505ee057763cdebbf1fd7d3bf0247b81216b89a372a2d1abb38ac6ed49c28ff07ad84a8a32f28f2b107a691b
EBUILD trilinos-14.0.0.ebuild 8451 BLAKE2B d0ca1847ca3f964424304eb9c1abb21d96c7406310d8bccf2049b4aa5267c23878b88352bbd7c23640fa63d903ffa024240e29b988645fbb6cf216bd41ab996b SHA512 cb6774f526e18edf8f94c17f5444982181da7bfefcd18befa8204f97c2ec999209aaeaef9e16df3c567537e891aa905121569183873e2b70883609b7cf2b69bb
EBUILD trilinos-14.2.0.ebuild 8758 BLAKE2B 6abd3955a281d3477b6418b45e3a6008730595ea76ae0731cc66310c62e4b10115d41b9eb7ca0bac6689f91861c9f3a326cd46d81450db97bfc5485094ed477d SHA512 1e4a2753139e70039e4f567c28c27928909eb330599fd0a207a9b3d2af5675599207194b95a23c346ae56787ef341129bffc55916e3ca77aca02d7bd15e88551
DIST trilinos-15.0.0.tar.gz 182971338 BLAKE2B 0e459b9d070085a2a5bf06de8274ceec628f8913ab87c87a9502baf8065bfdabeca827ea9fa0f274c163bff1e7dc252eabf79ca250c0470d1da5e13492287d28 SHA512 a364e67686cdd4e1e34aa0e14b6cc051ed21a72b63719c47260d7839d47590b9e652be76cb9d61e513c7933b965fc8141c3ff898167e22353b33c9491a525c84
EBUILD trilinos-14.4.0.ebuild 8864 BLAKE2B f9d93b9f77e4fe41a8f24dddf9d2b36fc78c446a242f3174c4a7ae683035646887d500b50e5799d39b1629472ae4171529a120158661cfe342c41885e8c365ff SHA512 a2488476f1a8abe0f37533e5ef051491884c780e653b40bee637aaab2560dc798de87d17142efccc69a443c1371e1d27d49e77bfb68cef67c8b13c957e6f6d8f
EBUILD trilinos-15.0.0.ebuild 8652 BLAKE2B 8f9e24acec395c9b57dff3c8e9382a0f8d5fc04d986d3554cbcb1f36e8d343bdb745ae01ec0a5d12218101f8673ca2d9ed036ea105cb25c8e5e1a99fdb99f943 SHA512 01c3fe794001e46234bb2e225de9d404c6d4aad02097a5376abd3b260d88550d46b4538c083bbef81c32866866b078447e7c5f05c58b5ad81d8403ee2d6ba3b1

View File

@ -1,11 +0,0 @@
diff -Naur Trilinos-trilinos-release-13-4-1_or/packages/teuchos/core/src/Teuchos_BigUIntDecl.hpp Trilinos-trilinos-release-13-4-1/packages/teuchos/core/src/Teuchos_BigUIntDecl.hpp
--- Trilinos-trilinos-release-13-4-1_or/packages/teuchos/core/src/Teuchos_BigUIntDecl.hpp 2023-05-13 23:56:33.699073588 +0200
+++ Trilinos-trilinos-release-13-4-1/packages/teuchos/core/src/Teuchos_BigUIntDecl.hpp 2023-05-13 23:56:59.079010911 +0200
@@ -43,6 +43,7 @@
#define TEUCHOS_BIG_UINT_DECL_HPP
#include <iosfwd>
+#include <cstdint>
/*! \file Teuchos_BigUIntDecl.hpp
\brief Arbitrary-precision unsigned integer declaration.

View File

@ -1,50 +0,0 @@
diff -Naur Trilinos-trilinos-release-13-4-1_or/packages/kokkos/core/src/impl/Kokkos_MemoryPool.cpp Trilinos-trilinos-release-13-4-1/packages/kokkos/core/src/impl/Kokkos_MemoryPool.cpp
--- Trilinos-trilinos-release-13-4-1_or/packages/kokkos/core/src/impl/Kokkos_MemoryPool.cpp 2023-06-11 21:27:20.637681333 +0200
+++ Trilinos-trilinos-release-13-4-1/packages/kokkos/core/src/impl/Kokkos_MemoryPool.cpp 2023-06-11 21:28:23.316933920 +0200
@@ -46,6 +46,7 @@
#include <ostream>
#include <sstream>
+#include <cstdint>
//----------------------------------------------------------------------------
//----------------------------------------------------------------------------
diff -Naur Trilinos-trilinos-release-13-4-1_or/packages/stk/stk_util/stk_util/ngp/NgpSpaces.hpp Trilinos-trilinos-release-13-4-1/packages/stk/stk_util/stk_util/ngp/NgpSpaces.hpp
--- Trilinos-trilinos-release-13-4-1_or/packages/stk/stk_util/stk_util/ngp/NgpSpaces.hpp 2023-06-12 22:13:54.653058491 +0200
+++ Trilinos-trilinos-release-13-4-1/packages/stk/stk_util/stk_util/ngp/NgpSpaces.hpp 2023-06-12 22:22:22.234504055 +0200
@@ -49,6 +49,8 @@
using ExecSpace = Kokkos::Experimental::HIP;
#elif defined(KOKKOS_ENABLE_OPENMP)
using ExecSpace = Kokkos::OpenMP;
+#elif defined(KOKKOS_ENABLE_THREADS)
+using ExecSpace = Kokkos::Threads;
#else
using ExecSpace = Kokkos::Serial;
#endif
@@ -59,6 +61,8 @@
using HostExecSpace = Kokkos::Serial;
#elif defined(KOKKOS_ENABLE_OPENMP)
using HostExecSpace = Kokkos::OpenMP;
+#elif defined(KOKKOS_ENABLE_THREADS)
+using HostExecSpace = Kokkos::Threads;
#else
using HostExecSpace = Kokkos::Serial;
#endif
@@ -69,6 +73,8 @@
using MemSpace = Kokkos::Experimental::HIPSpace;
#elif defined(KOKKOS_ENABLE_OPENMP)
using MemSpace = Kokkos::OpenMP;
+#elif defined(KOKKOS_ENABLE_THREADS)
+using MemSpace = Kokkos::Threads;
#else
using MemSpace = Kokkos::HostSpace;
#endif
@@ -83,6 +89,8 @@
using UVMMemSpace = Kokkos::Experimental::HIPHostPinnedSpace;
#elif defined(KOKKOS_ENABLE_OPENMP)
using UVMMemSpace = Kokkos::OpenMP;
+#elif defined(KOKKOS_ENABLE_THREADS)
+using UVMMemSpace = Kokkos::Threads;
#else
using UVMMemSpace = Kokkos::HostSpace;
#endif

View File

@ -1,11 +0,0 @@
diff -Naur Trilinos-trilinos-release-14-0-0_or/packages/teuchos/core/src/Teuchos_BigUIntDecl.hpp Trilinos-trilinos-release-14-0-0/packages/teuchos/core/src/Teuchos_BigUIntDecl.hpp
--- Trilinos-trilinos-release-14-0-0_or/packages/teuchos/core/src/Teuchos_BigUIntDecl.hpp 2023-06-14 22:54:06.565526085 +0200
+++ Trilinos-trilinos-release-14-0-0/packages/teuchos/core/src/Teuchos_BigUIntDecl.hpp 2023-06-14 22:54:26.028613299 +0200
@@ -43,6 +43,7 @@
#define TEUCHOS_BIG_UINT_DECL_HPP
#include <iosfwd>
+#include <cstdint>
/*! \file Teuchos_BigUIntDecl.hpp
\brief Arbitrary-precision unsigned integer declaration.

View File

@ -1,67 +0,0 @@
diff -Naur Trilinos-trilinos-release-14-0-0_or/packages/stk/stk_util/stk_util/ngp/NgpSpaces.hpp Trilinos-trilinos-release-14-0-0/packages/stk/stk_util/stk_util/ngp/NgpSpaces.hpp
--- Trilinos-trilinos-release-14-0-0_or/packages/stk/stk_util/stk_util/ngp/NgpSpaces.hpp 2023-06-14 23:24:20.313033330 +0200
+++ Trilinos-trilinos-release-14-0-0/packages/stk/stk_util/stk_util/ngp/NgpSpaces.hpp 2023-06-14 23:31:11.551230025 +0200
@@ -39,36 +39,21 @@
namespace stk {
namespace ngp {
-#ifdef KOKKOS_ENABLE_CUDA
-using ExecSpace = Kokkos::Cuda;
-#elif defined(KOKKOS_ENABLE_HIP)
-using ExecSpace = Kokkos::Experimental::HIP;
-#elif defined(KOKKOS_ENABLE_OPENMP)
-using ExecSpace = Kokkos::OpenMP;
-#else
-using ExecSpace = Kokkos::Serial;
-#endif
+using ExecSpace = Kokkos::DefaultExecutionSpace;
-#ifdef KOKKOS_ENABLE_CUDA
-using HostExecSpace = Kokkos::Serial;
-#elif defined(KOKKOS_ENABLE_HIP)
-using HostExecSpace = Kokkos::Serial;
-#elif defined(KOKKOS_ENABLE_OPENMP)
-using HostExecSpace = Kokkos::OpenMP;
-#else
-using HostExecSpace = Kokkos::Serial;
-#endif
+using HostExecSpace = Kokkos::DefaultHostExecutionSpace;
#ifdef KOKKOS_ENABLE_CUDA
using MemSpace = Kokkos::CudaSpace;
#elif defined(KOKKOS_ENABLE_HIP)
-using MemSpace = Kokkos::Experimental::HIPSpace;
-#elif defined(KOKKOS_ENABLE_OPENMP)
-using MemSpace = Kokkos::OpenMP;
+using MemSpace = Kokkos::HIPSpace;
#else
-using MemSpace = Kokkos::HostSpace;
+using MemSpace = ExecSpace::memory_space;
#endif
+#ifdef KOKKOS_HAS_SHARED_SPACE
+using UVMMemSpace = Kokkos::SharedSpace;
+#else
#ifdef KOKKOS_ENABLE_CUDA
#ifdef KOKKOS_ENABLE_CUDA_UVM
using UVMMemSpace = Kokkos::CudaUVMSpace;
@@ -82,7 +67,11 @@
#else
using UVMMemSpace = Kokkos::HostSpace;
#endif
+#endif
+#ifdef KOKKOS_HAS_SHARED_SPACE
+using HostPinnedSpace = Kokkos::SharedHostPinnedSpace;
+#else
#ifdef KOKKOS_ENABLE_CUDA
using HostPinnedSpace = Kokkos::CudaHostPinnedSpace;
#elif defined(KOKKOS_ENABLE_HIP)
@@ -90,6 +79,7 @@
#else
using HostPinnedSpace = MemSpace;
#endif
+#endif
#ifdef KOKKOS_ENABLE_HIP
template <typename ExecutionSpace>

View File

@ -1,314 +0,0 @@
# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
CMAKE_MAKEFILE_GENERATOR=emake
inherit cmake 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
https://dev.gentoo.org/~tamiko/distfiles/${PN}-13.4.0-patches-${PATCHSET}.tar.xz"
KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
LICENSE="BSD LGPL-2.1"
SLOT="0"
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 superlu_dist
"
# 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-5.0 )
superlu_dist? ( <sci-libs/superlu_dist-8.1.0 sci-libs/parmetis:= )
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"
S="${WORKDIR}/Trilinos-${PN}-release-${MY_PV}"
PATCHES=(
"${WORKDIR}"/patches
"${FILESDIR}"/v13-gcc-13.patch
"${FILESDIR}"/gcc-13.patch
"${FILESDIR}"/xyce.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}" )
}
#
# The following packages are currently disabled:
# - Adelus/Zadelus due to underlinkage.
# - Moertel due to underlinkage
# - SEACAS is incompatible with netcdf, see
# https://github.com/trilinos/Trilinos/tree/master/packages/seacas#netcdf
#
src_configure() {
local mycmakeargs=(
-DBUILD_SHARED_LIBS=ON
-DCMAKE_INSTALL_PREFIX="${EPREFIX}"
-DCMAKE_SKIP_INSTALL_RPATH=ON
-DCMAKE_INSTALL_RPATH_USE_LINK_PATH=OFF
-DTrilinos_INSTALL_CONFIG_DIR="${EPREFIX}/usr/$(get_libdir)/cmake"
-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_Adelus=OFF
-DTrilinos_ENABLE_Moertel=OFF
-DTrilinos_ENABLE_PyTrilinos=OFF
-DTrilinos_ENABLE_SEACAS=OFF
-DTrilinos_ENABLE_Amesos=ON
-DTrilinos_ENABLE_AztecOO=ON
-DTrilinos_ENABLE_COMPLEX_DOUBLE=ON
-DTrilinos_ENABLE_COMPLEX_FLOAT=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)"
-DTrilinos_ENABLE_NOX=ON
-DTrilinos_ENABLE_Triutils=ON
-DTrilinos_ENABLE_Belos=ON
-DTrilinos_ENABLE_TrilinosCouplings=ON
-DEpetraExt_BUILD_BTF=ON
-DEpetraExt_BUILD_EXPERIMENTAL=ON
-DEpetraExt_BUILD_GRAPH_REORDERINGS=ON
-DTrilinos_ENABLE_Amesos2=ON
-DAmesos2_ENABLE_KLU2=ON
# Enable Basker solver without Amesos2
-DKokkos_ENABLE_OPENMP="$(usex openmp)"
-DTrilinos_ENABLE_Kokkos=ON
-DTrilinos_ENABLE_ShyLU=ON
-DTrilinos_ENABLE_ShyLU_NodeBasker=ON
# Enable ShyLU solver
#-DTrilinos_ENABLE_ShyLU_DD=ON
#-DTrilinos_ENABLE_ShyLU_DDCore=ON
-DAmesos2_ENABLE_Basker=ON
-DCMAKE_CXX_FLAGS:STRING="-DSHYLU_NODEBASKER"
#-DAmesos2_ENABLE_SuperLU="$(usex superlu)"
#-DAmesos2_ENABLE_SuperLUDist="$(usex superlu_dist)"
#-DAmesos2_ENABLE_Eperta=ON
#-DTrilinos_ENABLE_ShyLU_DD=ON
#-DTrilinos_ENABLE_ShyLU_DDBDDC=ON
#-DTrilinos_ENABLE_ShyLU_NodeFastILU=ON
#-DTrilinos_ENABLE_ShyLU_DDCore=ON
#-DTrilinos_ENABLE_ShyLU_NodeFastILU=ON
#-DTpetra_INST_COMPLEX_FLOAT=OFF
#-DTpetra_INST_COMPLEX_DOUBLE=OFF
#-DAnasazi_ENABLE_COMPLEX=OFF
#-DAnasazi_ENABLE_Tpetra=OFF
-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_SuperLUDist="$(usex superlu_dist)"
-DTPL_ENABLE_ParMETIS="$(usex superlu_dist)"
-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
mycmakeargs+=(
-DCMAKE_CXX_COMPILER=mpicxx
-DCMAKE_C_COMPILER=mpicc
-DCMAKE_Fortran_COMPILER=mpif77
)
if use cuda ; then
export CC=nvcc_wrapper CXX=nvcc_wrapper && tc-export CC CXX
#export OMPI_CXX=/usr/lib64/trilinos/bin/nvcc_wrapper && tc-export OMPI_CXX
mycmakeargs+=(
-DCMAKE_CXX_COMPILER=/usr/lib64/trilinos/bin/nvcc_wrapper
-DCMAKE_C_COMPILER=/usr/lib64/trilinos/bin/nvcc_wrapper
#-DCMAKE_CXX_FLAGS="-g -lineinfo -Xcudafe --diag_suppress=conversion_function_not_usable -Xcudafe --diag_suppress=cc_clobber_ignored -Xcudafe --diag_suppress=code_is_unreachable"
-DTPL_ENABLE_MPI=ON
-DTPL_ENABLE_CUDA=ON
)
fi
# Trilinos needs a custom build type:
local CMAKE_BUILD_TYPE=Release
cmake_src_configure
}
src_install() {
cmake_src_install
mv "${ED}"/bin "${ED}/usr/$(get_libdir)"/trilinos || die "mv failed"
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...
#
cat >> "${T}"/99trilinos <<- EOF
LDPATH="${EPREFIX}/usr/$(get_libdir)/trilinos"
PATH="${EPREFIX}/usr/$(get_libdir)/trilinos/bin"
EOF
doenvd "${T}"/99trilinos
}

View File

@ -1,285 +0,0 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
CMAKE_MAKEFILE_GENERATOR=emake
inherit cmake 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"
KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
LICENSE="BSD LGPL-2.1"
SLOT="0"
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-5.0 )
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"
S="${WORKDIR}/Trilinos-${PN}-release-${MY_PV}"
PATCHES=(
"${FILESDIR}"/v14-gcc13.patch
"${FILESDIR}"/v14.patch
"${FILESDIR}"/xyce.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}" )
}
#
# The following packages are currently disabled:
# - Adelus/Zadelus due to underlinkage.
# - Moertel due to underlinkage
# - SEACAS is incompatible with netcdf, see
# https://github.com/trilinos/Trilinos/tree/master/packages/seacas#netcdf
#
src_configure() {
local mycmakeargs=(
-DBUILD_SHARED_LIBS=ON
-DCMAKE_INSTALL_PREFIX="${EPREFIX}"
-DCMAKE_SKIP_INSTALL_RPATH=ON
-DCMAKE_INSTALL_RPATH_USE_LINK_PATH=OFF
-DTrilinos_INSTALL_CONFIG_DIR="${EPREFIX}/usr/$(get_libdir)/cmake"
-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_Adelus=OFF
-DTrilinos_ENABLE_Moertel=OFF
-DTrilinos_ENABLE_PyTrilinos=OFF
-DTrilinos_ENABLE_SEACAS=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)"
)
local mycmakeargs+=(
# Xyce base depend
-DTrilinos_ENABLE_TrilinosCouplings=ON
-DEpetraExt_BUILD_BTF=ON
-DEpetraExt_BUILD_EXPERIMENTAL=ON
-DEpetraExt_BUILD_GRAPH_REORDERINGS=ON
#-DTeuchos_ENABLE_COMPLEX=ON
# error fixes
-DTrilinos_ENABLE_COMPLEX=ON
-DAmesos_ENABLE_CSparse="$(usex sparse)"
#-DTrilinos_ENABLE_COMPLEX_DOUBLE=ON
#-DTrilinos_ENABLE_COMPLEX_FLOAT=ON
#-DTeuchos_ENABLE_FLOAT=ON
#-DTpetra_INST_FLOAT=ON
# more solvers
#-DKokkos_ENABLE_THREADS="$(usex threads)"
#-DTpetra_INST_PTHREAD="$(usex threads)"
-DTrilinos_ENABLE_ShyLU_NodeTacho=OFF
#
-DAmesos_ENABLE_ParMETIS=ON
# Basker solver
-DAmesos2_ENABLE_Basker=ON
-DCMAKE_CXX_FLAGS:STRING="-DSHYLU_NODEBASKER"
)
#
# 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
}

View File

@ -4,7 +4,7 @@
EAPI=8
CMAKE_MAKEFILE_GENERATOR=emake
inherit cmake toolchain-funcs
inherit cmake flag-o-matic toolchain-funcs
DESCRIPTION="Scientific library collection for large scale problems"
HOMEPAGE="http://trilinos.sandia.gov/"
@ -19,7 +19,7 @@ SLOT="0"
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
superlu taucs tbb test threads tvmet yaml zlib X shylu
"
# TODO: fix export cmake function for tests
@ -45,6 +45,7 @@ RDEPEND="
matio? ( sci-libs/matio )
mkl? ( sci-libs/mkl )
metis? ( sci-libs/metis )
metis? ( openmp? ( sci-libs/parmetis ) )
mumps? ( sci-libs/mumps )
netcdf? ( sci-libs/netcdf:= )
petsc? ( sci-mathematics/petsc )
@ -58,15 +59,14 @@ RDEPEND="
tvmet? ( dev-libs/tvmet )
yaml? ( dev-cpp/yaml-cpp:= )
zlib? ( sys-libs/zlib )
X? ( x11-libs/libX11 )
sci-libs/parmetis"
X? ( x11-libs/libX11 )"
DEPEND="${RDEPEND}
virtual/pkgconfig"
S="${WORKDIR}/Trilinos-${PN}-release-${MY_PV}"
PATCHES=(
"${FILESDIR}"/xyce.patch
"${FILESDIR}/xyce.patch"
)
pkg_pretend() {
@ -94,28 +94,21 @@ trilinos_conf() {
[[ -n ${dirs} ]] && mycmakeargs+=( "-D${2}_INCLUDE_DIRS=${dirs:1}" )
}
#
# The following packages are currently disabled:
# - Adelus/Zadelus due to underlinkage.
# - Moertel due to underlinkage
# - SEACAS is incompatible with netcdf, see
# https://github.com/trilinos/Trilinos/tree/master/packages/seacas#netcdf
#
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
-DCMAKE_INSTALL_RPATH_USE_LINK_PATH=OFF
-DTrilinos_INSTALL_CONFIG_DIR="${EPREFIX}/usr/$(get_libdir)/cmake"
-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_Adelus=OFF
-DTrilinos_ENABLE_Moertel=OFF
-DTrilinos_ENABLE_PyTrilinos=OFF
-DTrilinos_ENABLE_SEACAS=OFF
-DTrilinos_ENABLE_Amesos=ON
-DTrilinos_ENABLE_AztecOO=ON
-DTrilinos_ENABLE_EpetraExt=ON
@ -179,6 +172,8 @@ src_configure() {
-DEpetraExt_BUILD_EXPERIMENTAL=ON
-DEpetraExt_BUILD_GRAPH_REORDERINGS=ON
-DTeuchos_ENABLE_COMPLEX=ON
-DTrilinos_ENABLE_ShyLU="$(usex shylu)"
-DTrilinos_ENABLE_ShyLU_NodeTacho="$(usex shylu)"
# error fixes
-DTrilinos_ENABLE_COMPLEX=ON
-DAmesos_ENABLE_CSparse="$(usex sparse)"
@ -189,13 +184,12 @@ src_configure() {
# more solvers
#-DKokkos_ENABLE_THREADS="$(usex threads)"
#-DTpetra_INST_PTHREAD="$(usex threads)"
-DTrilinos_ENABLE_ShyLU_NodeTacho=OFF
#
-DAmesos_ENABLE_ParMETIS=ON
-DAmesos_ENABLE_ParMETIS="$(usex metis)"
# Basker solver
-DAmesos2_ENABLE_Basker=ON
-DCMAKE_CXX_FLAGS:STRING="-DSHYLU_NODEBASKER"
)
)
#
# Make sure some critical configuration options are always set