#!/bin/hint/bash # Maintainer : bartus # Contributor: Randy Heydon # Contributor: saxonbeta vtk conflict ((!DISABLE_MUMPS)) && depends+=('mumps-par') # mumps ((!DISABLE_OCC)) && depends+=('opencascade') # opencascade ((!DISABLE_HYPRE)) && depends+=('hypre') ((!DISABLE_MPI)) && depends+=('openmpi') ((!DISABLE_MP)) && depends+=('openmp') makedepends=('git' 'gcc-fortran' 'cmake') provides=('elmerfem') conflicts=('elmerfem') options=(!emptydirs !staticlibs) source=("git+https://github.com/ElmerCSC/elmerfem.git${_fragment}" "$_pkgname.desktop" "arpack.patch" "print_target_properties.patch" "vtk9.cmake.patch" "vtk9.1.patch::https://github.com/ElmerCSC/elmerfem/pull/308.patch" "cmake-fix.patch::https://github.com/ElmerCSC/elmerfem/pull/309.patch" "FindMMG.patch") sha256sums=('SKIP' 'f4b39389e5f258c7860b8d7a6b171fb54bf849dc772f640ac5e7a12c7a384aca' '04e73a99d7e8d501a2c7c5211a83257137a30a8b1b5c2f7c7ff6304e0e0a6da9' 'da0245b22e305591913e1f78c5808a2aa33b9380a6052e5596fc16280234aac0' '535b030ce72952ae6c0d0e5574d343b2236be0451d3ce287d9b956ca61d072ff' '5b72df017d8a5c1d482798d9fcd72e92c319844123f4a2dab57db56d340f998e' '1e2c5b810dc9388f837d79c25a419d3ab250fa084b7b8f1d5b6cbe9b8dd537bf' '89b0e79ca1ad8952839d0578cdbce86ea4dad46e3c68aa1ce5b8b83bcff94e57') pkgver() { git -C "${srcdir}/${_pkgname}" describe --long --tag| sed -r 's/^release-//;s/([^-]*-g)/r\1/;s/-/./g' } prepare() { cd "$srcdir/$_pkgname" sed -i 's/1 depth/1 ${depth}/g' fem/tests/CMakeLists.txt sed -i 's/FALSE/false/g' ElmerGUI/Application/vtkpost/matc.cpp sed -i '/OCE/s/DIRS/DIR/g;s/OCE/OpenCASCADE/g' ElmerGUI{/,/Application}/CMakeLists.txt sed -i '/BRepMesh.hxx/d' ElmerGUI/Application/cad/cadview.cpp ((!DISABLE_VTK)) && patch+=(vtk9{.1,.cmake}.patch) ((!DISABLE_MMG)) && patch+=({FindMMG,print_target_properties}.patch) for patch in "${srcdir}"/{arpack,cmake-fix}.patch "${patch[@]/#/${srcdir}/}" do msg2 "Apply: ${patch##*/}"; git apply -v "$patch" done } build() { export FFLAGS+=" -fallow-argument-mismatch" cmake -S "${srcdir}"/$_pkgname -B build \ "${_CMAKE_FLAGS[@]}" cmake --build build -- all } check() { cd "$srcdir/build" export PATH=$PATH:$PWD/fem/src jobs=$(grep -oP -- "-j\s*\K[0-9]+" <<< "${MAKEFLAGS}") ((!DISABLE_MP)) && export OMP_NUM_THREADS=$jobs ctest -j "$((DISABLE_MPI?jobs:jobs/2))" -LE slow || ((DISABLE_CHECK)) && true # -LE slow: exclude test with label 'slow' } package() { make -C build DESTDIR="$pkgdir" install cd "$pkgdir/usr" if ((!DISABLE_GUI)); then # Remove unecessary libraries rm -rf -- lib/{*.a,ElmerGUI} #Create directories install -dv share/applications install -dv share/pixmaps install -dv share/licenses/$_pkgname #Icon and desktop files install -D -m644 "$srcdir/$_pkgname/ElmerGUI/Application/images/logo.png" share/pixmaps/$_pkgname.png install -D -m644 "$srcdir/$_pkgname.desktop" share/applications #Clean up and move stuff in place cp share/ElmerGUI/edf-extra/* share/ElmerGUI/edf mv share/ElmerGUI/license_texts/GPL_EXCEPTION share/licenses/$_pkgname rm share/ElmerGUI/license_texts/* fi } # vim:set sw=2 ts=2 et: