summaryrefslogtreecommitdiff
path: root/cmake
AgeCommit message (Collapse)Author
2020-07-01Add testing infrastructure for LFSC signatures (#4678)Andres Noetzli
This commit adds testing infrastructure for LFSC signatures that is enabled when CVC4 is configured with LFSC. The testing infrastructure adopts run_test.py from https://github.com/CVC4/LFSC with minor modifications (mainly adding support for a list of include directories that are searched to resolve *.plf dependencies). The commit uses the existing examples and test files from proofs/signatures as the initial set of tests. Co-authored-by: Alex Ozdemir aozdemir@hmc.edu
2020-06-09Language bindings: Enable catching of exceptions (#2813)Andres Noetzli
Fixes #2810. SWIG relies on throw specifiers to determine which exceptions a method can throw. The wrappers generated by SWIG catch those C++ exceptions and turn them into exceptions for the target language. However, we have removed throw specifiers because they have been deprecated in C++11, so SWIG did not know about any of our exceptions. This commit fixes the issue using the %catches directive, declaring that all methods may throw a CVC4::Exception or a general exception. Note: This means that users of the language bindings will just receive a general CVC4::Exception instead of more specific exceptions like TypeExceptions. Given that we are planning to have a single exception type for the new CVC4 API, this seemed like a natural choice. Additionally, the commit (significantly) simplifies the mapping of C++ to Java exceptions and fixes an issue with Python exceptions not inheriting from BaseException. Finally, the commit adds API examples for Java and Python, which demonstrate catching exceptions, and adds Python examples as tests in our build system.
2020-06-08Fix Java target and Relations example (#4583)Andres Noetzli
Currently, our CVC4Config file is never including the CVC4 Java targets because of a typo in `cmake/CVC4Config.cmake.in`. For this reason, our build system for the examples would never actually build the examples. Fixing this issue brought up another issue in our Relations Java example that was using an outdated `System.loadLibrary()` call. This commit fixes the typo and the example. Note: Most changes in `Relations.java` were caused by ClangFormat.
2020-05-22Add support for SAT solver Kissat. (#4514)Aina Niemetz
2020-03-31Remove replay and use-theory options and idl (#4186)Andrew Reynolds
Towards disentangling Options / NodeManager / SmtEngine. This PR removes options --use-theory=NAME and --replay/--replay-log. Both of these options are highly complex, unused, and lead to complications when implementing the way options and our build system work. The first is motivated by making TheoryEngine use an "alternate" theory, which appears to e.g. make it so that TheoryIdl could entirely replace TheoryArith. I believe this is too heavy handed of a solution: there should a consistent TheoryArith class, and options should be used to enable/disable alternate modules within it. The second attempts to replay low level decisions from the SAT solver. It is documented as not working (in 1.0). I do not believe this is worth salvaging. It also removes the solver in src/theory/idl, which cannot be enabled after this commit.
2020-02-19Add Python bindings using Cython -- see below for more details (#2879)makaimann
2020-02-11cmake: Remove unused ENABLE_OPTIMIZED option. (#3749)Mathias Preiner
2019-12-06contrib: Setup all dependencies in deps/ directory. (#3534)Mathias Preiner
2019-11-14Use Shebang in cxxtestgen when appropriate (#3458)Alex Ozdemir
CxxTest's generator has one of three names, depending on the CxxTest version: * `cxxtestgen.py`, a python program * `cxxtestgen`, some kind of program with a shebang * `cxxtestgen.pl`, a perl program We were mistakenly assuming that the `cxxtestgen` form was always a python program. Now, if we find that form on the system, we assume that it is has a shebang, and is executable.
2019-10-08cmake: Fix include of CVC4JavaTargets.cmake. (#3373)Mathias Preiner
Only include Java targets if Java bindings are enabled.
2019-09-25Use separate CMake project for CVC4 examples. (#3196)Mathias Preiner
2019-09-06Remove portfolio (#3236)Andrew Reynolds
2019-08-30Undo unintential change to FindCxxTest (#3240)Andrew Reynolds
2019-08-29Infer conflicts based on regular expression inclusion (#3234)Andres Noetzli
We have a conflict if we have `str.in.re(x, R1)` and `~str.in.re(x, R2)` and `R2` includes `R1` because there is no possible value for `x` that satisfies both memberships. This commit adds code to detect regular expression inclusion for a small fragment of regular expressions: string literals with single char (`re.allchar`) and multichar wildcards (`re.*(re.allchar)`). Signed-off-by: Andres Noetzli <anoetzli@amazon.com>
2019-08-14cmake: Export CVC4 library interface. (#3179)Mathias Preiner
2019-08-02Update CaDiCaL to version 1.0.3. (#3137)Mathias Preiner
* Removes incremental API check (#3011) * Fixes toSatValueLit to use the new semantics of CaDiCaL's val() Fixes #3011
2019-05-17Support for incremental bit-blasting with CaDiCaL (#3006)Andres Noetzli
This commit adds support for eager bit-blasting with CaDiCaL on incremental benchmarks. Since not all CaDiCaL versions support incremental solving, the commit adds a CMake check that checks whether `CaDiCaL::Solver::assume()` exists. Note: The check uses `check_cxx_source_compiles`, which is not very elegant but I could not find a better solution (e.g. `check_cxx_symbol_exists()` does not seem to support methods in classes and `check_struct_has_member()` only seems to support data members).
2019-04-15Check for rt library in configuration -- support for glibc<2.17 (#2854)makaimann
This is a minor fix for systems with glibc version < 2.17. In that case, we need to link with `-lrt` according to the clock_gettime man page.
2019-01-11Fixed linking against drat2er, and use drat2er (#2785)Alex Ozdemir
* Fixed linking against drat2er/drat-trim We have machinery for linking against drat2er. However, this machinery didn't quite work because libdrat2er.a contains an (undefined) reference to `run_drat_trim` from libdrat-trim.a. Thus, when linking against libdrat2er.a, we also need to link against libdrat-trim.a. I made this change, and then tested it by actually calling a function from the drat2er library (CheckAndConvertToLRAT) which relies on `run_drat_trim`. Since this invocation compiles, we know that the linking is working properly now. * Combined the two libs, per Mathias * drat2er configured gaurds
2018-12-17 Configured for linking against drat2er (#2754)Alex Ozdemir
drat2er is a C/C++ project which includes support for * Checking DRAT proofs * Converting DRAT proofs to LRAT proofs * Converting DRAT proofs to ER proofs It does the first 2 by using drat-trim under the hood. I've modified our CMake configuration to allow drat2er to be linked into CVC4, and I added a contrib script.
2018-10-22Only build CryptoMiniSat library, no binary (#2657)Andres Noetzli
This commit changes the contrib/get-cryptominisat script to only build the CryptoMiniSat library instead of both the library and the binary. The advantage of this is that we can compile a static version of the CryptoMiniSat library without having a static version of glibc or libstdc++ (this is fine as long as we do a shared library build of CVC4). This is an issue on Fedora (tested on version 25) where the contrib/get-cryptominisat script was failing when building the CryptoMiniSat binary due to the static version of these libraries not being available. Since we just want to build the library, the commit also changes the script to not install CryptoMiniSat anymore and updates the CMake find script to accomodate the new folder structure. Side note: the folder structure generated after this commit is a bit more uniform with, e.g. the CaDiCaL script: The source files are directly in the cryptominisat5 folder, not in a subfolder.
2018-10-20Remove antlr_undefines.h. (#2664)Mathias Preiner
Is not required anymore since we don't use autotools anymore.
2018-09-27cmake: Add CxxTest finder module to allow custom paths. (#2542)Mathias Preiner
2018-09-26cmake: Only print dumping warning if not disabled by user. (#2543)Mathias Preiner
2018-09-24cmake: Fix and simplify git version info. (#2516)Aina Niemetz
2018-09-22cmake: Build fully static binaries with option --static.Mathias Preiner
2018-09-22cmake: Add more documentation, some fixes and cleanup.Mathias Preiner
2018-09-22cmake: Move PACKAGE_NAME to ConfigureCVC4, more cleanup.Mathias Preiner
2018-09-22cmake: Add support for cross-compiling for Windows.Mathias Preiner
2018-09-22cmake: Do not allow dumping with portfolio build.Aina Niemetz
2018-09-22cmake: FindANTLR: Check if antlr3FileStreamNew is available.Mathias Preiner
2018-09-22cmake: Add some more documentation, cleanup.Mathias Preiner
2018-09-22cmake: Move helper functions to cmake/Helpers.cmake.Mathias Preiner
2018-09-22cmake: Refactor and clean up build profile printing.Aina Niemetz
2018-09-22cmake: Add module finder for Valgrind.Mathias Preiner
2018-09-22cmake: Various CMakeLists.txt fixes/cleanup.Mathias Preiner
2018-09-22cmake: Add missing checks for cvc4autoconfig.h to ConfigureCVC4.cmake.Mathias Preiner
2018-09-22cmake: Add options for specifying install directories for dependencies.Mathias Preiner
2018-09-22cmake: Add module finder for GLPK-cut-log.Mathias Preiner
2018-09-22cmake: Add module finder for ABC.Mathias Preiner
2018-09-22cmake: Compile Java tests and add to ctest if Java bindings are enabled.Mathias Preiner
2018-09-22cmake: Various portfolio/default option fixes.Mathias Preiner
2018-09-22cmake: Enable shared by default.Mathias Preiner
Further, force shared builds in case of unit tests.
2018-09-22cmake: Add support for CxxTest.Aina Niemetz
2018-09-22cmake: Filter through and disable unused HAVE_* variables from autotools.Aina Niemetz
2018-09-22cmake: Added support for coverage and profiling.Aina Niemetz
2018-09-22cmake: Added 3-valued option handling (to enable detection of user-set options).Aina Niemetz
2018-09-22cmake: Add module finder for readline.Mathias Preiner
2018-09-22cmake: Added licensing options and warnings/errors.Aina Niemetz
2018-09-22cmake: Add build configurations.Aina Niemetz
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback