BxCppDev / Bayeux

Core Persistency, Geometry and Data Processing C++ Library for Particle and Nuclear Physics Experiments
GNU General Public License v3.0
4 stars 9 forks source link

Use correct CLHEP/Boost find mechanisms #60

Closed drbenmorgan closed 4 years ago

drbenmorgan commented 4 years ago

Discovered in trying to package Bayeux for use in SuperNEMO: changes to how CLHEP was located in cmake/BayeuxDependencies.cmake resulted in both CLHEP not being found and no error being reported until compile/link time.

This PR removes both the obsolete FindCLHEP and FindBoost modules. The former isn't required as CLHEP has provided a suitable CLHEPConfig file from Bayeux's minimum required version. The latter is obsoleted by upstream changes in CMake, and the minimum version of that is bumped to 3.12 to support Bayeux's recommended Boost requirement plus some leeway for versions through to the 1.7X series.

drbenmorgan commented 4 years ago

Addendum - it would be incredibly helpful if GitHub CI could be set used by Bayeux to identify these kind of issues from the start.

fmauger commented 4 years ago

I'll setup minimal CI for Bayeux ASAP. I have to check what are the requirements to make sure what dependencies should be guaranted and how to make them available in the CI context. I'll request some help if needed. I'll start with ubuntu 20.04 at least and try to use as far as possible the system package manager.

fmauger commented 4 years ago

Oops ! Unfortunately, when using CLHEP 2.1.3.1 from Ubuntu 20.04 system packaging, the CLHEPConfig files are NOT installed (this is a bug in Debian packaging IMHO) so that the NO_MODULE option fails to find CLHEP. This is a pity as I would like to minimize the use of external dependencies and try to make use of system packages as far as possible. I suggest to use a trick for now to work around this issue. The use of a future dedicated image will solve this CI issue.

fmauger commented 4 years ago

I have restored the FindCLHEP hack file to support a very preliminary CI workflow for minimal build and test of Bayeux. it is an optional trick. The CI wf works only on ubuntu 20.04 for now (I was confused by ubuntu-latest before to I could find the proper doc on github !). That way I can at least check the core build for Bayeux and identify basic issues. Next step is to use a container with the proper deps (G4, root...) for I don't see how to cache such big things in the CI framework without docker.