41 Commits
Author SHA1 Message Date
suter_a f43c03133b install Linux .desktop files and icons for mupp, musrWiz and musrStep.
mupp_plot used the misspelled MUSRFIT_XDG_DATADIR, which only worked thanks
to a stale cache entry; use MUSRFIT_XDG_DATA_DIR like everything else.
2026-10-29 14:58:32 +01:00
suter_a 1719375bbc mupp_plot: set its own macOS Dock icon and match musrview's icon style.
TGCocoa::SetIconPixmap()/SetClassHints() are no-ops on macOS, so the xpm
mupp_plot set on its TRootCanvas only ever applied on X11 - the Dock/window
icon stayed the generic ROOT one on macOS. Use the same Cocoa helper
(PMacDockIcon.mm's SetMacDockIcon()) already used by musrview/musrFT/musrt0
to set the Dock icon from a compiled-in PNG.

The new icon's tile shape and background were measured off
src/classes/icons/musrview-512.png and matched: a rounded-square tile with
~22% corner radius and a vertical light-to-medium blue gradient background,
instead of the previous plain white tile with a gray border.

Also:
- compile PMacDockIcon.mm into mupp_plot on Darwin and link Cocoa, mirroring
  src/classes/CMakeLists.txt
- fix MUSRFIT_XDG_DATA_DIR -> MUSRFIT_XDG_DATADIR in the Linux install rules
  (the former is not a defined variable, so install() was resolving to
  absolute paths at the filesystem root)
- install a 512x512 icon on Linux too (hicolor/512x512/apps), matching
  musrview, and list it in the rpm spec

Done for both the Qt6 and Qt5 plotter.
2026-10-29 10:23:15 +01:00
suter_a 9229d2ca65 mupp_plot: show its own window/dock icon instead of the generic ROOT one.
Like musrFT and musrt0: set a compiled-in xpm icon (rendered from
mupp-plain.svg) and the class hint "mupp_plot" on the TRootCanvas, and on
Linux install a matching .desktop file and 48x48 icon to MUSRFIT_XDG_DATA_DIR,
refreshing an existing gtk icon cache. Done for the Qt6 and Qt5 plotter.
2026-10-28 11:17:05 +01:00
suter_aandClaude Opus 5.5 6e1a7fe0d3 musrFT, musrt0: show their own window/dock icon instead of the generic ROOT one.
Port of adc991f72 (root6). The ROOT canvas sets the macro_s.xpm icon and
WM_CLASS "ROOT". Set a compiled-in xpm icon and a per-tool class hint, and
install matching .desktop files (with full Exec path) and icons to
MUSRFIT_XDG_DATA_DIR. An existing gtk icon cache is refreshed at install time.
musrview was already handled on this branch.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 21:57:38 +02:00
suter_aandClaude Opus 5.5 42a292dbc6 install the .desktop files where the desktop finds them, with full Exec path
With the usual install prefix ($ROOTSYS) the .desktop files and icons ended
up in $ROOTSYS/share, which is neither in $XDG_DATA_HOME nor $XDG_DATA_DIRS.
They now go to MUSRFIT_XDG_DATA_DIR, defaulting to the system share dir for
/usr and /usr/local prefixes and to $XDG_DATA_HOME (~/.local/share) otherwise.

The .desktop files are configured from templates so that Exec= holds the full
path of the binary, since $ROOTSYS/bin is typically not on the PATH of the
graphical session.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 18:20:46 +02:00
suter_aandClaude Opus 5.5 a18a579d7a musrview: give the embedded window a proper application name and icon
musrview is a plain executable, hence on macOS it showed up with the generic
'exec' icon. The QApplication behind the embedded display is created by ROOT,
musrview now sets its name and icon after the first window is shown (needs
Qt6::Widgets, the same Qt ROOT's qt6web links against).

- new application icon src/musrview_web/musrview.svg/.png, installed next to
  musrview.html and found the same way (PMusrWebCanvas::WebDir())
- macOS: an Info.plist embedded into the binary gives name and bundle id
- Linux: musrview.desktop plus hicolor icons, and setDesktopFileName() so that
  Wayland compositors can match the window to its icon

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 18:11:22 +02:00
suter_aandClaude Sonnet 5 4302b40d9e cmake: don't let a stale cache poison the ROOT7 API compile check.
check_cxx_source_compiles() caches MUSRVIEW_HAS_ROOT7_API under a plain
variable name with no dependency tracking, so a failure recorded once
(e.g. against an older ROOT built into the same build/ directory) kept
being reported as missing on every later reconfigure even after ROOT was
fine. Unset both cache entries before the check so it always re-runs.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-11 16:46:42 +02:00
suter_aandClaude Opus 5 ff8fb9cf70 cmake: check at config time that ROOT provides all the ROOT7 features musrview needs.
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
2026-09-11 16:26:48 +02:00
suter_a 53ec95db6e work on cleaner cmake. 2026-04-15 20:29:55 +02:00
krieger_j 5304f276d8 adds installation of musredit as a unix app 2026-03-13 15:20:31 +01:00
suter_a c062e0f4e9 add musrfitConfig.cmake, etc. for musrfit.
Build and Deploy Documentation / build-and-deploy (push) Successful in 30s
2026-03-01 09:35:34 +01:00
suter_a 909fa6519d added HDF4 ISIS NeXus class handling. 2026-01-25 10:51:23 +01:00
suter_a e525abe614 simplify git-revision.h generation. 2025-05-19 13:29:54 +02:00
suter_a c3f531e0d5 fixed a bug for out-of-repo build to generate git-info. 2024-10-11 08:19:54 +02:00
suter_a bace23b97e add hint for potential flatpak. 2023-04-14 10:50:58 +02:00
suter_a 2db15b2551 add OS tag for packages. 2023-01-09 10:46:55 +01:00
suter_a 1e51d2a007 squeeze out version information of the used libs. 2022-11-09 09:15:30 +01:00
suter_a 804c56fd1f removed obsolete filed. 2022-07-06 13:48:07 +02:00
suter_a ae7f1a2168 more work towards a modern cmake. As a first example reworked FFTW3 binding. 2022-07-01 16:18:24 +02:00
suter_a 8cce005fd5 add info on how musrfit is compiled Debug or Release. 2021-05-21 07:44:50 +02:00
suter_a c06f510aff changes needed since upcoming ROOT6.24 (minuit2) will break the backward compatibility. 2021-04-09 10:03:34 +02:00
suter_a 38b289b99f add ROOT version information for better diagnostics. 2021-04-09 09:33:08 +02:00
suter_a f9581ae9d5 fix typo. Increase minimal root version from rpm. 2021-01-26 10:21:06 +01:00
suter_a 68ce56c7db add FindHDF4.cmake to musrfit since in more modern linux systems it is not available anymore. 2020-05-14 15:49:18 +02:00
suter_a 25bfa1f66b update of the docu. 2019-05-15 10:14:39 +02:00
suter_a fec5017fc2 added log info for the cpack part. 2019-03-11 13:33:42 +01:00
suter_a d48615650e adopted for yum update which calls at the end the uninstall script. 2019-02-04 10:53:35 +01:00
suter_a a7806f7e02 added necessary CPack tag for redhat flavor. 2019-02-04 10:52:37 +01:00
suter_a faffd5bcd6 CPack post (un)install
add post (un)install scripts to musrfit cpack. Currently for rpm only. Furthermore a minimal required root version is added. Will need to see if this is sufficient or if more detailed work needs to be added.
2019-01-31 10:45:05 +01:00
suter_a d634fd2ce6 CPack/CMake for musrfit
more tweaks towards musrfit rpm
2019-01-14 11:19:19 +01:00
suter_a 87f706dfaa CPack stub to generate RPM, DEB, etc
Added the first necessary files allowing to generate all kind of packages for the future.
Currently not much testing is present.
2019-01-10 10:17:24 +01:00
suter_a 7f82ecb9e7 cmake: remove HAVE_FORK since it leads to performance issuses with the cuba lib. 2018-06-12 11:25:23 +02:00
suter_a f977f88791 fixed wrong comment line character. 2018-05-23 17:32:56 +02:00
suter_a 0bc2ef7612 cmake: start to add the Qt components. No real functionality yet. 2018-05-22 15:25:22 +02:00
suter_a 1d191acd60 cmake: libCuba now containing the right symbols for c++/c. 2018-05-16 19:32:03 +02:00
suter_a b5d446212f added HAVE_FORK flag for libCuba. 2018-05-14 11:12:17 +02:00
suter_a 2efa975de8 cmake: added musrfit version information to config.h. 2018-05-11 22:12:22 +02:00
suter_a b57d67fe35 more work towards full cmake support. Added necessary initial config.h generation. 2018-05-11 17:11:32 +02:00
suter_a fa6344360f improved cmake module FindFFTW3. It delivers now more precise info about the available libs. 2018-05-11 16:41:20 +02:00
suter_a 258def542f added missing files needed to get git revision. 2018-05-04 18:20:28 +02:00
suter_a f7ccf79fa8 some more work towards modern cmake 2018-05-03 15:29:13 +02:00