# Copyright 1999-2013 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: $ EAPI=5 inherit cmake-utils DESCRIPTION="Scientific library collection for large scale problems" HOMEPAGE="http://trilinos.sandia.gov/" SRC_URI="${P}-Source.tar.gz" SRC_PAGE="10.10" SLOT="0" LICENSE="BSD LGPL-2.1" IUSE="arprec boost cuda hdf5 hwloc netcdf qd qt4 scotch taucs tbb umfpack zlib" KEYWORDS="~amd64 ~x86" RDEPEND=" virtual/blas virtual/lapack virtual/mpi >=sci-libs/scalapack-2 arprec? ( sci-libs/arprec ) boost? ( dev-libs/boost ) cuda? ( >=dev-util/nvidia-cuda-toolkit-3.2 ) hdf5? ( sci-libs/hdf5[mpi] ) hwloc? ( sys-apps/hwloc ) netcdf? ( sci-libs/netcdf ) qd? ( sci-libs/qd ) qt4? ( >=dev-qt/qtgui-4.5 ) scotch? ( sys-libs/scotch[mpi] ) taucs? ( sci-libs/taucs ) tbb? ( dev-cpp/tbb ) umfpack? ( sci-libs/umfpack )" DEPEND="${RDEPEND} virtual/pkgconfig" S="${WORKDIR}/${P}-Source" RESTRICT="fetch" pkg_nofetch() { einfo "Sandia requires that you register to the site in order to download Trilinos." einfo "Please download ${SRC_URI} from:" einfo "http://trilinos.sandia.gov/download/trilinos-${SRC_PAGE}.html" einfo "and move it to ${DISTDIR}" } function trilinos_alternatives { alt_dirs="" for d in $(pkg-config --libs-only-L $1); do alt_dirs="${alt_dirs};${d:2}" done arg="-D${2}_LIBRARY_DIRS=${alt_dirs:1}" mycmakeargs+=( $arg ) alt_libs="" for d in $(pkg-config --libs-only-l $1); do alt_libs="${alt_libs};${d:2}" done arg="-D${2}_LIBRARY_NAMES=${alt_libs:1}" mycmakeargs+=( $arg ) } src_configure() { CMAKE_BUILD_TYPE="release" mycmakeargs=( -DBUILD_SHARED_LIBS=ON -DTrilinos_ENABLE_ALL_PACKAGES=ON # Directories (workaround for generating correct Makefiles and CMakefiles) -DCMAKE_INSTALL_PREFIX="/" -DTrilinos_INSTALL_INCLUDE_DIR="/usr/include/trilinos" -DTrilinos_INSTALL_LIB_DIR="/usr/$(get_libdir)/trilinos" # Tests $(cmake-utils_use test Trilinos_ENABLE_TESTS) # Mandatory dependencies -DTPL_ENABLE_BinUtils=ON -DTPL_ENABLE_MPI=ON -DTPL_ENABLE_BLAS=ON -DTPL_ENABLE_LAPACK=ON -DTPL_ENABLE_BLACS=ON -DTPL_ENABLE_SCALAPACK=ON -DTrilinos_EXTRA_LINK_FLAGS="-lmpi -lmpi_cxx" # Optional dependencies $(cmake-utils_use arprec TPL_ENABLE_ARPREC) $(cmake-utils_use boost TPL_ENABLE_Boost) $(cmake-utils_use boost TPL_ENABLE_BoostLib) $(cmake-utils_use cuda TPL_ENABLE_CUDA) $(cmake-utils_use hdf5 TPL_ENABLE_HDF5) $(cmake-utils_use hwloc TPL_ENABLE_HWLOC) $(cmake-utils_use netcdf TPL_ENABLE_Netcdf) $(cmake-utils_use qd TPL_ENABLE_QD) $(cmake-utils_use qt TPL_ENABLE_QT) $(cmake-utils_use scotch TPL_ENABLE_Scotch) $(cmake-utils_use taucs TPL_ENABLE_TAUCS) $(cmake-utils_use tbb TPL_ENABLE_TBB) $(cmake-utils_use umfpack TPL_ENABLE_UMFPACK) $(cmake-utils_use zlib TPL_ENABLE_Zlib) ) # Scotch libraries if use scotch; then mycmakeargs+=( -DScotch_INCLUDE_DIRS="/usr/include/scotch" ) fi # Add BLAS libraries trilinos_alternatives blas BLAS trilinos_alternatives lapack LAPACK trilinos_alternatives scalapack SCALAPACK trilinos_alternatives scalapack BLACS mycmakeargs+=( -DBLACS_INCLUDE_DIRS="/usr/include/blacs" ) cmake-utils_src_configure }