Support get-abduct smt2 command (#3122)
[cvc5.git] / src / bindings / java / CMakeLists.txt
1 find_package(Java REQUIRED)
2 find_package(JNI REQUIRED)
3 include(UseJava)
4
5 include_directories(${JNI_INCLUDE_DIRS})
6
7 set(SWIG_MODULE_cvc4jni_EXTRA_DEPS cvc4 cvc4parser)
8 set_property(SOURCE ${CVC4_SWIG_INTERFACE} PROPERTY CPLUSPLUS ON)
9 set(CMAKE_SWIG_FLAGS -package edu.nyu.acsys.CVC4)
10
11 if(${CMAKE_VERSION} VERSION_LESS "3.8.0")
12 swig_add_module(cvc4jni Java ${CVC4_SWIG_INTERFACE})
13 else()
14 swig_add_library(cvc4jni LANGUAGE Java SOURCES ${CVC4_SWIG_INTERFACE})
15 endif()
16 swig_link_libraries(cvc4jni cvc4 cvc4parser ${JNI_LIBRARIRES})
17
18 # Create CVC4.jar from all generated *.java files.
19 set(gen_java_files
20 ${CMAKE_CURRENT_BINARY_DIR}/ArrayStoreAll.java
21 ${CMAKE_CURRENT_BINARY_DIR}/ArrayStoreAllHashFunction.java
22 ${CMAKE_CURRENT_BINARY_DIR}/ArrayType.java
23 ${CMAKE_CURRENT_BINARY_DIR}/AscriptionType.java
24 ${CMAKE_CURRENT_BINARY_DIR}/AscriptionTypeHashFunction.java
25 ${CMAKE_CURRENT_BINARY_DIR}/AssertCommand.java
26 ${CMAKE_CURRENT_BINARY_DIR}/BenchmarkStatus.java
27 ${CMAKE_CURRENT_BINARY_DIR}/BitVector.java
28 ${CMAKE_CURRENT_BINARY_DIR}/BitVectorBitOf.java
29 ${CMAKE_CURRENT_BINARY_DIR}/BitVectorBitOfHashFunction.java
30 ${CMAKE_CURRENT_BINARY_DIR}/BitVectorExtract.java
31 ${CMAKE_CURRENT_BINARY_DIR}/BitVectorExtractHashFunction.java
32 ${CMAKE_CURRENT_BINARY_DIR}/BitVectorHashFunction.java
33 ${CMAKE_CURRENT_BINARY_DIR}/BitVectorRepeat.java
34 ${CMAKE_CURRENT_BINARY_DIR}/BitVectorRotateLeft.java
35 ${CMAKE_CURRENT_BINARY_DIR}/BitVectorRotateRight.java
36 ${CMAKE_CURRENT_BINARY_DIR}/BitVectorSignExtend.java
37 ${CMAKE_CURRENT_BINARY_DIR}/BitVectorSize.java
38 ${CMAKE_CURRENT_BINARY_DIR}/BitVectorType.java
39 ${CMAKE_CURRENT_BINARY_DIR}/BitVectorZeroExtend.java
40 ${CMAKE_CURRENT_BINARY_DIR}/BoolHashFunction.java
41 ${CMAKE_CURRENT_BINARY_DIR}/BooleanType.java
42 ${CMAKE_CURRENT_BINARY_DIR}/CVC4.java
43 ${CMAKE_CURRENT_BINARY_DIR}/CVC4IllegalArgumentException.java
44 ${CMAKE_CURRENT_BINARY_DIR}/CVC4JNI.java
45 ${CMAKE_CURRENT_BINARY_DIR}/CVC4String.java
46 ${CMAKE_CURRENT_BINARY_DIR}/CVC4StringHashFunction.java
47 ${CMAKE_CURRENT_BINARY_DIR}/Cardinality.java
48 ${CMAKE_CURRENT_BINARY_DIR}/CardinalityBeth.java
49 ${CMAKE_CURRENT_BINARY_DIR}/CardinalityUnknown.java
50 ${CMAKE_CURRENT_BINARY_DIR}/CheckSatAssumingCommand.java
51 ${CMAKE_CURRENT_BINARY_DIR}/CheckSatCommand.java
52 ${CMAKE_CURRENT_BINARY_DIR}/CheckSynthCommand.java
53 ${CMAKE_CURRENT_BINARY_DIR}/Command.java
54 ${CMAKE_CURRENT_BINARY_DIR}/CommandFailure.java
55 ${CMAKE_CURRENT_BINARY_DIR}/CommandInterrupted.java
56 ${CMAKE_CURRENT_BINARY_DIR}/CommandPrintSuccess.java
57 ${CMAKE_CURRENT_BINARY_DIR}/CommandRecoverableFailure.java
58 ${CMAKE_CURRENT_BINARY_DIR}/CommandSequence.java
59 ${CMAKE_CURRENT_BINARY_DIR}/CommandStatus.java
60 ${CMAKE_CURRENT_BINARY_DIR}/CommandSuccess.java
61 ${CMAKE_CURRENT_BINARY_DIR}/CommandUnsupported.java
62 ${CMAKE_CURRENT_BINARY_DIR}/CommentCommand.java
63 ${CMAKE_CURRENT_BINARY_DIR}/Configuration.java
64 ${CMAKE_CURRENT_BINARY_DIR}/ConstructorType.java
65 ${CMAKE_CURRENT_BINARY_DIR}/Datatype.java
66 ${CMAKE_CURRENT_BINARY_DIR}/DatatypeConstructor.java
67 ${CMAKE_CURRENT_BINARY_DIR}/DatatypeConstructorArg.java
68 ${CMAKE_CURRENT_BINARY_DIR}/DatatypeDeclarationCommand.java
69 ${CMAKE_CURRENT_BINARY_DIR}/DatatypeHashFunction.java
70 ${CMAKE_CURRENT_BINARY_DIR}/DatatypeIndexConstant.java
71 ${CMAKE_CURRENT_BINARY_DIR}/DatatypeIndexConstantHashFunction.java
72 ${CMAKE_CURRENT_BINARY_DIR}/DatatypeResolutionException.java
73 ${CMAKE_CURRENT_BINARY_DIR}/DatatypeSelfType.java
74 ${CMAKE_CURRENT_BINARY_DIR}/DatatypeType.java
75 ${CMAKE_CURRENT_BINARY_DIR}/DatatypeUnresolvedType.java
76 ${CMAKE_CURRENT_BINARY_DIR}/DeclarationCheck.java
77 ${CMAKE_CURRENT_BINARY_DIR}/DeclarationDefinitionCommand.java
78 ${CMAKE_CURRENT_BINARY_DIR}/DeclarationSequence.java
79 ${CMAKE_CURRENT_BINARY_DIR}/DeclareFunctionCommand.java
80 ${CMAKE_CURRENT_BINARY_DIR}/DeclareSygusFunctionCommand.java
81 ${CMAKE_CURRENT_BINARY_DIR}/DeclareSygusPrimedVarCommand.java
82 ${CMAKE_CURRENT_BINARY_DIR}/DeclareSygusVarCommand.java
83 ${CMAKE_CURRENT_BINARY_DIR}/DeclareTypeCommand.java
84 ${CMAKE_CURRENT_BINARY_DIR}/DefineFunctionCommand.java
85 ${CMAKE_CURRENT_BINARY_DIR}/DefineFunctionRecCommand.java
86 ${CMAKE_CURRENT_BINARY_DIR}/DefineNamedFunctionCommand.java
87 ${CMAKE_CURRENT_BINARY_DIR}/DefineTypeCommand.java
88 ${CMAKE_CURRENT_BINARY_DIR}/EchoCommand.java
89 ${CMAKE_CURRENT_BINARY_DIR}/EmptyCommand.java
90 ${CMAKE_CURRENT_BINARY_DIR}/EmptySet.java
91 ${CMAKE_CURRENT_BINARY_DIR}/EmptySetHashFunction.java
92 ${CMAKE_CURRENT_BINARY_DIR}/Exception.java
93 ${CMAKE_CURRENT_BINARY_DIR}/ExpandDefinitionsCommand.java
94 ${CMAKE_CURRENT_BINARY_DIR}/ExportUnsupportedException.java
95 ${CMAKE_CURRENT_BINARY_DIR}/Expr.java
96 ${CMAKE_CURRENT_BINARY_DIR}/ExprHashFunction.java
97 ${CMAKE_CURRENT_BINARY_DIR}/ExprManager.java
98 ${CMAKE_CURRENT_BINARY_DIR}/ExprManagerMapCollection.java
99 ${CMAKE_CURRENT_BINARY_DIR}/ExprStream.java
100 ${CMAKE_CURRENT_BINARY_DIR}/FloatingPoint.java
101 ${CMAKE_CURRENT_BINARY_DIR}/FloatingPointConvertSort.java
102 ${CMAKE_CURRENT_BINARY_DIR}/FloatingPointSize.java
103 ${CMAKE_CURRENT_BINARY_DIR}/FloatingPointToBV.java
104 ${CMAKE_CURRENT_BINARY_DIR}/FloatingPointToFPFloatingPoint.java
105 ${CMAKE_CURRENT_BINARY_DIR}/FloatingPointToFPGeneric.java
106 ${CMAKE_CURRENT_BINARY_DIR}/FloatingPointToFPIEEEBitVector.java
107 ${CMAKE_CURRENT_BINARY_DIR}/FloatingPointToFPReal.java
108 ${CMAKE_CURRENT_BINARY_DIR}/FloatingPointToFPSignedBitVector.java
109 ${CMAKE_CURRENT_BINARY_DIR}/FloatingPointToFPUnsignedBitVector.java
110 ${CMAKE_CURRENT_BINARY_DIR}/FloatingPointToSBV.java
111 ${CMAKE_CURRENT_BINARY_DIR}/FloatingPointToUBV.java
112 ${CMAKE_CURRENT_BINARY_DIR}/FloatingPointType.java
113 ${CMAKE_CURRENT_BINARY_DIR}/FunctionType.java
114 ${CMAKE_CURRENT_BINARY_DIR}/GetAbductCommand.java
115 ${CMAKE_CURRENT_BINARY_DIR}/GetAssertionsCommand.java
116 ${CMAKE_CURRENT_BINARY_DIR}/GetAssignmentCommand.java
117 ${CMAKE_CURRENT_BINARY_DIR}/GetInfoCommand.java
118 ${CMAKE_CURRENT_BINARY_DIR}/GetInstantiationsCommand.java
119 ${CMAKE_CURRENT_BINARY_DIR}/GetModelCommand.java
120 ${CMAKE_CURRENT_BINARY_DIR}/GetOptionCommand.java
121 ${CMAKE_CURRENT_BINARY_DIR}/GetQuantifierEliminationCommand.java
122 ${CMAKE_CURRENT_BINARY_DIR}/GetSynthSolutionCommand.java
123 ${CMAKE_CURRENT_BINARY_DIR}/GetUnsatAssumptionsCommand.java
124 ${CMAKE_CURRENT_BINARY_DIR}/GetUnsatCoreCommand.java
125 ${CMAKE_CURRENT_BINARY_DIR}/GetValueCommand.java
126 ${CMAKE_CURRENT_BINARY_DIR}/Input.java
127 ${CMAKE_CURRENT_BINARY_DIR}/InputLanguage.java
128 ${CMAKE_CURRENT_BINARY_DIR}/InputStream.java
129 ${CMAKE_CURRENT_BINARY_DIR}/InputStreamException.java
130 ${CMAKE_CURRENT_BINARY_DIR}/IntToBitVector.java
131 ${CMAKE_CURRENT_BINARY_DIR}/Integer.java
132 ${CMAKE_CURRENT_BINARY_DIR}/IntegerHashFunction.java
133 ${CMAKE_CURRENT_BINARY_DIR}/IntegerType.java
134 ${CMAKE_CURRENT_BINARY_DIR}/JavaInputStreamAdapter.java
135 ${CMAKE_CURRENT_BINARY_DIR}/JavaIteratorAdapter_CommandSequence.java
136 ${CMAKE_CURRENT_BINARY_DIR}/JavaIteratorAdapter_Datatype.java
137 ${CMAKE_CURRENT_BINARY_DIR}/JavaIteratorAdapter_DatatypeConstructor.java
138 ${CMAKE_CURRENT_BINARY_DIR}/JavaIteratorAdapter_Expr.java
139 ${CMAKE_CURRENT_BINARY_DIR}/JavaIteratorAdapter_StatisticsBase.java
140 ${CMAKE_CURRENT_BINARY_DIR}/JavaIteratorAdapter_UnsatCore.java
141 ${CMAKE_CURRENT_BINARY_DIR}/JavaOutputStreamAdapter.java
142 ${CMAKE_CURRENT_BINARY_DIR}/Kind.java
143 ${CMAKE_CURRENT_BINARY_DIR}/KindHashFunction.java
144 ${CMAKE_CURRENT_BINARY_DIR}/LastExceptionBuffer.java
145 ${CMAKE_CURRENT_BINARY_DIR}/LogicException.java
146 ${CMAKE_CURRENT_BINARY_DIR}/LogicInfo.java
147 ${CMAKE_CURRENT_BINARY_DIR}/Map_ExprExpr.java
148 ${CMAKE_CURRENT_BINARY_DIR}/ModalException.java
149 ${CMAKE_CURRENT_BINARY_DIR}/OptionException.java
150 ${CMAKE_CURRENT_BINARY_DIR}/Options.java
151 ${CMAKE_CURRENT_BINARY_DIR}/OutputLanguage.java
152 ${CMAKE_CURRENT_BINARY_DIR}/Parser.java
153 ${CMAKE_CURRENT_BINARY_DIR}/ParserBuilder.java
154 ${CMAKE_CURRENT_BINARY_DIR}/ParserEndOfFileException.java
155 ${CMAKE_CURRENT_BINARY_DIR}/ParserException.java
156 ${CMAKE_CURRENT_BINARY_DIR}/ParserExprStream.java
157 ${CMAKE_CURRENT_BINARY_DIR}/PopCommand.java
158 ${CMAKE_CURRENT_BINARY_DIR}/PrettySExprs.java
159 ${CMAKE_CURRENT_BINARY_DIR}/Proof.java
160 ${CMAKE_CURRENT_BINARY_DIR}/PropagateRuleCommand.java
161 ${CMAKE_CURRENT_BINARY_DIR}/PushCommand.java
162 ${CMAKE_CURRENT_BINARY_DIR}/QueryCommand.java
163 ${CMAKE_CURRENT_BINARY_DIR}/QuitCommand.java
164 ${CMAKE_CURRENT_BINARY_DIR}/Rational.java
165 ${CMAKE_CURRENT_BINARY_DIR}/RationalHashFunction.java
166 ${CMAKE_CURRENT_BINARY_DIR}/RealType.java
167 ${CMAKE_CURRENT_BINARY_DIR}/Record.java
168 ${CMAKE_CURRENT_BINARY_DIR}/RecordHashFunction.java
169 ${CMAKE_CURRENT_BINARY_DIR}/RecordUpdate.java
170 ${CMAKE_CURRENT_BINARY_DIR}/RecordUpdateHashFunction.java
171 ${CMAKE_CURRENT_BINARY_DIR}/RecoverableModalException.java
172 ${CMAKE_CURRENT_BINARY_DIR}/RegExpType.java
173 ${CMAKE_CURRENT_BINARY_DIR}/ResetAssertionsCommand.java
174 ${CMAKE_CURRENT_BINARY_DIR}/ResetCommand.java
175 ${CMAKE_CURRENT_BINARY_DIR}/ResourceManager.java
176 ${CMAKE_CURRENT_BINARY_DIR}/Result.java
177 ${CMAKE_CURRENT_BINARY_DIR}/RewriteRuleCommand.java
178 ${CMAKE_CURRENT_BINARY_DIR}/RoundingMode.java
179 ${CMAKE_CURRENT_BINARY_DIR}/RoundingModeType.java
180 ${CMAKE_CURRENT_BINARY_DIR}/SExpr.java
181 ${CMAKE_CURRENT_BINARY_DIR}/SExprKeyword.java
182 ${CMAKE_CURRENT_BINARY_DIR}/SExprType.java
183 ${CMAKE_CURRENT_BINARY_DIR}/SWIGTYPE_p_CVC4__Model.java
184 ${CMAKE_CURRENT_BINARY_DIR}/SWIGTYPE_p_CVC4__Printer.java
185 ${CMAKE_CURRENT_BINARY_DIR}/SWIGTYPE_p_CVC4__api__Solver.java
186 ${CMAKE_CURRENT_BINARY_DIR}/SWIGTYPE_p_InstFormatMode.java
187 ${CMAKE_CURRENT_BINARY_DIR}/SWIGTYPE_p_LemmaChannels.java
188 ${CMAKE_CURRENT_BINARY_DIR}/SWIGTYPE_p_Listener.java
189 ${CMAKE_CURRENT_BINARY_DIR}/SWIGTYPE_p_ListenerCollection__Registration.java
190 ${CMAKE_CURRENT_BINARY_DIR}/SWIGTYPE_p_MaybeT_CVC4__Rational_t.java
191 ${CMAKE_CURRENT_BINARY_DIR}/SWIGTYPE_p_Type.java
192 ${CMAKE_CURRENT_BINARY_DIR}/SWIGTYPE_p_std__istream.java
193 ${CMAKE_CURRENT_BINARY_DIR}/SWIGTYPE_p_std__ostream.java
194 ${CMAKE_CURRENT_BINARY_DIR}/SWIGTYPE_p_std__shared_ptrT_CVC4__SygusPrintCallback_t.java
195 ${CMAKE_CURRENT_BINARY_DIR}/SWIGTYPE_p_std__string.java
196 ${CMAKE_CURRENT_BINARY_DIR}/SWIGTYPE_p_std__unordered_mapT_CVC4__Expr_CVC4__ProofLetCount_CVC4__ExprHashFunction_t.java
197 ${CMAKE_CURRENT_BINARY_DIR}/SWIGTYPE_p_std__vectorT_CVC4__DatatypeConstructorArg_t.java
198 ${CMAKE_CURRENT_BINARY_DIR}/SWIGTYPE_p_std__vectorT_CVC4__DatatypeConstructor_t.java
199 ${CMAKE_CURRENT_BINARY_DIR}/SWIGTYPE_p_std__vectorT_CVC4__SygusGTerm_t.java
200 ${CMAKE_CURRENT_BINARY_DIR}/SWIGTYPE_p_std__vectorT_std__pairT_CVC4__Expr_CVC4__Expr_t_t.java
201 ${CMAKE_CURRENT_BINARY_DIR}/SWIGTYPE_p_std__vectorT_std__vectorT_std__string_t_t.java
202 ${CMAKE_CURRENT_BINARY_DIR}/ScopeException.java
203 ${CMAKE_CURRENT_BINARY_DIR}/SelectorType.java
204 ${CMAKE_CURRENT_BINARY_DIR}/SetBenchmarkLogicCommand.java
205 ${CMAKE_CURRENT_BINARY_DIR}/SetBenchmarkStatusCommand.java
206 ${CMAKE_CURRENT_BINARY_DIR}/SetExpressionNameCommand.java
207 ${CMAKE_CURRENT_BINARY_DIR}/SetInfoCommand.java
208 ${CMAKE_CURRENT_BINARY_DIR}/SetOptionCommand.java
209 ${CMAKE_CURRENT_BINARY_DIR}/SetType.java
210 ${CMAKE_CURRENT_BINARY_DIR}/SetUserAttributeCommand.java
211 ${CMAKE_CURRENT_BINARY_DIR}/SimplifyCommand.java
212 ${CMAKE_CURRENT_BINARY_DIR}/SmtEngine.java
213 ${CMAKE_CURRENT_BINARY_DIR}/SortConstructorType.java
214 ${CMAKE_CURRENT_BINARY_DIR}/SortType.java
215 ${CMAKE_CURRENT_BINARY_DIR}/Statistic.java
216 ${CMAKE_CURRENT_BINARY_DIR}/Statistics.java
217 ${CMAKE_CURRENT_BINARY_DIR}/StatisticsBase.java
218 ${CMAKE_CURRENT_BINARY_DIR}/StringType.java
219 ${CMAKE_CURRENT_BINARY_DIR}/SygusConstraintCommand.java
220 ${CMAKE_CURRENT_BINARY_DIR}/SygusGTerm.java
221 ${CMAKE_CURRENT_BINARY_DIR}/SygusInvConstraintCommand.java
222 ${CMAKE_CURRENT_BINARY_DIR}/SygusPrintCallback.java
223 ${CMAKE_CURRENT_BINARY_DIR}/SymbolTable.java
224 ${CMAKE_CURRENT_BINARY_DIR}/SymbolType.java
225 ${CMAKE_CURRENT_BINARY_DIR}/SynthFunCommand.java
226 ${CMAKE_CURRENT_BINARY_DIR}/TesterType.java
227 ${CMAKE_CURRENT_BINARY_DIR}/TheoryId.java
228 ${CMAKE_CURRENT_BINARY_DIR}/Timer.java
229 ${CMAKE_CURRENT_BINARY_DIR}/TupleUpdate.java
230 ${CMAKE_CURRENT_BINARY_DIR}/TupleUpdateHashFunction.java
231 ${CMAKE_CURRENT_BINARY_DIR}/Type.java
232 ${CMAKE_CURRENT_BINARY_DIR}/TypeCheckingException.java
233 ${CMAKE_CURRENT_BINARY_DIR}/TypeConstant.java
234 ${CMAKE_CURRENT_BINARY_DIR}/TypeConstantHashFunction.java
235 ${CMAKE_CURRENT_BINARY_DIR}/TypeHashFunction.java
236 ${CMAKE_CURRENT_BINARY_DIR}/UninterpretedConstant.java
237 ${CMAKE_CURRENT_BINARY_DIR}/UninterpretedConstantHashFunction.java
238 ${CMAKE_CURRENT_BINARY_DIR}/UnrecognizedOptionException.java
239 ${CMAKE_CURRENT_BINARY_DIR}/UnsafeInterruptException.java
240 ${CMAKE_CURRENT_BINARY_DIR}/UnsatCore.java
241 ${CMAKE_CURRENT_BINARY_DIR}/VariableTypeMap.java
242 ${CMAKE_CURRENT_BINARY_DIR}/hashmapExpr.java
243 ${CMAKE_CURRENT_BINARY_DIR}/pairStringType.java
244 ${CMAKE_CURRENT_BINARY_DIR}/setOfType.java
245 ${CMAKE_CURRENT_BINARY_DIR}/vectorCommandPtr.java
246 ${CMAKE_CURRENT_BINARY_DIR}/vectorDatatype.java
247 ${CMAKE_CURRENT_BINARY_DIR}/vectorDatatypeType.java
248 ${CMAKE_CURRENT_BINARY_DIR}/vectorExpr.java
249 ${CMAKE_CURRENT_BINARY_DIR}/vectorPairStringType.java
250 ${CMAKE_CURRENT_BINARY_DIR}/vectorSExpr.java
251 ${CMAKE_CURRENT_BINARY_DIR}/vectorString.java
252 ${CMAKE_CURRENT_BINARY_DIR}/vectorType.java
253 ${CMAKE_CURRENT_BINARY_DIR}/vectorUnsignedInt.java
254 ${CMAKE_CURRENT_BINARY_DIR}/vectorVectorExpr.java
255 )
256
257 if(CVC4_USE_CLN_IMP)
258 list(APPEND gen_java_files
259 ${CMAKE_CURRENT_BINARY_DIR}/SWIGTYPE_p_cln__cl_I.java
260 ${CMAKE_CURRENT_BINARY_DIR}/SWIGTYPE_p_cln__cl_RA.java
261 )
262 elseif(CVC4_USE_GMP_IMP)
263 list(APPEND gen_java_files
264 ${CMAKE_CURRENT_BINARY_DIR}/SWIGTYPE_p_mpq_class.java
265 ${CMAKE_CURRENT_BINARY_DIR}/SWIGTYPE_p_mpz_class.java
266 )
267 endif()
268
269 set(CMAKE_JNI_TARGET TRUE)
270 add_jar(cvc4jar
271 SOURCES ${gen_java_files}
272 VERSION ${CVC4_MAJOR}.${CVC4_MINOR}.${CVC4_RELEASE}
273 OUTPUT_NAME CVC4)
274 add_dependencies(cvc4jar cvc4jni)
275 install_jar(cvc4jar DESTINATION share/java/cvc4)
276 install_jni_symlink(cvc4jar DESTINATION share/java/cvc4)
277 install(TARGETS cvc4jni DESTINATION lib)