-
Notifications
You must be signed in to change notification settings - Fork 273
Add CMake support for building and linking against CaDiCaL using the IPASIR interface #6075
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
message(STATUS "Building with IPASIR solver linking against: CaDiCaL") | ||
|
||
download_project(PROJ cadical | ||
URL https://github.com/arminbiere/cadical/archive/rel-1.4.0.tar.gz |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This uses CaDiCaL 1.4.0 and the non-IPASIR path uses CaDiCaL 1.3.0, can these by made the same version?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, I have it on my todo list, though it needs to be submitted as a different PR - I prefer PRs to be isolated to single feature changes.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'd have the commit accomplishing this at tautschnig@330542a, but thus far held back on creating a PR as performance needs to be evaluated (I vaguely recall a regression).
I'm curious how much of the IPASIR building configuration is specific to CaDiCaL and how much is generic? Is it easy to link against another IPASIR compatible solver if one already has the correct path information to pass in to |
Codecov Report
@@ Coverage Diff @@
## develop #6075 +/- ##
===========================================
+ Coverage 74.25% 74.53% +0.28%
===========================================
Files 1445 1447 +2
Lines 157479 157761 +282
===========================================
+ Hits 116933 117587 +654
+ Misses 40546 40174 -372
Continue to review full report at Codecov.
|
This is allowing an advanced user to build and link CBMC with arbitrary SAT Solvers using the IPASIR interface.
Add more instructions on linking against custom IPASIR supporting solvers through CMake.
I've checked this on Ubuntu 20.04 with the CaDiCaL and also linked to SATCOMP via the IPASIR path, all worked for me. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me. Thanks for the clear instructions!
Expand the CMake build to be able to link against IPASIR supporting solvers. Two
new solver configurations have been added:
-Dsat_impl=ipasir_cadical
will handle downloading, building and linking against the solver), andadventurousdemanding users, who may want to link against a different variety of solvers). This is more involved as an option (requires a number of different flags to be passed to CMake).This expands our configuration options significantly. Previously, we could do one of two things:
cmake
using the internal CaDiCaL interface (satcheck_cadical
), ormake
using the IPASIR interface.This now allows us to build using both of the build systems, and link with a number of different solvers, for both testing and production use.