From 0f558761aa2dee1017b4751e4017205e015a9560 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Wed, 29 Jun 2022 12:04:12 +0100 Subject: gentoo resync : 29.12.2022 --- sci-libs/trilinos/Manifest | 10 +- sci-libs/trilinos/metadata.xml | 1 + sci-libs/trilinos/trilinos-13.0.1-r2.ebuild | 218 ------------------------ sci-libs/trilinos/trilinos-13.0.1-r4.ebuild | 228 +++++++++++++++++++++++++ sci-libs/trilinos/trilinos-13.2.0.ebuild | 252 ++++++++++++++++++++++++++++ sci-libs/trilinos/trilinos-13.4.0-r3.ebuild | 252 ++++++++++++++++++++++++++++ 6 files changed, 741 insertions(+), 220 deletions(-) delete mode 100644 sci-libs/trilinos/trilinos-13.0.1-r2.ebuild create mode 100644 sci-libs/trilinos/trilinos-13.0.1-r4.ebuild create mode 100644 sci-libs/trilinos/trilinos-13.2.0.ebuild create mode 100644 sci-libs/trilinos/trilinos-13.4.0-r3.ebuild (limited to 'sci-libs/trilinos') diff --git a/sci-libs/trilinos/Manifest b/sci-libs/trilinos/Manifest index 891cd5ed7f7e..2be47572d150 100644 --- a/sci-libs/trilinos/Manifest +++ b/sci-libs/trilinos/Manifest @@ -1,4 +1,10 @@ DIST trilinos-13.0.0-patches-r0.tar.xz 7672 BLAKE2B 6412f1226549086ef2fca3c4d8bba3c5541489879f4fa37c3598a7271128e3232fa1cc56a51d44fb88d679458a79a082c3984085ddbe4bc0884b0cb45ba683c0 SHA512 91372fe0f47a1f5d4dbc1856e2cfb9d4f1eb8cc0de941013a7a6e791730c9e10decdcd4ca39b36bae836ac66040bee70af187b4a056d46b0da0fe72e8c5943fc DIST trilinos-13.0.1.tar.gz 157950374 BLAKE2B 79f337b02a0fe9ddf7b55334e035946204b3bb469b92fff4063896a378c82d9c5f04c0bf0e9ddd21603ecf9d84a91860606482b545916f16029a11d2b6c64aa0 SHA512 22241a9ad8b6b6ab9117aba254f65195fc0c8e1b52eacb16e763c999086b6da6b0c180d8864fbe421704e0fe0c433d37512099755d54e60f13ed525dc6c0fd57 -EBUILD trilinos-13.0.1-r2.ebuild 6356 BLAKE2B 6b0106b2d0a830e222d9551155ab3b082239b4d5be8ca0f98564b5842652b87a0c11ac7c1b87bb357c24756e0557e903653f5a71e8bfc60195e24551d0a8a6c7 SHA512 6b8444aff5763c279f8b68130f621475754bb507203504bde30302b23388bc006bd4ada1f06e6f603d55880bf290495ede9f96736242622f9cdbdb948e6c6f15 -MISC metadata.xml 2701 BLAKE2B 3899b8aa8424eca96d406c0ae3d66d30ed0d44a2070c9e5844b456730b89d8017feba10c5c75e1bcd6d3649a6ba37d044fa14f2822eb883b2b72bdb1667c32c7 SHA512 888dc051b32d4b3e227d3cca17bf64ec5885169c59669944a522d5d304ea2a5fa19854524b48e61ae3bb6c8483e717329d6384836301b691f6de15f6d13ed114 +DIST trilinos-13.2.0-patches-r0.tar.xz 7896 BLAKE2B 7bd482fd17c7a9a0f7d536f6e65ac49d5921daf82d22803aab8cf3b24e9ce7776b5c68b20c3efdd4b1b83e558b3be3386a61ca637066828e4d535c2b0bc85138 SHA512 14824c9998152bd044d048da07787cde94636dda99999c25ad2c5d66cd59b1975bcf0618a48fe2a28d44c6e3769f2fcabc09b0ba21dca9a6beecf278c1ad2bff +DIST trilinos-13.2.0.tar.gz 165860771 BLAKE2B 9ea8b27fd37a277aa1a988659919a012928edfd8b57a0fde240d9b9dce2832ab08fc0daf780aaab2a1422337bd02eddd6301fee203ab7ba4c213391cccd3be83 SHA512 b16dc9a815c8983f44786aac537b1b4ad7a43721eb553d6d33f07188280988f4297b4978b36d2d837a43faf16b518db29bf9b7997549318e3c95fd366eb16bc9 +DIST trilinos-13.4.0-patches-r0.tar.xz 8740 BLAKE2B 333ab9ff1acb2f4b08007c7b99b96f023f6c742e4f991fc0ab9dd6595be7e3e319a77d5e329790cedca72d7a9060df837549d28e8a6cb4b8a838570d455ae356 SHA512 f30c16801cadec2a612ab2f7d3ca05c5ddfdfc513343a182562253cdfb58d38fa8b771ab07f7bc6bcb2505d146469da2ddda478f74447de746d5eca850da123e +DIST trilinos-13.4.0.tar.gz 168733479 BLAKE2B 3c4a1c89b792ec771c6347eebb6bb54a82fa5f172d1c5934bbd42c8bc9708a71451bd030ec0f5264191a62169b3c1305ac7a1290b3ab4845fb6e8ffef15ee03c SHA512 27a5636bac8106a0705948ca4705b739878f0d8afa74264d1cd31036811084457e27e03e86dfad59a80d5e9ee798237fa930b50574ec3e43979e53c6ab5da535 +EBUILD trilinos-13.0.1-r4.ebuild 6593 BLAKE2B 84736d151a7412e84999a31cc60a91a89e717d5d8c889c2e765403811b3db0fe7dbb4958f0363cb1dbabcd33827603a46dcfc9e13f97ac0dc83aee9d5f59ad64 SHA512 ccdbdb5ad13aac787d33b3259683b1e6f71e6ba875928b6f52a1b3e89ded59892c4160046cf9a3ea763433966137788fc4abc879ad182bf866b194855e57bf2f +EBUILD trilinos-13.2.0.ebuild 7360 BLAKE2B 92e46832f36d7de4a70967fb78a59b660f004c945624b3cc2b1d9c27b1d0172f99351fe55b17e545dce981b57895455d1c2e48ac5814b6517bedb582de66e313 SHA512 29d2d07511bb19c90353850a5573f6c4f7674134c2e24bfc77d371b86fab2ca229c81e13989463b5c35706016c417d24a0b77e34826cc427b42db3d9d75c85d0 +EBUILD trilinos-13.4.0-r3.ebuild 7360 BLAKE2B e166d328c767fd6a0ca36544e3911d0076f47dcf3c4a169a4dfea2d87871bd0a4f157bb59fe8afaa78f13264d3a3e200c488e6f05b6558c12153fa83f20ef033 SHA512 9a1c3cdab829e20806a0f4ccd95c41910fc7358e08db8ef20a7042e059af91945a5628e5dd4674560b43ba4bdd31ec38d2dab228374e25fa800f3f7223ba3816 +MISC metadata.xml 2812 BLAKE2B 2e800301cbcdb1e1a4fecb285a4e98901cf4dae3e84b33a257fd14be86a762fe396541480187044c0787ade12b8b3b142535352e29afbb2bcb1435d7016e47a0 SHA512 91c25350aac731a5a57b8def2678147e35b8e58e447bb02688f89fd3aca76728af1e85df1aedcc208a8dd7cf19118a69867d907ccf1ff6bb0fcb7c27cd701253 diff --git a/sci-libs/trilinos/metadata.xml b/sci-libs/trilinos/metadata.xml index 8e99b0a5654f..75b56d669dac 100644 --- a/sci-libs/trilinos/metadata.xml +++ b/sci-libs/trilinos/metadata.xml @@ -16,6 +16,7 @@ of large-scale, complex multi-physics engineering and scientific problems. Add support for adolc (sci-libs/adolc) + Enable all supported Trilinos packages (per default only a subset is built) Add support for arprec (sci-libs/arprec) Add support for clp (sci-libs/coinor-clp) Add support for cuda (dev-util/nvidia-cuda-toolkit) diff --git a/sci-libs/trilinos/trilinos-13.0.1-r2.ebuild b/sci-libs/trilinos/trilinos-13.0.1-r2.ebuild deleted file mode 100644 index b4408c0d397a..000000000000 --- a/sci-libs/trilinos/trilinos-13.0.1-r2.ebuild +++ /dev/null @@ -1,218 +0,0 @@ -# Copyright 1999-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -CMAKE_MAKEFILE_GENERATOR=emake -inherit cmake toolchain-funcs multilib - -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.0.0-patches-${PATCHSET}.tar.xz" - -KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux" -LICENSE="BSD LGPL-2.1" -SLOT="0" - -IUSE=" - adolc arprec clp cuda eigen glpk gtest hdf5 hwloc hypre - matio metis mkl mumps netcdf 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" - -S="${WORKDIR}/Trilinos-${PN}-release-${MY_PV}" - -PATCHES=( - "${WORKDIR}"/patches -) - -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() { - local mycmakeargs=( - -DBUILD_SHARED_LIBS=ON - -DCMAKE_INSTALL_PREFIX="${EPREFIX}" - -DCMAKE_SKIP_INSTALL_RPATH=ON - -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=ON - -DTrilinos_ENABLE_PyTrilinos=OFF - -DTrilinos_ENABLE_SEACAS=OFF - -DTrilinos_ENABLE_SEACASChaco=OFF - -DTrilinos_ENABLE_SEACASExodiff="$(usex netcdf)" - -DTrilinos_ENABLE_SEACASExodus="$(usex netcdf)" - -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)" - -DML_ENABLE_SuperLU:BOOL=OFF - ) - - 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. - # - 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: - mv "${ED}"/bin "${ED}/usr/$(get_libdir)"/trilinos || die "mv failed" - mv "${ED}/usr/$(get_libdir)"/trilinos/cmake/* "${ED}/usr/$(get_libdir)"/cmake || die "mv failed" - rmdir "${ED}/usr/$(get_libdir)/trilinos/cmake" || die "rmdir failed" - if [ -f "${ED}"/lib/exodus.py ]; then - mv "${ED}"/lib/exodus.py "${ED}/usr/$(get_libdir)"/trilinos || die "mv failed" - fi - if [[ $(get_libdir) != lib ]]; then - mv "${ED}"/usr/lib/pkgconfig "${ED}/usr/$(get_libdir)" - fi - - mv "${ED}"/include/* "${ED}"/usr/include || die "mv failed" - rmdir "${ED}"/include - - # - # 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 -} diff --git a/sci-libs/trilinos/trilinos-13.0.1-r4.ebuild b/sci-libs/trilinos/trilinos-13.0.1-r4.ebuild new file mode 100644 index 000000000000..8f5af315e03e --- /dev/null +++ b/sci-libs/trilinos/trilinos-13.0.1-r4.ebuild @@ -0,0 +1,228 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +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.0.0-patches-${PATCHSET}.tar.xz" + +KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux" +LICENSE="BSD LGPL-2.1" +SLOT="0" + +IUSE=" + adolc 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" + +S="${WORKDIR}/Trilinos-${PN}-release-${MY_PV}" + +PATCHES=( + "${WORKDIR}"/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() { + local mycmakeargs=( + -DBUILD_SHARED_LIBS=ON + -DCMAKE_INSTALL_PREFIX="${EPREFIX}" + -DCMAKE_SKIP_INSTALL_RPATH=ON + -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=ON + -DTrilinos_ENABLE_OpenMP="$(usex openmp)" + -DTrilinos_ENABLE_PyTrilinos=OFF + -DTrilinos_ENABLE_SEACASChaco=OFF + -DTrilinos_ENABLE_SEACASExodiff="$(usex netcdf)" + -DTrilinos_ENABLE_SEACASExodus="$(usex netcdf)" + -DTrilinos_ENABLE_SEACAS=OFF + -DTrilinos_ENABLE_ADELUS=OFF + -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)" + -DML_ENABLE_SuperLU:BOOL=OFF + ) + + 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. + # + 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: + mv "${ED}"/bin "${ED}/usr/$(get_libdir)"/trilinos || die "mv failed" + mv "${ED}/usr/$(get_libdir)"/trilinos/cmake/* "${ED}/usr/$(get_libdir)"/cmake || die "mv failed" + rmdir "${ED}/usr/$(get_libdir)/trilinos/cmake" || die "rmdir failed" + if [ -f "${ED}"/lib/exodus.py ]; then + mv "${ED}"/lib/exodus.py "${ED}/usr/$(get_libdir)"/trilinos || die "mv failed" + fi + if [[ $(get_libdir) != lib ]]; then + mv "${ED}"/usr/lib/pkgconfig "${ED}/usr/$(get_libdir)" + fi + + mv "${ED}"/include/* "${ED}"/usr/include || die "mv failed" + rmdir "${ED}"/include + + # + # 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 +} diff --git a/sci-libs/trilinos/trilinos-13.2.0.ebuild b/sci-libs/trilinos/trilinos-13.2.0.ebuild new file mode 100644 index 000000000000..b4df7074f964 --- /dev/null +++ b/sci-libs/trilinos/trilinos-13.2.0.ebuild @@ -0,0 +1,252 @@ +# 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/${P}-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 +" + +# 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" + +S="${WORKDIR}/Trilinos-${PN}-release-${MY_PV}" + +PATCHES=( + "${WORKDIR}"/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}" ) +} + +# +# 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)" + -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: + mv "${ED}"/bin "${ED}/usr/$(get_libdir)"/trilinos || die "mv failed" + mv "${ED}/usr/$(get_libdir)"/trilinos/cmake/* "${ED}/usr/$(get_libdir)"/cmake || die "mv 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 +} diff --git a/sci-libs/trilinos/trilinos-13.4.0-r3.ebuild b/sci-libs/trilinos/trilinos-13.4.0-r3.ebuild new file mode 100644 index 000000000000..9996b79bd35d --- /dev/null +++ b/sci-libs/trilinos/trilinos-13.4.0-r3.ebuild @@ -0,0 +1,252 @@ +# 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/${P}-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 +" + +# 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" + +S="${WORKDIR}/Trilinos-${PN}-release-${MY_PV}" + +PATCHES=( + "${WORKDIR}"/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}" ) +} + +# +# 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)" + -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: + mv "${ED}"/bin "${ED}/usr/$(get_libdir)"/trilinos || die "mv failed" + mv "${ED}/usr/$(get_libdir)"/trilinos/cmake/* "${ED}/usr/$(get_libdir)"/cmake || die "mv 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 +} -- cgit v1.2.3