blob: c91f05e104a1fd23062e78a1c98ed93f6bd4d431 (
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
91
92
93
94
95
96
|
PORTNAME= cvc5
DISTVERSIONPREFIX= cvc5-
DISTVERSION= 1.2.1
CATEGORIES= math java
EXTRACT_ONLY= ${DISTNAME}${EXTRACT_SUFX}
MAINTAINER= yuri@FreeBSD.org
COMMENT= Automatic theorem prover for SMT (Satisfiability Modulo Theories)
WWW= https://cvc5.github.io/
LICENSE= BSD3CLAUSE
LICENSE_FILE= ${WRKSRC}/COPYING
BUILD_DEPENDS= bash:shells/bash \
${LOCALBASE}/lib/symfpu.a:math/symfpu \
${PYTHON_PKGNAMEPREFIX}toml>0:textproc/py-toml@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}tomli>0:textproc/py-tomli@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}pexpect>0:misc/py-pexpect@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}pybind11>0:devel/py-pybind11@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}pyparsing>0:devel/py-pyparsing@${PY_FLAVOR}
LIB_DEPENDS= libantlr3c.so:devel/libantlr3c \
libcadical.so:math/cadical
USES= cmake:testing ncurses compiler:c++17-lang java:build \
localbase:ldflags pkgconfig python:build
USE_LDCONFIG= yes
USE_GITHUB= yes
CMAKE_BUILD_TYPE= Production
CMAKE_ARGS+= -DFREEBSD_DISTDIR=${DISTDIR} \
-DPython_EXECUTABLE:STRING=${PYTHON_CMD}
CMAKE_ON= BUILD_SHARED_LIBS
CMAKE_OFF= BUILD_BINDINGS_PYTHON USE_PYTHON3 # Python binding should be a separate port
CMAKE_TESTING_ON= ENABLE_UNIT_TESTING
CMAKE_TESTING_TARGET= check # check target runs only quick tests (based on https://github.com/cvc5/cvc5/issues/9569#issuecomment-1484943348)
#CMAKE_TESTING_TARGET= test # test target also runs longer tests, 2 of which fail, see https://github.com/cvc5/cvc5/issues/9569
PLIST_SUB= VERSION=${DISTVERSION}
OPTIONS_DEFINE= COCOALIB EDITLINE JAVA
OPTIONS_GROUP= SOLVERS
OPTIONS_GROUP_SOLVERS= CRYPTOMINISAT KISSAT
OPTIONS_RADIO= NUMLIB
OPTIONS_RADIO_NUMLIB= GMP CLN
OPTIONS_DEFAULT= CRYPTOMINISAT EDITLINE GMP # COCOALIB KISSAT # JAVA is broken
OPTIONS_SUB= yes
COCOALIB_DESC= Use CoCoALib for further polynomial operations
COCOALIB_CMAKE_BOOL= USE_COCOA
COCOALIB_BROKEN= fails to compile with cocoalib, see https://github.com/cvc5/cvc5/issues/9484
JAVA_CMAKE_BOOL= BUILD_BINDINGS_JAVA
JAVA_CMAKE_ON= -DJAVA_INCLUDE_PATH:PATH=${JAVA_HOME}/include \
-DJAVA_AWT_LIBRARY:PATH=${JAVA_HOME}/jre/lib/${ARCH}/libjawt.so \
-DJAVA_JVM_LIBRARY:PATH=${JAVA_HOME}/jre/lib/${ATCH}/libjava.so
JAVA_BUILD_DEPENDS= swig:devel/swig
JAVA_BROKEN= compilation fails: error: unmappable character for encoding ASCII, see https://github.com/cvc5/cvc5/issues/11145
EDITLINE_DESC= Use Editline for better interactive support
EDITLINE_CMAKE_BOOL= USE_EDITLINE
EDITLINE_BUILD_DEPENDS= libedit>0:devel/libedit
EDITLINE_RUN_DEPENDS= libedit>0:devel/libedit
# SOLVERS options
CRYPTOMINISAT_DESC= Use CryptoMiniSat as the SAT solver
CRYPTOMINISAT_CMAKE_BOOL= USE_CRYPTOMINISAT
CRYPTOMINISAT_LIB_DEPENDS= libcryptominisat5.so:math/cryptominisat
KISSAT_DESC= Use Kissat solver
KISSAT_CMAKE_BOOL= USE_KISSAT
KISSAT_BROKEN= fails to link with libkissat.so, see https://github.com/cvc5/cvc5/issues/9483
# NUMLIB options
GMP_DESC= Use GMP numeric library
GMP_LIB_DEPENDS= libgmp.so:math/gmp
CLN_DESC= Use CLN numeric library
CLN_CMAKE_BOOL= USE_CLN
CLN_LIB_DEPENDS= libcln.so:math/cln \
libgmp.so:math/gmp
.include <bsd.port.options.mk>
.if ${PORT_OPTIONS:MCLN}
LICENSE= GPLv3
CMAKE_ARGS+= -DENABLE_GPL:BOOL=ON
.endif
PORTSCOUT= limit:^[1-9]\.[0-9]+\.[0-9]+ # prevent older generation versions like 1.8, 1.7, etc.
# some tests are skipped without any explanation, see https://github.com/cvc5/cvc5/issues/10456
# test interactive_shell_define_fun_rec_multiline fails, see https://github.com/cvc5/cvc5/issues/11146
.include <bsd.port.mk>
|