blob: e50a2e1afae6d17fb8708b548dee245642a92ab9 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
|
# Copyright 1999-2014 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $
EAPI="5"
inherit cmake-utils toolchain-funcs
DESCRIPTION="Scientific library collection for large scale problems"
HOMEPAGE="http://trilinos.sandia.gov/"
SRC_URI="${P}-Source.tar.gz"
SRC_PAGE="11.0"
SLOT="0"
LICENSE="BSD LGPL-2.1"
KEYWORDS="~amd64 ~x86"
IUSE="arprec boost cuda hdf5 hwloc netcdf qd qt4 scotch taucs tbb test umfpack zlib"
RESTRICT="fetch"
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 )
scotch? ( sci-libs/scotch[mpi] )
taucs? ( sci-libs/taucs )
tbb? ( dev-cpp/tbb )
umfpack? ( sci-libs/umfpack )"
DEPEND="${RDEPEND}
virtual/pkgconfig"
S="${WORKDIR}/${P}-Source"
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 $($(tc-getPKG_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 $($(tc-getPKG_CONFIG) --libs-only-l $1); do
alt_libs="${alt_libs};${d:2}"
done
arg="-D${2}_LIBRARY_NAMES=${alt_libs:1}"
mycmakeargs+=(
$arg
)
}
src_prepare() {
epatch "${FILESDIR}"/${P}-fix-install-paths.patch
}
src_configure() {
CMAKE_BUILD_TYPE="release"
mycmakeargs=(
-DBUILD_SHARED_LIBS=ON
-DTrilinos_ENABLE_ALL_PACKAGES=ON
-DTrilinos_INSTALL_BIN_DIR="bin"
-DTrilinos_INSTALL_CONFIG_DIR="$(get_libdir)/cmake"
-DTrilinos_INSTALL_INCLUDE_DIR="include/trilinos"
-DTrilinos_INSTALL_LIB_DIR="$(get_libdir)"
-DTrilinos_INSTALL_EXAMPLE_DIR="share/trilinos/example"
# 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 qt4 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="${EPREFIX}/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="${EPREFIX}/usr/include/blacs" )
cmake-utils_src_configure
}
|