freebsd-ports/science/openmodelica/Makefile
2024-01-12 19:30:24 -08:00

117 lines
5.1 KiB
Makefile

PORTNAME= openmodelica
DISTVERSIONPREFIX= v
DISTVERSION= 1.22.0
PORTREVISION= 1
CATEGORIES= science cad java
DIST_SUBDIR= ${PORTNAME}-${PORTVERSION}
PATCH_SITES= https://github.com/OpenModelica/OpenModelica/commit/
PATCHFILES+= 0f4b4ce89dca64287dd4c7a19a6aa98114ea563c.patch:-p1 # Qt WebEngine support
MAINTAINER= yuri@FreeBSD.org
COMMENT= Modelica-based modeling and simulation environment
WWW= https://openmodelica.org/
LICENSE= OSMC-PL
LICENSE_NAME= Public license for OpenModelica
LICENSE_TEXT= See https://github.com/OpenModelica/OpenModelica/blob/master/OSMC-License.txt
LICENSE_PERMS= auto-accept dist-mirror dist-sell pkg-mirror pkg-sell
BROKEN_aarch64= link fails: /usr/local/bin/ld: cannot find -lquadmath: No such file or directory
BROKEN_armv7= link fails: /usr/local/bin/ld: cannot find -lquadmath: No such file or directory
BROKEN_i386= compilation fails: /wrkdirs/usr/ports/science/openmodelica/work/OpenModelica-1.20.0/OMCompiler/3rdParty/libffi/src/x86/sysv.S:841:1: error: changed section flags for .eh_frame, expected: 0x2
BUILD_DEPENDS= asciidoc:textproc/asciidoc \
autoconf>0:devel/autoconf \
automake:devel/automake \
gmake:devel/gmake \
libtool>0:devel/libtool \
${LOCALBASE}/include/readline/readline.h:devel/readline
LIB_DEPENDS= libboost_filesystem.so:devel/boost-libs \
libcurl.so:ftp/curl \
libosg.so:graphics/osg \
libuuid.so:misc/e2fsprogs-libuuid
RUN_DEPENDS= bash:shells/bash \
gmake:devel/gmake
USES= cmake compiler:c++14-lang iconv fortran gettext-runtime gl \
gnome blaslapack localbase:ldflags qt:5 readline pkgconfig \
python:build shebangfix
USE_QT= concurrent core declarative gui network opengl \
printsupport svg webchannel webengine widgets xml xmlpatterns \
buildtools:build qmake:build
USE_GL= gl opengl
USE_GNOME= libxml2
USE_JAVA= yes
USE_LDCONFIG= ${PREFIX}/lib/omc ${PREFIX}/lib/omc/OMSimulator ${PREFIX}/lib/omc/cpp ${PREFIX}/lib/omc/ffi # https://github.com/OpenModelica/OpenModelica/issues/9925
USE_GITHUB= yes
GH_ACCOUNT= OpenModelica
GH_PROJECT= OpenModelica
SHEBANG_GLOB= *.sh *.in *.ac
GH_TUPLE= \
OpenModelica:OMOptim:55102095970c73a4176820538d19aaf408515da9:OpenModelica_OMOptim/OMOptim \
OpenModelica:OMSimulator:634b0193a3eb14e75622a8e720bf0fb6dab77487:OpenModelica_OMSimulator/OMSimulator \
OpenModelica:OMSimulator-3rdParty:b4c3aa4a16a5920e88096780498cc4af157f3c05:OpenModelica_OMSimulator_3rdParty/OMSimulator/3rdParty \
OpenModelica:OMCompiler-3rdParty:d19136844b49720ae3a8957f0fb1e137c7055b43:OpenModelica_OMCompiler_3rdParty/OMCompiler/3rdParty \
OpenModelica:OMSens:8216eaefbb4ea2ff0c7a17a3487dcc2a8a17667d:OpenModelica_OMSens/OMSens \
OpenModelica:OMSens_Qt:ff2ade18e7058f611ddfd575ccbd24f388615d3f:OpenModelica_OMSens_Qt/OMSens_Qt \
OpenModelica:OpenModelica-common:08a01802db5ba5edb540383c46718b89ff229ef2:OpenModelica_OpenModelica_common/OMOptim/common \
OpenModelica:OpenModelica-common:08a01802db5ba5edb540383c46718b89ff229ef2:OpenModelica_OpenModelica_common/OMSens_Qt/common
GH_TUPLE+= OpenModelica:OMBootstrapping:c289e97c41d00939a4a69fe504961b47283a6d8e:bootstrapping/OMCompiler/Compiler/boot/bomc # downloaded by cmake
# this should change make program everywhere, but it doesn't,
# hence the patches in OMCompiler/Compiler/runtime/CMakeLists.txt, OMEdit/OMEditLIB/Simulation/SimulationOutputWidget.cpp
CMAKE_ARGS= -DCMAKE_MAKE_PROGRAM=gmake \
-DPython_EXECUTABLE=${PYTHON_CMD}
CMAKE_ARGS+= -DOM_USE_CCACHE:BOOL=${CCACHE_ENABLED:S/yes/ON/:S/no/OFF/} # if refuses to build w/out ccache by default
CMAKE_ON= OM_OMEDIT_ENABLE_QTWEBENGINE
LDFLAGS+= -lexecinfo -lintl -pthread
BINARY_ALIAS= make=${GMAKE}
CONFLICTS_BUILD= sundials
post-extract:
# remove stray *.orig files
@${FIND} ${WRKSRC} -name "*.orig" -delete
# remove rtime that isn't used on FreeBSD
@${RM} -r ${WRKSRC}/OMSimulator/OMTLMSimulator/3rdParty/rtime
# prevent bootstrap file download
#${MKDIR} ${WRKSRC}/bomc
${TOUCH} ${WRKSRC}/OMCompiler/Compiler/boot/bomc/sources.tar.gz
# workaround for broken fetch
@${RLN} ${WRKSRC}/OMOptim/common ${WRKSRC}/OMSens_Qt/common
post-patch:
# fix bash shebangs
@${REINPLACE_CMD} -e 's|#!/bin/bash|#!${LOCALBASE}/bin/bash|' \
${WRKSRC}/OMCompiler/Examples/GenerateDoc.mos \
${WRKSRC}/OMCompiler/3rdParty/tbb/build/generate_tbbvars.sh
# add path to libgfortran to link flags for OM internal builds
@${REINPLACE_CMD} \
-e 's|@RT_LDFLAGS_GENERATED_CODE_SIM@|& -L${LOCALBASE}/lib/gcc${FC:S/gfortran//}|' \
${WRKSRC}/OMCompiler/Compiler/Util/Autoconf.mo.in
post-install:
# workaround for https://github.com/OpenModelica/OpenModelica/issues/9919
#cd ${STAGEDIR}${PREFIX} && ${CHMOD} +x \
# bin/OMSimulator bin/OMSimulatorPython3 bin/StartTLMFmiWrapper
# remove unnecessary files
${RM} -r \
${STAGEDIR}${PREFIX}/share/zmq \
${STAGEDIR}${PREFIX}/doc \
${STAGEDIR}${PREFIX}/share/doc
# remove empty directories
${FIND} ${STAGEDIR}${PREFIX}/include -type d -empty -delete
# strip binaries
#cd ${STAGEDIR}${PREFIX} && ${STRIP_CMD} \
bin/OMSimulator bin/FMIWrapper \
lib/omc/OMSimulator/libomtlmsimulator.so lib/omc/OMSimulator/libOMSimulator.so \
lib/omc/libomtlmsimulator.so lib/omc/libOMSimulator.so
.include <bsd.port.mk>