Skip to content

Cmake updates #602

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

Open
wants to merge 96 commits into
base: master
Choose a base branch
from
Open

Cmake updates #602

wants to merge 96 commits into from

Conversation

sjunges
Copy link
Contributor

@sjunges sjunges commented Aug 28, 2024

This changes the build process significantly, mostly by cleaning up the cmake files.

  • We now set the version of the SO files.
  • We associate headers with targets.
    As it uses target_sources with file_sets, this requires cmake 3.23 and thus no longer supports ubuntu 22.04.
  • Changes how carl is included. It now fetches the content from a prespecified git repo at configure time. You can change the repo and the tag via the cmake options.
    If you want to use the sources from an existing carl installation, you can use
    -DFETCHCONTENT_SOURCE_DIR_CARL=~/carl or any other path.
  • Changes how Sylvan is included. It now handles sylvan as a subproject.
  • Supports installations with all variations of dependencies.
  • No longer able to install GLPK, but can now compile/run without GLPK (and thus possibly without an LP solver).
  • Changes the CI to test installations, checks flags from makefile rather than from storm output, and tests whether it works with the storm starter project.
  • Many dependencies are now included via cmake config files.
  • We updated the z3 version that we require to no longer have z3 versions that do not support optimization.
  • We updated the minimal boost version to 1.70, this also ensures that this is more stable for future use. Supported OS'es have newver versions of Boost as default in their package managers (see also https://stackoverflow.com/questions/79146083/finding-boost-without-cmake-find-module-cmp0167). We no longer load boost libraries that we do not need.

This also fixes #631 by no longer copying header files to the include path.
This also fixes #610 as installs are now tested
This imo also fixes #546 as I've reworked all dependencies.

Things to consider before merging

Things to consider before or after merging

  • Review TODOs in cmake
  • Handle sylvan warnings in debug mode (currently disabled, not urgent)
  • The CI currently uses a storm-starter-project from my own repo/a specific branch. This should change.
  • I suggest to make GLPK optional to simplify the build script (Make glpk optional #678)
  • We are not gracefully telling users that installing cln via carl will not support installation. In particular, I don't really want to support installing CLN via carl anymore. Should be discussed.
  • The storm starter project assumes z3. If z3 is not available, the CI therefore fails. We resovled this by adding a --help message to the starter project that does not fail without z3.
  • The message Did not find IMPORTED_LOCATION of libsoplex-pic for export. should be resolved.

@sjunges
Copy link
Contributor Author

sjunges commented Nov 12, 2024

Also, it requires moves-rwth/carl-storm#46

@volkm volkm mentioned this pull request Jan 26, 2025
@sjunges sjunges mentioned this pull request Mar 28, 2025
9 tasks
@sjunges
Copy link
Contributor Author

sjunges commented Mar 29, 2025

@volkm Ready for review!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

clangd go-to-definition goes to include files Testing cmake installs Standardize CMake flags for libraries
1 participant