Suppress Eclipse project files globally, making it more convenient to integrate
CBMC into Eclipse as the repository can directly be used as the project's root
folder. This also eliminates the need to integrate JBMC and CBMC as separate
projects.
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.
As witnessed by the prior commit, errors in the instructions had to be
updated in multiple places. Also removing the Makefile-based build rules
for IPASIR as those would only work for outdated solvers.
The LIBSOLVER variable didn't actually work, because it was not used
consistently. Instead, using LIBS suffices. For example, to use RISS,
build as follows:
git clone https://github.com/conp-solutions/riss riss.git
cd riss.git
mkdir build
cd build
cmake ..
make riss-coprocessor-lib-static
cd ../..
make -C src IPASIR=../../riss.git/riss \
LIBS="../../riss.git/build/lib/libriss-coprocessor.a -lpthread"
export RISSCONFIG=VERBOSE:BMC1
... run CBMC ...
This commit adds a dependency to the java-models-library
(https://github.com/diffblue/java-models-library). This repository
contains models for number of classes derived from the java standard
library. These models are needed to support concurrency.
This means that the process of building JBMC has changed slightly as
one first needs to download the java-models-library. I.E:
make -C jbmc/src java-models-library-download
make -C jbmc/src
Due possible licensing issues, the ability to automatically embed the
java core models into JBMC has been removed. Instead, one must
explicitly use the '--classpath' option to load the models.
Consequently, the '--no-core-models' option and related code was
removed as it is no longer relevant.
Commit also adds a new make target, 'make dist'. This target in
addition to building jbmc will create a 'dist' directory with two
sub-folders, bin and lib. Executables will be copied to the former,
while 'core-models.jar' will copied to the latter.
Note: src/org/cprover/CProver.java has also been removed as this has
been superseded by the CProver.java in the java-models-library.