Skip to content

Commit 3153256

Browse files
fix(installer): split flatpak configuration into a separate cmake file
1 parent f7bb755 commit 3153256

File tree

4 files changed

+55
-35
lines changed

4 files changed

+55
-35
lines changed

CMakeLists.txt

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ option(VPKEDIT_USE_LTO "Build VPKEdit with link-time optimization enabled" OFF)
4141

4242
option(VPKEDIT_BUILD_INSTALLER "Build VPKEdit installer" ON)
4343
if(UNIX)
44-
option(VPKEDIT_BUILD_FLATPAK "Build VPKEdit flatpak (use in tandem with installer option)" OFF)
44+
option(VPKEDIT_BUILD_FLATPAK "Build VPKEdit flatpak" OFF)
4545
set(VPKEDIT_FLATPAK_ID "info.${PROJECT_ORGANIZATION_NAME}.${PROJECT_NAME}" CACHE STRING "The ID of the Flatpak package")
4646
else()
4747
set(VPKEDIT_BUILD_FLATPAK OFF CACHE INTERNAL "" FORCE)
@@ -140,6 +140,11 @@ include("${CMAKE_CURRENT_SOURCE_DIR}/src/cli/_cli.cmake")
140140
# vpkedit
141141
include("${CMAKE_CURRENT_SOURCE_DIR}/src/gui/_gui.cmake")
142142

143+
# Flatpak
144+
if(VPKEDIT_BUILD_FLATPAK)
145+
include("${CMAKE_CURRENT_SOURCE_DIR}/src/installer/_flatpak.cmake")
146+
endif()
147+
143148
# Installer
144149
if(VPKEDIT_BUILD_INSTALLER)
145150
include("${CMAKE_CURRENT_SOURCE_DIR}/src/installer/_installer.cmake")

src/installer/_flatpak.cmake

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
install(TARGETS ${PROJECT_NAME}cli ${PROJECT_NAME}
2+
DESTINATION "bin/")
3+
4+
# Desktop file
5+
configure_file(
6+
"${CMAKE_CURRENT_LIST_DIR}/flatpak/desktop.in"
7+
"${CMAKE_CURRENT_LIST_DIR}/flatpak/generated/${VPKEDIT_FLATPAK_ID}.desktop")
8+
install(FILES "${CMAKE_CURRENT_LIST_DIR}/flatpak/generated/${VPKEDIT_FLATPAK_ID}.desktop"
9+
DESTINATION "share/applications/")
10+
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/branding/logo.png"
11+
DESTINATION "share/pixmaps/"
12+
RENAME "${PROJECT_NAME}.png")
13+
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/branding/logo.png"
14+
DESTINATION "share/icons/hicolor/128x128/apps/"
15+
RENAME "${VPKEDIT_FLATPAK_ID}.png")
16+
17+
# MIME type info
18+
set(VPKEDIT_MIME_TYPE_ICON_ID "${VPKEDIT_FLATPAK_ID}" CACHE INTERNAL "" FORCE)
19+
configure_file(
20+
"${CMAKE_CURRENT_LIST_DIR}/linux/mime-type.xml.in"
21+
"${CMAKE_CURRENT_LIST_DIR}/flatpak/generated/mime-type.xml")
22+
install(FILES "${CMAKE_CURRENT_LIST_DIR}/flatpak/generated/mime-type.xml"
23+
DESTINATION "share/mime/packages/"
24+
RENAME "${VPKEDIT_FLATPAK_ID}.xml")

src/installer/_installer.cmake

Lines changed: 23 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,17 @@
11
# Set up install rules
2-
if(VPKEDIT_BUILD_FLATPAK)
3-
install(TARGETS ${PROJECT_NAME} ${PROJECT_NAME}cli
4-
DESTINATION "${CMAKE_INSTALL_PREFIX}/bin")
5-
else()
6-
install(TARGETS ${PROJECT_NAME}cli
7-
DESTINATION .)
2+
install(TARGETS ${PROJECT_NAME}cli ${PROJECT_NAME}
3+
DESTINATION .)
84

9-
install(TARGETS ${PROJECT_NAME}
10-
DESTINATION .)
5+
install(FILES
6+
"${CMAKE_CURRENT_SOURCE_DIR}/CREDITS.md"
7+
"${CMAKE_CURRENT_SOURCE_DIR}/LICENSE"
8+
"${CMAKE_CURRENT_LIST_DIR}/.nonportable"
9+
DESTINATION .)
1110

12-
install(FILES
13-
"${CMAKE_CURRENT_SOURCE_DIR}/CREDITS.md"
14-
"${CMAKE_CURRENT_SOURCE_DIR}/LICENSE"
15-
"${CMAKE_CURRENT_LIST_DIR}/.nonportable"
16-
DESTINATION .)
17-
18-
foreach(${PROJECT_NAME}_QTBASE_TRANSLATION IN LISTS ${PROJECT_NAME}_QTBASE_TRANSLATIONS)
19-
install(FILES "${${PROJECT_NAME}_QTBASE_TRANSLATION}"
20-
DESTINATION i18n)
21-
endforeach()
22-
endif()
11+
foreach(${PROJECT_NAME}_QTBASE_TRANSLATION IN LISTS ${PROJECT_NAME}_QTBASE_TRANSLATIONS)
12+
install(FILES "${${PROJECT_NAME}_QTBASE_TRANSLATION}"
13+
DESTINATION i18n)
14+
endforeach()
2315

2416
if(WIN32)
2517
install(IMPORTED_RUNTIME_ARTIFACTS
@@ -92,35 +84,34 @@ elseif(UNIX)
9284
"${CMAKE_BINARY_DIR}/wayland-shell-integration"
9385
"${CMAKE_BINARY_DIR}/xcbglintegrations"
9486
DESTINATION .)
95-
elseif(NOT VPKEDIT_BUILD_FLATPAK)
87+
else()
9688
install(IMPORTED_RUNTIME_ARTIFACTS
9789
Qt6::Core Qt6::Gui Qt6::Widgets Qt6::Network Qt6::OpenGL Qt6::OpenGLWidgets Qt6::Svg
9890
RUNTIME DESTINATION .
9991
LIBRARY DESTINATION .)
10092
endif()
10193

102-
set(desktop_file "${CMAKE_CURRENT_LIST_DIR}/linux/generated/${FLATPAK_ID}.desktop")
10394
# Desktop file
10495
configure_file(
10596
"${CMAKE_CURRENT_LIST_DIR}/linux/desktop.in"
106-
"${desktop_file}")
107-
install(FILES "${desktop_file}"
108-
DESTINATION "${CMAKE_INSTALL_PREFIX}/share/applications/")
97+
"${CMAKE_CURRENT_LIST_DIR}/linux/generated/${PROJECT_NAME}.desktop")
98+
install(FILES "${CMAKE_CURRENT_LIST_DIR}/linux/generated/${PROJECT_NAME}.desktop"
99+
DESTINATION "/usr/share/applications/")
109100
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/branding/logo.png"
110-
DESTINATION "${CMAKE_INSTALL_PREFIX}/share/pixmaps/"
101+
DESTINATION "/usr/share/pixmaps/"
111102
RENAME "${PROJECT_NAME}.png")
112103

113104
# MIME type info
105+
set(VPKEDIT_MIME_TYPE_ICON_ID "${PROJECT_NAME}" CACHE INTERNAL "" FORCE)
114106
configure_file(
115107
"${CMAKE_CURRENT_LIST_DIR}/linux/mime-type.xml.in"
116108
"${CMAKE_CURRENT_LIST_DIR}/linux/generated/mime-type.xml")
117109
install(FILES "${CMAKE_CURRENT_LIST_DIR}/linux/generated/mime-type.xml"
118-
DESTINATION "${CMAKE_INSTALL_PREFIX}/share/mime/packages/"
119-
RENAME "${FLATPAK_ID}.xml")
120-
110+
DESTINATION "/usr/share/mime/packages/"
111+
RENAME "${PROJECT_NAME}.xml")
121112
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/branding/logo.png"
122-
DESTINATION "${CMAKE_INSTALL_PREFIX}/share/icons/hicolor/128x128/apps/"
123-
RENAME "${FLATPAK_ID}.png")
113+
DESTINATION "/usr/share/icons/hicolor/128x128/mimetypes/"
114+
RENAME "application-x-vpkedit.png")
124115
endif()
125116

126117
# CPack stuff
@@ -151,7 +142,7 @@ if(WIN32)
151142
file(READ "${CMAKE_CURRENT_LIST_DIR}/win/generated/InstallCommands.nsh" CPACK_NSIS_EXTRA_INSTALL_COMMANDS)
152143
file(READ "${CMAKE_CURRENT_LIST_DIR}/win/generated/UninstallCommands.nsh" CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS)
153144
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/win") # NSIS.template.in, NSIS.InstallOptions.ini.in
154-
elseif(NOT VPKEDIT_BUILD_FLATPAK)
145+
elseif(UNIX)
155146
if(NOT (CPACK_GENERATOR STREQUAL "DEB"))
156147
message(WARNING "CPack generator must be DEB! Setting generator to DEB...")
157148
set(CPACK_GENERATOR "DEB" CACHE INTERNAL "" FORCE)
@@ -171,6 +162,4 @@ elseif(NOT VPKEDIT_BUILD_FLATPAK)
171162
install(FILES "${CMAKE_CURRENT_LIST_DIR}/linux/generated/${PROJECT_NAME}"
172163
DESTINATION "/usr/bin")
173164
endif()
174-
if(NOT VPKEDIT_BUILD_FLATPAK)
175-
include(CPack)
176-
endif()
165+
include(CPack)

src/installer/flatpak/info.craftablescience.vpkedit.Devel.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ modules:
1818
config-opts:
1919
- "-Wno-dev"
2020
- "-DCMAKE_BUILD_TYPE=Release"
21+
- "-DVPKEDIT_USE_LTO=ON"
22+
- "-DVPKEDIT_BUILD_INSTALLER=OFF"
2123
- "-DVPKEDIT_BUILD_FLATPAK=ON"
2224
- "-DVPKEDIT_FLATPAK_ID=info.craftablescience.vpkedit.Devel"
2325
builddir: true

0 commit comments

Comments
 (0)