Skip to content

Commit 313964a

Browse files
committed
Improved packaging on Linux
1 parent 281356c commit 313964a

File tree

3 files changed

+55
-23
lines changed

3 files changed

+55
-23
lines changed

src/CMakeLists.txt

Lines changed: 54 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -238,6 +238,8 @@ elseif(APPLE)
238238
install(TARGETS fea-solver BUNDLE DESTINATION bin COMPONENT Application)
239239
else()
240240
set(CMAKE_INSTALL_PREFIX "/opt/${PROJECT_FAMILY_NAME}/${PROJECT_SHORT_REL_NAME}" CACHE PATH "Install path prefix" FORCE)
241+
set(CPACK_SET_DESTDIR ON)
242+
set(CPACK_PACKAGING_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
241243

242244
install(TARGETS fea DESTINATION bin COMPONENT Application)
243245
install(TARGETS fea-solver DESTINATION bin COMPONENT Application)
@@ -247,6 +249,19 @@ else()
247249
install(DIRECTORY ${PROJECT_TARGET_NAME}/materials/ DESTINATION materials COMPONENT Application)
248250
install(DIRECTORY ${_qt_deploy_dir}/ DESTINATION . COMPONENT Application)
249251
install(FILES ${CMAKE_BINARY_DIR}/LICENSE.txt DESTINATION doc COMPONENT Application)
252+
install(FILES ${PROJECT_TARGET_NAME}/pixmaps/${PROJECT_PACKAGE_NAME}.svg DESTINATION pixmaps COMPONENT Application)
253+
254+
# ---- DEB/RPM
255+
set(DESKTOP_ABS "${CMAKE_BINARY_DIR}/desktop/${PROJECT_PACKAGE_NAME}.desktop")
256+
set(EXEC_PATH "${CMAKE_INSTALL_PREFIX}/bin/${PROJECT_TARGET_NAME}${DEBUG_EXT}")
257+
258+
configure_file(
259+
${CMAKE_SOURCE_DIR}/range-build-tools/packaging/app.desktop.in
260+
${DESKTOP_ABS}
261+
@ONLY
262+
)
263+
264+
install(FILES ${DESKTOP_ABS} DESTINATION desktop COMPONENT Application)
250265
endif()
251266

252267
# CPack -----------------------------------------------------------------------
@@ -289,7 +304,8 @@ if(WIN32)
289304
elseif(APPLE)
290305
set(CPACK_GENERATOR "DragNDrop")
291306
else()
292-
set(CPACK_GENERATOR "IFW;ZIP;TGZ;STGZ;DEB;RPM")
307+
set(CPACK_GENERATOR "STGZ;DEB;RPM")
308+
#set(CPACK_GENERATOR "IFW;ZIP;TGZ;STGZ;DEB;RPM")
293309
endif()
294310

295311
# DEB
@@ -301,6 +317,43 @@ set(CPACK_RPM_PACKAGE_LICENSE "GPLv3")
301317
set(CPACK_RPM_PACKAGE_GROUP "Applications/Internet")
302318
#set(CPACK_RPM_PACKAGE_REQUIRES "glibc >= 2.27")
303319

320+
# Generate scripts from templates (so you can @ONLY-substitute project vars)
321+
configure_file(${CMAKE_SOURCE_DIR}/range-build-tools/packaging/debian/postinst.in
322+
${CMAKE_BINARY_DIR}/packaging/debian/postinst
323+
@ONLY)
324+
configure_file(${CMAKE_SOURCE_DIR}/range-build-tools/packaging/debian/prerm.in
325+
${CMAKE_BINARY_DIR}/packaging/debian/prerm
326+
@ONLY)
327+
328+
# Debian control scripts MUST be executable
329+
file(CHMOD ${CMAKE_BINARY_DIR}/packaging/debian/postinst PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ WORLD_READ)
330+
file(CHMOD ${CMAKE_BINARY_DIR}/packaging/debian/prerm PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ WORLD_READ)
331+
332+
# Tell CPack-DEB to include them
333+
# (generic for whole package)
334+
set(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA "${CMAKE_BINARY_DIR}/packaging/debian/postinst;${CMAKE_BINARY_DIR}/packaging/debian/prerm")
335+
336+
# If you package by component, use the component-scoped var instead:
337+
# set(CPACK_DEBIAN_APPLICATION_PACKAGE_CONTROL_EXTRA
338+
# "${CMAKE_BINARY_DIR}/packaging/debian/postinst;${CMAKE_BINARY_DIR}/packaging/debian/prerm")
339+
340+
341+
# RPM scripts (don’t need +x; CPack embeds their contents)
342+
configure_file(${CMAKE_SOURCE_DIR}/range-build-tools/packaging/rpm/post.in
343+
${CMAKE_BINARY_DIR}/packaging/rpm/post
344+
@ONLY)
345+
configure_file(${CMAKE_SOURCE_DIR}/range-build-tools/packaging/rpm/preun.in
346+
${CMAKE_BINARY_DIR}/packaging/rpm/preun
347+
@ONLY)
348+
349+
# Tell CPack-RPM where they are
350+
set(CPACK_RPM_POST_INSTALL_SCRIPT_FILE "${CMAKE_BINARY_DIR}/packaging/rpm/post")
351+
set(CPACK_RPM_PRE_UNINSTALL_SCRIPT_FILE "${CMAKE_BINARY_DIR}/packaging/rpm/preun")
352+
353+
# If packaging by component "Application", use component-scoped variants:
354+
# set(CPACK_RPM_APPLICATION_POST_INSTALL_SCRIPT_FILE "${CMAKE_BINARY_DIR}/packaging/rpm/post")
355+
# set(CPACK_RPM_APPLICATION_PRE_UNINSTALL_SCRIPT_FILE "${CMAKE_BINARY_DIR}/packaging/rpm/preun")
356+
304357
# DMG
305358
if(APPLE)
306359
set(DMG_ICON "${CMAKE_SOURCE_DIR}/${PROJECT_TARGET_NAME}/pixmaps/${PROJECT_PACKAGE_NAME}.icns")

src/fea/desktop/Range.desktop

Lines changed: 0 additions & 21 deletions
This file was deleted.

0 commit comments

Comments
 (0)