aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'sci-misc/elmer-fem/elmer-fem-9.0.ebuild')
-rw-r--r--sci-misc/elmer-fem/elmer-fem-9.0.ebuild68
1 files changed, 68 insertions, 0 deletions
diff --git a/sci-misc/elmer-fem/elmer-fem-9.0.ebuild b/sci-misc/elmer-fem/elmer-fem-9.0.ebuild
new file mode 100644
index 000000000..8db83bd30
--- /dev/null
+++ b/sci-misc/elmer-fem/elmer-fem-9.0.ebuild
@@ -0,0 +1,68 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+FORTRAN_STANDARD=90
+
+inherit fortran-2 flag-o-matic cmake multilib
+
+ELMER_ROOT="elmerfem"
+MY_PN=${PN/elmer-/}
+
+DESCRIPTION="Finite element programs, libraries, and visualization tools"
+HOMEPAGE="https://www.csc.fi/web/elmer http://www.elmerfem.org/blog/"
+SRC_URI="https://github.com/ElmerCSC/elmerfem/archive/release-${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+IUSE="ice gui matc mpi test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ virtual/blas
+ virtual/lapack
+ !sci-libs/arpack
+ mpi? ( sys-cluster/openmpi )
+ gui? ( x11-libs/qwt:6 )
+"
+DEPEND="${RDEPEND}"
+# Note this seems to only configure correctly with the elmer version of umfpack
+# But this doesn't stop it from compiling / working without it
+
+PATCHES=(
+ "${FILESDIR}/${PN}-ElmerIce-compile.patch"
+)
+
+S="${WORKDIR}/elmerfem-release-${PV}"
+
+src_prepare() {
+ cmake_src_prepare
+ sed -i '/#include <QPainter>/a #include <QPainterPath>' ElmerGUI/Application/twod/renderarea.cpp || die
+ test-flag-FC -fallow-argument-mismatch && append-fflags -fallow-argument-mismatch
+ test-flag-FC -fallow-invalid-boz && append-fflags -fallow-invalid-boz
+ # TODO: fix the tests, fails in compile phase: multiple rules to make target
+ rm -r fem/tests/* || die
+ touch fem/tests/CMakeLists.txt || die
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DMPI_Fortran_COMPILE_FLAGS="$FCFLAGS"
+ -DCMAKE_Fortran_FLAGS="$FCFLAGS"
+ -DELMER_INSTALL_LIB_DIR="/usr/$(get_libdir)"
+ -DWITH_MPI="$(usex mpi)"
+ -DWITH_OpenMP="$(usex mpi)"
+ -DWITH_MATC="$(usex matc)"
+ -DWITH_ElmerIce="$(usex ice)"
+ -DWITH_ELMERGUI="$(usex gui)"
+ -DWITH_QT5="$(usex gui)"
+ -DWITH_QWT="$(usex gui)"
+ -DQWT_INCLUDE_DIR="/usr/include/qwt6"
+ -DQWT_LIBRARY="/usr/$(get_libdir)/libqwt6-qt5.so"
+ -DBUILD_TESTING="$(usex test)"
+ )
+ cmake_src_configure
+}