diff --git a/science/elmerfem/Makefile b/science/elmerfem/Makefile index 2b860d3b8477..32806a7ae7d4 100644 --- a/science/elmerfem/Makefile +++ b/science/elmerfem/Makefile @@ -1,118 +1,130 @@ PORTNAME= elmerfem DISTVERSIONPREFIX= release- DISTVERSION= 26.1 +PORTREVISION= 1 CATEGORIES= science MAINTAINER= thierry@FreeBSD.org COMMENT= Multiphysical simulation software WWW= https://www.elmerfem.org/blog/ LICENSE= GPLv2 LIB_DEPENDS= libhdf5.so:science/hdf5 \ libmetis.so:math/metis \ libnetcdf.so:science/netcdf \ libparpack.so:math/arpack-ng \ libcholmod.so:math/suitesparse-cholmod \ libumfpack.so:math/suitesparse-umfpack USES= blaslapack:openblas cmake compiler:c++11-lang fortran localbase mpi USE_CXXSTD= c++14 USE_GITHUB= yes GH_ACCOUNT= ElmerCSC USE_LDCONFIG= ${PREFIX}/lib/elmersolver CMAKE_ARGS= -DELMER_FEM_REVISION:STRING=${GH_TAGNAME} ALL_TARGET= # empty CMAKE_ARGS+= -DHAVE_INTTYPES_H:BOOL=ON \ -DEXTERNAL_ARPACK:BOOL=ON \ -DEXTERNAL_PARPACK:BOOL=ON \ -DEXTERNAL_UMFPACK:BOOL=ON .if !defined(MAINTAINER_MODE) CMAKE_ARGS+= -Wno-dev .endif OPTIONS_DEFINE= DOCS GUI OCC OPTIONS_DEFAULT= GUI OCC OPTIONS_SUB= yes GUI_DESC= Build with ElmerGUI (Graphical User Interface) OCC_DESC= Use OpenCASCADE for CAD import in ElmerGUI DOCS_USES= tex DOCS_USE= tex=pdftex:build GUI_LIB_DEPENDS= libqwt.so:x11-toolkits/qwt6@qt5 GUI_USES= gl jpeg qt:5 xorg GUI_USE= gl=gl,glu xorg=ice,sm,x11,xext,xt qt=${_QT5_LIBS:ts,} GUI_CMAKE_BOOL= WITH_ELMERGUI WITH_PARAVIEW GUI_CMAKE_ON= -DQWT_LIBRARY=${QT_LIBDIR}/libqwt.so \ -DQWT_INCLUDE_DIR=${QT_INCDIR}/qwt6 \ -DDESIRED_QT_VERSION=5 \ -DWITH_QT5:BOOL=TRUE \ -DQT_FOUND:BOOL=TRUE OCC_IMPLIES= GUI OCC_LIB_DEPENDS= libexpat.so:textproc/expat2 \ libfreetype.so:print/freetype2 \ libpng.so:graphics/png \ libpython${_PYVERSION}.so:lang/python${PYTHON_SUFFIX} \ libboost_thread.so:devel/boost-libs \ libtiff.so:graphics/tiff \ libTKernel.so:cad/opencascade \ libvtksys-${VTK_VER}.so:math/vtk${VTK_VER:R} OCC_USES= python OCC_CMAKE_BOOL= WITH_OCC OCC_CMAKE_ON= -DVTK_DIR=${LOCALBASE}/lib/cmake/vtk-9.0 \ -DPython3_EXECUTABLE=${PYTHON_CMD} _LIBSTAGEDIR= ${STAGEDIR}/${PREFIX}/lib/elmersolver _PYVERSION= ${PYTHON_VER}${PYTHON_ABIVER} _QT5_LIBS= buildtools:build core declarative gui network opengl \ printsupport qmake:build script sql svg widgets xml .include <../../math/vtk9/Makefile.version> .include .if ${ARCH} == "amd64" CFLAGS_${ARCH}= -fPIC CXXFLAGS_${ARCH}= -fPIC FCFLAGS+= -fPIC FFLAGS+= -fPIC .endif +PDFS= elmerice/Solvers/Documentation/m1qn3.pdf \ + elmerice/Solvers/Documentation/poroussolver.pdf \ + elmerice/Solvers/Documentation/siasolver.pdf \ + elmerice/UserFunctions/Documentation/usf_damage.pdf \ + fem/src/modules/contrib/ShellMultiSolver/ShellMutiSolverUserGuide.pdf +PORTDOCS= * + .if ${GCC_DEFAULT} >= 10 # workaround for Type mismatch between actual argument at (1) and actual argument at (2) (REAL(8)/COMPLEX(8)). # in theory, this should set FCFLAGS, but the port does not conform FFLAGS+= -fallow-argument-mismatch .endif pre-configure: ${RM} ${WRKSRC}/cmake/Modules/CMakeParseArguments.cmake ${RM} -r ${WRKSRC}/elmergrid/src/metis-5.1.0 ${REINPLACE_CMD} -e 's,"metis.*/metis\.h",,' \ ${WRKSRC}/elmergrid/src/egparallel.c pre-configure-DOCS-off: ${REINPLACE_CMD} -e '/doc/s|ADD_SUB|#ADD_SUB|' ${WRKSRC}/fhutiter/CMakeLists.txt pre-configure-OCC-on: ${REINPLACE_CMD} -e "s|\$${VERSION}|`${PKG_QUERY} '%v' opencascade`|" \ "${WRKSRC}/cmake/Modules/FindOCE.cmake" ${REINPLACE_CMD} -e 's|$${INCLUDE}|${LOCALBASE}/include/OpenCASCADE|' \ "${WRKSRC}/cmake/Modules/FindOCE.cmake" post-install: ${LN} -sf ElmerSolver_mpi ${STAGEDIR}${PREFIX}/bin/ElmerSolver ${LN} -sf libelmersolver.so ${_LIBSTAGEDIR}/libelmersolver.so.0 ${LN} -sf libfhuti.so ${_LIBSTAGEDIR}/libfhuti.so.0 ${LN} -sf libmatc.so ${_LIBSTAGEDIR}/libmatc.so.0 ${LN} -sf libmpi_stubs.so ${_LIBSTAGEDIR}/libmpi_stubs.so.0 @${STRIP_CMD} ${STAGEDIR}/${PREFIX}/bin/ElmerGrid +post-install-DOCS-on: + @${MKDIR} ${STAGEDIR}${DOCSDIR} + ${INSTALL_DATA} ${PDFS:C|^|${WRKSRC}/|} ${STAGEDIR}${DOCSDIR} + do-test: @cd ${TEST_WRKSRC} && ctest -C ${CMAKE_BUILD_TYPE} ${_MAKE_JOBS} .include