@@ -165,13 +165,28 @@ elseif(APPLE)
165165 install (DIRECTORY ${CMAKE_BINARY_DIR} /${PROJECT_TARGET_NAME} /${PROJECT_SHORT_REL_NAME} .app DESTINATION . USE_SOURCE_PERMISSIONS COMPONENT Application)
166166else ()
167167 set (CMAKE_INSTALL_PREFIX "/opt/${PROJECT_FAMILY_NAME} /${PROJECT_SHORT_REL_NAME} " CACHE PATH "Install path prefix" FORCE)
168+ set (CPACK_SET_DESTDIR ON )
169+ set (CPACK_PACKAGING_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX} " )
168170
169171 install (TARGETS cloud-client DESTINATION bin COMPONENT Application)
170172 install (DIRECTORY ${PROJECT_TARGET_NAME} /help/ DESTINATION help COMPONENT Application)
171173 install (DIRECTORY ${PROJECT_TARGET_NAME} /doc / DESTINATION doc COMPONENT Application)
172174 install (DIRECTORY ${PROJECT_TARGET_NAME} /etc/ DESTINATION etc COMPONENT Application)
173175 install (DIRECTORY ${_qt_deploy_dir} / DESTINATION . COMPONENT Application)
174176 install (FILES ${CMAKE_BINARY_DIR} /LICENSE.txt DESTINATION doc COMPONENT Application)
177+ install (FILES ${PROJECT_TARGET_NAME} /pixmaps/${PROJECT_PACKAGE_NAME} .svg DESTINATION pixmaps COMPONENT Application)
178+
179+ # ---- DEB/RPM
180+ set (DESKTOP_ABS "${CMAKE_BINARY_DIR} /desktop/${PROJECT_PACKAGE_NAME} .desktop" )
181+ set (EXEC_PATH "${CMAKE_INSTALL_PREFIX} /bin/${PROJECT_TARGET_NAME}${DEBUG_EXT} " )
182+
183+ configure_file (
184+ ${CMAKE_SOURCE_DIR} /range-build -tools/packaging/app.desktop.in
185+ ${DESKTOP_ABS}
186+ @ONLY
187+ )
188+
189+ install (FILES ${DESKTOP_ABS} DESTINATION desktop COMPONENT Application)
175190endif ()
176191
177192# CPack -----------------------------------------------------------------------
@@ -214,7 +229,8 @@ if(WIN32)
214229elseif (APPLE )
215230 set (CPACK_GENERATOR "DragNDrop" )
216231else ()
217- set (CPACK_GENERATOR "IFW;ZIP;TGZ;STGZ;DEB;RPM" )
232+ set (CPACK_GENERATOR "STGZ;DEB;RPM" )
233+ #set(CPACK_GENERATOR "IFW;ZIP;TGZ;STGZ;DEB;RPM")
218234endif ()
219235
220236# DEB
@@ -226,6 +242,43 @@ set(CPACK_RPM_PACKAGE_LICENSE "GPLv3")
226242set (CPACK_RPM_PACKAGE_GROUP "Applications/Internet" )
227243#set(CPACK_RPM_PACKAGE_REQUIRES "glibc >= 2.27")
228244
245+ # Generate scripts from templates (so you can @ONLY-substitute project vars)
246+ configure_file (${CMAKE_SOURCE_DIR} /range-build -tools/packaging/debian/postinst.in
247+ ${CMAKE_BINARY_DIR} /packaging/debian/postinst
248+ @ONLY)
249+ configure_file (${CMAKE_SOURCE_DIR} /range-build -tools/packaging/debian/prerm.in
250+ ${CMAKE_BINARY_DIR} /packaging/debian/prerm
251+ @ONLY)
252+
253+ # Debian control scripts MUST be executable
254+ file (CHMOD ${CMAKE_BINARY_DIR} /packaging/debian/postinst PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ WORLD_READ)
255+ file (CHMOD ${CMAKE_BINARY_DIR} /packaging/debian/prerm PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ WORLD_READ)
256+
257+ # Tell CPack-DEB to include them
258+ # (generic for whole package)
259+ set (CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA "${CMAKE_BINARY_DIR} /packaging/debian/postinst;${CMAKE_BINARY_DIR} /packaging/debian/prerm" )
260+
261+ # If you package by component, use the component-scoped var instead:
262+ # set(CPACK_DEBIAN_APPLICATION_PACKAGE_CONTROL_EXTRA
263+ # "${CMAKE_BINARY_DIR}/packaging/debian/postinst;${CMAKE_BINARY_DIR}/packaging/debian/prerm")
264+
265+
266+ # RPM scripts (don’t need +x; CPack embeds their contents)
267+ configure_file (${CMAKE_SOURCE_DIR} /range-build -tools/packaging/rpm/post.in
268+ ${CMAKE_BINARY_DIR} /packaging/rpm/post
269+ @ONLY)
270+ configure_file (${CMAKE_SOURCE_DIR} /range-build -tools/packaging/rpm/preun.in
271+ ${CMAKE_BINARY_DIR} /packaging/rpm/preun
272+ @ONLY)
273+
274+ # Tell CPack-RPM where they are
275+ set (CPACK_RPM_POST_INSTALL_SCRIPT_FILE "${CMAKE_BINARY_DIR} /packaging/rpm/post" )
276+ set (CPACK_RPM_PRE_UNINSTALL_SCRIPT_FILE "${CMAKE_BINARY_DIR} /packaging/rpm/preun" )
277+
278+ # If packaging by component "Application", use component-scoped variants:
279+ # set(CPACK_RPM_APPLICATION_POST_INSTALL_SCRIPT_FILE "${CMAKE_BINARY_DIR}/packaging/rpm/post")
280+ # set(CPACK_RPM_APPLICATION_PRE_UNINSTALL_SCRIPT_FILE "${CMAKE_BINARY_DIR}/packaging/rpm/preun")
281+
229282# DMG
230283if (APPLE )
231284 set (DMG_ICON "${CMAKE_SOURCE_DIR} /${PROJECT_TARGET_NAME} /pixmaps/${PROJECT_PACKAGE_NAME} .icns" )
@@ -288,48 +341,6 @@ if(APPLE)
288341 endif ()
289342endif ()
290343
291- # -------------------------------------------------------------
292- # Linux .desktop + icon install (DEB/RPM) and IFW user install
293- # -------------------------------------------------------------
294- if (UNIX AND NOT APPLE )
295- # Paths used in desktop files
296- # Executable name follows your DEBUG suffix logic
297- set (EXEC_BASENAME "${IFW_QS_TARGET_FILE_BASE} " ) # e.g. fea or fea_debug
298-
299- # ---- DEB/RPM (absolute paths under CMAKE_INSTALL_PREFIX)
300- set (DESKTOP_ABS "${CMAKE_BINARY_DIR} /${PROJECT_PACKAGE_NAME} .desktop" )
301- set (EXEC_PATH "${CMAKE_INSTALL_PREFIX} /bin/${EXEC_BASENAME} " )
302- set (ICON_PATH "${CMAKE_INSTALL_PREFIX} /share/icons/hicolor/256x256/apps/${PROJECT_PACKAGE_NAME} .png" )
303-
304- configure_file (
305- ${CMAKE_SOURCE_DIR} /range-build -tools/app.desktop.in
306- ${DESKTOP_ABS}
307- @ONLY
308- )
309-
310- # Install desktop + a 256px PNG icon for system packages
311- install (FILES "${DESKTOP_ABS} " DESTINATION share/applications COMPONENT Application)
312- install (FILES "${CMAKE_SOURCE_DIR} /${PROJECT_TARGET_NAME} /pixmaps/${PROJECT_PACKAGE_NAME} .png"
313- DESTINATION share/icons/hicolor/256x256/apps COMPONENT Application)
314-
315- # ---- IFW (will be copied to ~/.local/share/applications at install-time)
316- # Keep dynamic placeholders that IFW script will replace with the real TargetDir
317- set (DESKTOP_IFW "${CMAKE_BINARY_DIR} /${PROJECT_PACKAGE_NAME} .desktop.ifw" )
318- set (EXEC_PATH "@EXEC_PATH@" ) # placeholder
319- set (ICON_PATH "@ICON_PATH@" ) # placeholder
320- configure_file (
321- ${CMAKE_SOURCE_DIR} /range-build -tools/app.desktop.in
322- ${DESKTOP_IFW}
323- @ONLY
324- )
325-
326- # Ship the template + icon inside the IFW payload (into app dir)
327- install (FILES "${DESKTOP_IFW} " DESTINATION . COMPONENT Application)
328- install (FILES "${CMAKE_SOURCE_DIR} /${PROJECT_TARGET_NAME} /pixmaps/${PROJECT_PACKAGE_NAME} .png"
329- DESTINATION ${PROJECT_TARGET_NAME} /pixmaps COMPONENT Application)
330- endif ()
331-
332-
333344# -----------------------------------------------------------------------------
334345
335346include (CPackIFW)
0 commit comments