Skip to content

Mgs conanize

Jekabs Karklins requested to merge mgs_conanize into master

Created by: martukas

This pull request fully conanizes the EFU, and also includes a thorough refactoring of the CMake files. These are the most significant changes:

  • Everything builds with conan

  • Multi-platform build

  • All binaries end up in build_root/bin

  • All libraries end up in build_root/lib

  • The efu2 is now called simply efu. No one remembers an efu1 so the designation is meaningless. We will do proper semantic versioning at some point. All references to efu2 have been replaced in documentation, etc.. I guess you will need to update your grafana screens and deployment scripts.

  • In view of the above 3 points, the way to run gdgem would be (in build root):

./bin/efu -d ./lib/gdgem -f ~/cfg.json

  • There is no more local flatbuffer headers. They are all brought in via conan and added to the path.

  • There is no more local ESSGeometry. This is also brought in via conan.

  • The implication of the above 2 points is that, essentially, conan builds are the only ones we now explicitly support. That is how all the docker nodes do it on Jenkins, and it is enough work to keep everything compatible via this mechanism. If you want to somehow build without conan, that should still be possible by manually setting some include path variables when in voking CMake. I think? But if supporting it demands some additional complexity in the CMake scripts, we will avoid this. We have tried to keep support for both ways on the file writer at PSI's behest, but it has just ground everything to a halt. This is partly why I have gone crazy on the EFU this week, while spending boring hours waiting for PSI to confirm that the file writer builds without conan on some even older Centos that we have never seen nor have any Jenkins nodes for...

  • I have refactored the CMake stuff almost unrecognizably. Everything should work, but there are some outstanding questions. If you search through the files for a tripple-question mark "???" you will find some comments.

  • FYI, when building, on some systems you need to invoke the conan-provided virtual environment. So the new mantra goes like:

mkdir build

cd build

conan install --build=outdated ..

source activate_run.sh

cmake -DUSE_OLD_ABI=0 -DDUMPTOFILE=1 ..

make

Merge request reports