From c8b1ea28364ef185ef61d2ca20230e92bb475b89 Mon Sep 17 00:00:00 2001 From: Johannes Thyssen Tishman Date: Wed, 19 Mar 2025 18:03:29 +0100 Subject: [PATCH] Configure and install thumbnailer Currently the file "src/XDGData/FreeCAD.thumbnailer" gets installed, but the associated freecad-thumbnailer script isn't. Install the script, too. While here, have the paths to the default icon and freecad-thumbnailer script follow ${CMAKE_INSTALL_DATAROOTDIR} and ${CMAKE_INSTALL_BINDIR} respectively. --- ...freecad-thumbnailer => freecad-thumbnailer.in} | 3 ++- src/XDGData/CMakeLists.txt | 15 ++++++++++++++- src/XDGData/FreeCAD.thumbnailer | 4 ---- src/XDGData/FreeCAD.thumbnailer.in | 4 ++++ 4 files changed, 20 insertions(+), 6 deletions(-) rename src/Tools/{freecad-thumbnailer => freecad-thumbnailer.in} (94%) delete mode 100644 src/XDGData/FreeCAD.thumbnailer create mode 100644 src/XDGData/FreeCAD.thumbnailer.in diff --git a/src/Tools/freecad-thumbnailer b/src/Tools/freecad-thumbnailer.in similarity index 94% rename from src/Tools/freecad-thumbnailer rename to src/Tools/freecad-thumbnailer.in index 5c89ffe12d..641c9f97d4 100644 --- a/src/Tools/freecad-thumbnailer +++ b/src/Tools/freecad-thumbnailer.in @@ -37,6 +37,7 @@ import getopt opt, par = getopt.getopt(sys.argv[1:], "-s:") input_file = par[0] output_file = par[1] +default_icon = "@CMAKE_INSTALL_DATAROOTDIR@/icons/hicolor/48x48/apps/org.freecad.FreeCAD.png" try: # Read compressed file @@ -54,7 +55,7 @@ try: image = zfile.read(image) else: # apps should have at least 48x48 icons - freecad = open("/usr/share/icons/hicolor/48x48/apps/org.freecad.FreeCAD.png", "rb") + freecad = open(default_icon, "rb") image = freecad.read() # Write icon to output_file diff --git a/src/XDGData/CMakeLists.txt b/src/XDGData/CMakeLists.txt index ec4609243a..837381554a 100644 --- a/src/XDGData/CMakeLists.txt +++ b/src/XDGData/CMakeLists.txt @@ -30,7 +30,20 @@ install( DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/mime/packages ) +configure_file( + FreeCAD.thumbnailer.in + ${CMAKE_BINARY_DIR}/FreeCAD.thumbnailer +) install( - FILES FreeCAD.thumbnailer + FILES ${CMAKE_BINARY_DIR}/FreeCAD.thumbnailer DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/thumbnailers ) + +configure_file( + ${CMAKE_SOURCE_DIR}/src/Tools/freecad-thumbnailer.in + ${CMAKE_BINARY_DIR}/freecad-thumbnailer +) +install( + PROGRAMS ${CMAKE_BINARY_DIR}/freecad-thumbnailer + TYPE BIN +) diff --git a/src/XDGData/FreeCAD.thumbnailer b/src/XDGData/FreeCAD.thumbnailer deleted file mode 100644 index 005dd0ae28..0000000000 --- a/src/XDGData/FreeCAD.thumbnailer +++ /dev/null @@ -1,4 +0,0 @@ -[Thumbnailer Entry] -TryExec=freecad-thumbnailer -Exec=freecad-thumbnailer -s %s %i %o -MimeType=application/x-extension-fcstd; diff --git a/src/XDGData/FreeCAD.thumbnailer.in b/src/XDGData/FreeCAD.thumbnailer.in new file mode 100644 index 0000000000..f334368d4a --- /dev/null +++ b/src/XDGData/FreeCAD.thumbnailer.in @@ -0,0 +1,4 @@ +[Thumbnailer Entry] +TryExec=@CMAKE_INSTALL_BINDIR@/freecad-thumbnailer +Exec=@CMAKE_INSTALL_BINDIR@/freecad-thumbnailer -s %s %i %o +MimeType=application/x-extension-fcstd;