Commit Graph

35 Commits

Author SHA1 Message Date
Romain Brenguier b79624836f Build Cudd at the cmake configuration phase
This makes Cudd be configured and build at the configuration phase. This
simplifies a bit the logic for dependencies of cudd and cudd-cplusplus
targets.
This is the only way I found to make Ninja build flawlessly.
2019-03-22 13:24:25 +00:00
Kareem Khazem 562fad22ee
Make JBMC build optional with cmake
This commit adds an option to CMake, `WITH_JBMC`, that controls whether
the jbmc directory will be built. It is switched on by default,
preserving the current behaviour.

The motivation is to make it as easy as possible for users to get
started with CBMC, especially users who are only interested in the C
front-end and are on Windows, where installing the JDK and Maven is a
painful exercise.

Also updated `COMPILING.md` to note that you can pass `-DWITH_JBMC=OFF`
to cmake to avoid building jbmc.
2019-03-14 07:05:57 -07:00
Romain Brenguier f1a1bb75d2 Add CUDD to CMake
CMake instructions to download Cudd when the CMAKE_USE_CUDD parameter is
set to true.
2019-02-01 06:48:55 +00:00
Michael Tautschnig ab6abf856a CMake builds: avoid NDEBUG in RelWithDebInfo builds
Just like is done for Release builds, NDEBUG shouldn't be set for RelWithDebInfo
builds either. Although we are trying to move away from straight "assert" and
use invariants instead, we a) haven't completed this yet and b) imported code
such as optional.hpp continues to use "assert."
2019-01-26 13:03:23 +00:00
Hannes Steffenhagen 30cb51c22a Add stub for new goto-harness tool
This adds a new executable called goto-harness. Right now it doesn't actually do
anything, but ultimately its purpose will be to generate "harness" functions for
goto-programs - i.e. given some specification, it'll generate a function
suitable as a cbmc entry point function that implements that specification.

Planned for now are two types of harnesses: One that takes the name of a
function with parameters and then generates a function that sets up these
parameters and calls the function with them. This is similar to what cbmc does
already, however will allow more flexibility in choosing how exactly these
parameters will be initialised which was deemed out of scope for cbmc. The other
will be able to take a snapshot of a concrete execution of a program, and then
start an analysis from that point.
2019-01-25 17:56:02 +00:00
Michael Tautschnig e3b76c7477 Build coverage reports using CMake
Understanding which code is covered by our tests may in future enable automation
to check whether code modifications are covered by tests.
2019-01-15 12:56:15 +00:00
Michael Tautschnig 28935e6eca
Merge pull request #3409 from tautschnig/big-int-unit-test
Move big-int unit test to unit/ folder and make it a CATCH-style test [blocks: #2452]
2018-12-19 11:45:17 +00:00
Peter Schrammel bac549b50b Move cbmc_solvers as solver_factory to goto-checker module
This is the first step of introducing the goto-checker module
which will hold the language-agnostic BMC classes.
2018-12-17 17:58:29 +00:00
Chris Smowton 86e8356565 Implement JSON symtab language frontend.
Implement JSON symtab language, a new, more generic
language frontend, able to read GOTO programs in JSON
form, from any frontend that generates them. Currently
this stands as the support frontend for our ADA
conversion tool, GNAT2GOTO.
2018-11-21 15:07:50 +00:00
Michael Tautschnig 17d96d7274 Move big-int unit test to unit/ folder and make it a CATCH-style test 2018-11-14 10:58:38 +00:00
Michael Tautschnig bd55a28bf8 Make the remaining (relevant) miniBDD catch-style unit tests 2018-09-18 09:23:44 +00:00
Daniel Kroening ba57a14e1a remove memory-models 2018-08-15 18:48:24 +01:00
Daniel Kroening a1d59d28fc remove clobber 2018-08-15 12:26:28 +01:00
Peter Schrammel b34e951e52 Use submodule to download java-models-library 2018-07-09 21:13:37 +01:00
Daniel Kroening b96c7ba857 move build commands for version.h from common to util/ 2018-07-03 16:20:32 +01:00
Michael Tautschnig e638f72c8f CBMC_VERSION: Use generated include files instead of command-line defines
Also fixes a number of shortcomings of the earlier approach as far as CMake is
concerned:
- Adds --dirty to the git command line (as is done for Makefiles).
- Does not require a rebuild when there are no changes to the version string.
- CBMC release number updates will be reflected and trigger a rebuild (even when
  no other changes have taken place).
2018-06-23 20:41:45 +00:00
Michael Tautschnig 1360f7fcfc CMake refers to Clang on a Mac as AppleClang 2018-06-23 20:41:45 +00:00
Michael Tautschnig 23455af549 Print git revision with all --version outputs
This uses the output of `git-describe --tags --always --dirty` to create a UID
for binaries. This includes last tag, number of commits after last tag,
shortened SHA1 checksum and optional dirty flag for uncommited changes. In case
of tagged commit, only the tag name is used.
2018-06-21 15:42:20 +00:00
Michael Tautschnig 7ca835bac3 Added CBMC_VERSION defines to CMake configuration 2018-06-21 15:42:20 +00:00
Chris Smowton 5235938f0c Restore testing of jbmc 2018-05-23 13:24:49 +01:00
Peter Schrammel e247458371 Add JANALYZER tool 2018-05-20 23:00:03 +01:00
Peter Schrammel 45887539d1 Add JDIFF tool 2018-05-20 23:00:03 +01:00
Peter Schrammel a20f2c1427 Move java_bytecode, jbmc and miniz to jbmc/src 2018-05-20 23:00:03 +01:00
thk123 252c24c893 Migrate old string utils unit tests 2018-04-16 14:18:12 +01:00
Hannes Steffenhagen 67735b5946 Disable deprecation warnings by default 2018-04-12 10:53:12 +01:00
Hannes Steffenhagen 116fffdabf Add DEPRECATED macro to mark deprecated functions and variables 2018-04-10 16:51:13 +01:00
reuk 81e56ccafb Tidy up CMakeLists 2017-11-15 15:55:08 +00:00
reuk 4a1565b25f Enable compile command output 2017-09-17 22:08:59 +01:00
reuk 00e4555ba1 Fix up CMake build (unrelated) 2017-09-13 22:03:57 +01:00
reuk 91684da5ea Clean up CMake files after #1321 2017-09-11 14:29:12 +01:00
reuk 7d4e9b59d0 Make CMake release flags similar to Makefile build 2017-09-11 14:29:12 +01:00
reuk ad486f8c55 Set up glucose externalproject 2017-09-11 14:29:12 +01:00
reuk d953327a4c Enable caching for CMake builds (hopefully) 2017-09-11 14:29:12 +01:00
reuk f6e49683c9 Enable running tests from CMake 2017-09-11 14:29:12 +01:00
reuk 22c2ab9f04 Add CMakeLists 2017-09-11 14:29:12 +01:00