From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id C74E01382FE for ; Tue, 12 Jul 2016 19:57:15 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 43FB6E0B7D; Tue, 12 Jul 2016 19:57:13 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 80D6AE0B7C for ; Tue, 12 Jul 2016 19:57:12 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 5D09E340E69 for ; Tue, 12 Jul 2016 19:57:11 +0000 (UTC) Received: from localhost.localdomain (localhost [127.0.0.1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 717BE244F for ; Tue, 12 Jul 2016 19:57:08 +0000 (UTC) From: "Marius Brehler" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Marius Brehler" Message-ID: <1468069280.b9815b6d26603b8d8f93f052e644a4748b358743.marbre@gentoo> Subject: [gentoo-commits] proj/sci:master commit in: sci-libs/trilinos/ X-VCS-Repository: proj/sci X-VCS-Files: sci-libs/trilinos/trilinos-12.6.3.ebuild X-VCS-Directories: sci-libs/trilinos/ X-VCS-Committer: marbre X-VCS-Committer-Name: Marius Brehler X-VCS-Revision: b9815b6d26603b8d8f93f052e644a4748b358743 X-VCS-Branch: master Date: Tue, 12 Jul 2016 19:57:08 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Archives-Salt: 79f36a50-8551-45e6-9386-d0fc9d24da1e X-Archives-Hash: 0699cc9fd33562b6ea4dd25abe63bae0 commit: b9815b6d26603b8d8f93f052e644a4748b358743 Author: Matthias Maier gentoo org> AuthorDate: Sat Jul 9 12:40:36 2016 +0000 Commit: Marius Brehler linux sungazer de> CommitDate: Sat Jul 9 13:01:20 2016 +0000 URL: https://gitweb.gentoo.org/proj/sci.git/commit/?id=b9815b6d sci-libs/trilinos: version bump to 12.6.3 Package-Manager: portage-2.2.28 sci-libs/trilinos/trilinos-12.6.3.ebuild | 208 +++++++++++++++++++++++++++++++ 1 file changed, 208 insertions(+) diff --git a/sci-libs/trilinos/trilinos-12.6.3.ebuild b/sci-libs/trilinos/trilinos-12.6.3.ebuild new file mode 100644 index 0000000..707a6f1 --- /dev/null +++ b/sci-libs/trilinos/trilinos-12.6.3.ebuild @@ -0,0 +1,208 @@ +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 + +inherit cmake-utils toolchain-funcs multilib toolchain-funcs + +DESCRIPTION="Scientific library collection for large scale problems" +HOMEPAGE="http://trilinos.sandia.gov/" +SRC_URI="http://trilinos.org/oldsite/download/files/${P}-Source.tar.gz" + +KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux" + +LICENSE="BSD LGPL-2.1" +SLOT="0" + +IUSE=" + adolc arprec boost clp cppunit cuda eigen glpk gtest hdf5 hwloc hypre + matio metis mkl mumps netcdf petsc qd qt4 scalapack scotch sparse + superlu taucs tbb test threads tvmet yaml zlib +" + +# TODO: fix export cmake function for tests +RESTRICT="test" + +RDEPEND=" + sys-libs/binutils-libs + virtual/blas + virtual/lapack + virtual/mpi + adolc? ( sci-libs/adolc ) + arprec? ( sci-libs/arprec ) + boost? ( dev-libs/boost ) + clp? ( sci-libs/coinor-clp ) + cuda? ( >=dev-util/nvidia-cuda-toolkit-3.2 ) + eigen? ( dev-cpp/eigen:3 ) + 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/parmetis sci-libs/metis ) ) + mumps? ( sci-libs/mumps ) + netcdf? ( sci-libs/netcdf ) + petsc? ( sci-mathematics/petsc ) + qd? ( sci-libs/qd ) + qt4? ( dev-qt/qtgui:4 ) + scalapack? ( virtual/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 )" +DEPEND="${RDEPEND} + virtual/pkgconfig" + +S="${WORKDIR}/${P}-Source" + +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}" ) +} + +trilinos_enable() { + cmake-utils_use $1 TPL_ENABLE_${2:-${1^^}} +} + +src_prepare() { + epatch "${FILESDIR}"/${PN}-11.14.1-fix-install-paths.patch \ + "${FILESDIR}"/${PN}-12.6.2-fix_install_paths_for_destdir.patch +} + +src_configure() { + + # temporarily disable SEACAS and pyTrilinos compilation + local mycmakeargs=( + -DBUILD_SHARED_LIBS=ON + -DCMAKE_INSTALL_PREFIX="${EPREFIX}" + -DTrilinos_ENABLE_ALL_PACKAGES=ON + -DTrilinos_ENABLE_SEACAS=OFF + -DTrilinos_ENABLE_PyTrilinos=OFF + -DTrilinos_INSTALL_INCLUDE_DIR="${EPREFIX}/usr/include/trilinos" + -DTrilinos_INSTALL_LIB_DIR="${EPREFIX}/usr/$(get_libdir)/trilinos" + -DTrilinos_INSTALL_CONFIG_DIR="${EPREFIX}/usr/$(get_libdir)/cmake" + -DTPL_ENABLE_BinUtils=ON + -DTPL_ENABLE_MPI=ON + -DTPL_ENABLE_BLAS=ON + -DTPL_ENABLE_LAPACK=ON + $(cmake-utils_use test Trilinos_ENABLE_TESTS) + $(trilinos_enable adolc) + $(trilinos_enable arprec) + $(trilinos_enable boost Boost) + $(trilinos_enable boost BoostLib) + $(trilinos_enable cppunit Cppunit) + $(trilinos_enable clp Clp) + $(trilinos_enable cuda) + $(trilinos_enable cuda CUSPARSE) + $(trilinos_enable cuda Thrust) + $(trilinos_enable eigen Eigen) + $(trilinos_enable gtest gtest) + $(trilinos_enable glpk) + $(trilinos_enable hdf5) + $(trilinos_enable hwloc) + $(trilinos_enable hypre) + $(trilinos_enable matio) + $(trilinos_enable metis) + $(trilinos_enable mkl) + $(trilinos_enable mkl PARDISO_MKL) + $(trilinos_enable mumps) + $(trilinos_enable netcdf Netcdf) + $(trilinos_enable petsc) + $(trilinos_enable qd) + $(trilinos_enable qt4 QT) + $(trilinos_enable scalapack) + $(trilinos_enable scalapack BLACS) + $(trilinos_enable scotch Scotch) + $(trilinos_enable sparse AMD) + $(trilinos_enable sparse CSparse) + $(trilinos_enable sparse UMFPACK) + $(trilinos_enable superlu SuperLU) + $(trilinos_enable taucs) + $(trilinos_enable tbb) + $(trilinos_enable threads Pthread) + $(trilinos_enable tvmet) + $(trilinos_enable yaml yaml-cpp) + $(trilinos_enable zlib Zlib) + ) + + 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 + + # TODO: do we need that line? + export CC=mpicc CXX=mpicxx && tc-export CC CXX + + # cmake-utils eclass patches the base directory CMakeLists.txt + # which does not work for complex Trilinos CMake modules + CMAKE_BUILD_TYPE=RELEASE cmake-utils_src_configure + + # TODO: + # python bindings with python-r1 + # fix hypre bindings + # fix hdf5 + # cuda/thrust is untested + # do we always need mpi? and for all packages: blah[mpi] ? + # install docs, examples + # see what packages are related, do we need REQUIRED_USE + # proper use flags description + # add more use flags/packages ? +} + +src_install() { + cmake-utils_src_install + + # 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" + EOF + doenvd "${T}"/99trilinos +}