Since musrview is built on the ROOT7 web graphics it needs a fair number of
ROOT build options which are not all on by default. Without them musrview
either does not compile at all or, worse, compiles and then shows a blank
window at run time. The only check so far was for the ROOT::ROOTWebDisplay
target.
The new cmake/MusrfitCheckROOT7.cmake collects all problems and reports them
in one go, together with the ROOT cmake flags needed to fix them:
- the ROOT build options root7, webgui and http (ROOT_<option>_FOUND),
- the libraries ROOT::ROOTWebDisplay and ROOT::RHTTP,
- the headers ROOT/RWebWindow.hxx and ROOT/RWebWindowsManager.hxx,
- the API itself, through a compile-only check of the calls musrview and
PMusrWebCanvas make. If that fails it is retried in the ROOT::Experimental
namespace, which tells the user that the ROOT is older than 6.32 instead of
leaving them with a compiler error,
- JSROOT: the js directory (overridable with -DMUSRVIEW_JSROOT_DIR=<dir>), the
modules musrview.html imports and the '<!--jsroot_importmap-->' support of
THttpServer which resolves the 'jsroot/...' specifiers.
Not fatal, but warned about and shown in the config summary:
- MUSRVIEW_HAS_QT6WEB: without ROOT's qt6web musrview falls back from its
embedded window to the standard browser of the system,
- MUSRVIEW_HAS_IMAGE_EXPORT: without libASImage 'musrview --png/--gif/--jpg'
writes nothing. In that case the musrview_check tests, which compare
rendered PNGs, are no longer registered - they could then only fail for a
reason that has nothing to do with musrfit.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013Ck7v5F7KjinfC2EyE7K3C