blob: fc0b817aab88bd7f9446b6874c1b489add189b5f (
plain) (
blame)
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
|
PORTNAME= cantera
DISTVERSIONPREFIX= v
DISTVERSION= 3.0.0
PORTREVISION= 2
CATEGORIES= science # chemistry physics
MAINTAINER= yuri@FreeBSD.org
COMMENT= Chemical kinetics, thermodynamics, and transport tool suite
WWW= https://cantera.org/
LICENSE= BSD3CLAUSE
LICENSE_FILE= ${WRKSRC}/License.txt
BUILD_DEPENDS= googletest>0:devel/googletest \
${LOCALBASE}/include/boost/algorithm/string.hpp:devel/boost-libs \
highfive>0:science/highfive \
${PYTHON_PKGNAMEPREFIX}packaging>=0:devel/py-packaging@${PY_FLAVOR}
LIB_DEPENDS= libfmt.so:devel/libfmt \
libhdf5.so:science/hdf5 \
libopenblas.so:math/openblas \
libyaml-cpp.so:devel/yaml-cpp
USES= compiler:c++17-lang eigen:3 localbase scons
USE_LDCONFIG= yes
USE_GITHUB= yes
GH_ACCOUNT= Cantera
GH_TUPLE= LLNL:sundials:887af43:sundials/ext/sundials # bundled sundials is only needed for the Octave option
MAKE_ARGS= system_eigen='y' \
system_sundials='n' \
system_fmt='y' \
system_yamlcpp='y' \
googletest='system' \
sundials_include='${LOCALBASE}/include/sundials' \
extra_inc_dirs="${LOCALBASE}/include:${LOCALBASE}/include/eigen3" \
extra_lib_dirs="${LOCALBASE}/lib" \
debug='no' \
cc_flags="${CXXFLAGS}" \
prefix="${PREFIX}"
MAKE_ENV= INSTALL_MANPAGES=y
ALL_TARGET= build
TEST_TARGET= test # some tests fail, see https://github.com/Cantera/cantera/issues/1095
OPTIONS_DEFINE= OCTAVE PYTHON
OPTIONS_DEFAULT= # PYTHON is broken; OCTAVE is off by default because Octave interface is not a frequently requested feature
OPTIONS_SUB= yes
OCTAVE_DESC= Octave support
OCTAVE_MAKE_ARGS= matlab_toolbox=y matlab_path=${LOCALBASE}
OCTAVE_CXXFLAGS= -I${LOCALBASE}/include/octave-${OCTAVE_VERSION}/octave
OCTAVE_LIB_DEPENDS= liboctave.so:math/octave
OCTAVE_SUB_FILES= pkg-message-octave
OCTAVE_USES= octave:env
OCTAVE_BROKEN= Octave support needs to be updated
PYTHON_USES= python
PYTHON_USES_OFF= python:env
PYTHON_USE= PYTHON=cython
PYTHON_MAKE_ARGS= python_cmd=${PYTHON_CMD} python_package=full
PYTHON_MAKE_ARGS_OFF= python_package="none"
PYTHON_BUILD_DEPENDS= ${PYNUMPY}
PYTHON_RUN_DEPENDS= ${PYNUMPY} \
${PYTHON_PKGNAMEPREFIX}h5py>0:science/py-h5py@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}matplotlib>0:math/py-matplotlib@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}pandas>0:math/py-pandas@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}ruamel.yaml>0:devel/py-ruamel.yaml@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}scipy>0:science/py-scipy@${PY_FLAVOR}
PYTHON_BROKEN= https://github.com/Cantera/cantera/issues/1601
do-install:
cd ${WRKSRC} && \
${MAKE_CMD} install \
stage_dir="${STAGEDIR}"
@${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/libcantera_shared.so.${PORTVERSION}
do-install-PYTHON-on:
# strip
@${STRIP_CMD} ${STAGEDIR}${PYTHON_SITELIBDIR}/cantera/_cantera.cpython-${PYTHON_SUFFIX}.so
post-patch-OCTAVE-on: # adjust Octave version in SConscript (python styled os.environ['OCTAVE_VERSION'] somehow doesn't work for this)
@${REINPLACE_CMD} -e "s|, 'bin', 'glnx.*')|, 'lib', 'octave', '${OCTAVE_VERSION}')|" ${WRKSRC}/src/matlab/SConscript
post-install-OCTAVE-on: # adjust .mex file name
@${MV} \
${STAGEDIR}${PREFIX}/lib/cantera/matlab/toolbox/ctmethods.mexa64 \
${STAGEDIR}${PREFIX}/lib/cantera/matlab/toolbox/ctmethods.mex
.include <bsd.port.mk>
|