aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsaturneric <[email protected]>2024-11-22 14:27:58 +0000
committersaturneric <[email protected]>2024-11-22 14:28:04 +0000
commit396f70b0686109a7ab245af8f8e4d234f4f18203 (patch)
tree8c0fbca0594a68ce77bf5169436b6b0d347d6e38
parentfix: solve devops problems (diff)
downloadGpgFrontend-396f70b0686109a7ab245af8f8e4d234f4f18203.tar.gz
GpgFrontend-396f70b0686109a7ab245af8f8e4d234f4f18203.zip
feat: add build option GPGFRONTEND_BUILD_APP_IMAGE
-rw-r--r--.gitea/workflows/develop-qt5.yml2
-rw-r--r--.gitea/workflows/develop-qt6.yml2
-rw-r--r--CMakeLists.txt5
-rw-r--r--src/CMakeLists.txt35
4 files changed, 26 insertions, 18 deletions
diff --git a/.gitea/workflows/develop-qt5.yml b/.gitea/workflows/develop-qt5.yml
index 4c8358ee..e4a95ca8 100644
--- a/.gitea/workflows/develop-qt5.yml
+++ b/.gitea/workflows/develop-qt5.yml
@@ -77,7 +77,7 @@ jobs:
- name: Build GpgFrontend
run: |
- cmake -B ${{github.workspace}}/build -G Ninja -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DGPGFRONTEND_QT5_BUILD=ON
+ cmake -B ${{github.workspace}}/build -G Ninja -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DGPGFRONTEND_BUILD_APP_IMAGE=On -DGPGFRONTEND_QT5_BUILD=ON
cmake --build ${{github.workspace}}/build --config {{$env.BUILD_TYPE}} -- -v
- name: Package App Image
diff --git a/.gitea/workflows/develop-qt6.yml b/.gitea/workflows/develop-qt6.yml
index 2c575c48..7666b21a 100644
--- a/.gitea/workflows/develop-qt6.yml
+++ b/.gitea/workflows/develop-qt6.yml
@@ -93,7 +93,7 @@ jobs:
- name: Build GpgFrontend
run: |
- cmake -B ${{github.workspace}}/build -G Ninja -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DDGPGFRONTEND_BUILD_TYPE_ONLY_APPLICATION=ON
+ cmake -B ${{github.workspace}}/build -G Ninja -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DGPGFRONTEND_BUILD_APP_IMAGE=On
cmake --build ${{github.workspace}}/build --config {{$env.BUILD_TYPE}} -- -v
# - name: Setup tmate session
diff --git a/CMakeLists.txt b/CMakeLists.txt
index f8d49a8b..d715eb77 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -74,6 +74,7 @@ option(GPGFRONTEND_BUILD_TYPE_ONLY_APPLICATION "Generate a usable SDK" OFF)
option(GPGFRONTEND_QT5_BUILD "Swith to Qt5 building mode" OFF)
option(GPGFRONTEND_GENERATE_LINUX_INSTALL_SOFTWARE "Generate an installable version" OFF)
option(GPGFRONTEND_ENABLE_ASAN "Enable ASAN" OFF)
+option(GPGFRONTEND_BUILD_APP_IMAGE "Build AppImage" OFF)
# xcode options
option(GPGFRONTEND_XCODE_TEAM_ID "GpgFrontend Apple Team ID" "NONE")
@@ -162,6 +163,10 @@ if(GPGFRONTEND_BUILD_TYPE_ONLY_APPLICATION)
set(STABLE_BUILD_ONLY_APPLICATION 1)
endif()
+if(GPGFRONTEND_BUILD_APP_IMAGE)
+ set(BUILD_APP_IMAGE 1)
+endif()
+
# C++
# options for ccache
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 51239a4a..cfafd107 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -111,12 +111,7 @@ if(BUILD_APPLICATION)
if(APPLE)
set(RESOURCE_OUTPUT_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/Resources)
elseif(LINUX AND NOT LINUX_INSTALL_SOFTWARE)
- file(MAKE_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/AppDir)
- file(COPY ${CMAKE_SOURCE_DIR}/resource/lfs/hicolor DESTINATION ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/AppDir/usr/share/icons)
- file(COPY ${CMAKE_SOURCE_DIR}/resource/appstream/com.bktus.gpgfrontend.metainfo.xml DESTINATION ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/AppDir/usr/share/metainfo FOLLOW_SYMLINK_CHAIN)
- file(COPY ${CMAKE_SOURCE_DIR}/resource/appstream/com.bktus.gpgfrontend.desktop DESTINATION ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/AppDir/usr/share/applications FOLLOW_SYMLINK_CHAIN)
- file(COPY ${CMAKE_SOURCE_DIR}/resource/lfs/pixmaps/com.bktus.gpgfrontend.png DESTINATION ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/AppDir FOLLOW_SYMLINK_CHAIN)
- set(RESOURCE_OUTPUT_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/AppDir/usr/share)
+ set(BUILD_APP_IMAGE 1)
else()
set(RESOURCE_OUTPUT_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
endif()
@@ -131,8 +126,6 @@ if(BUILD_APPLICATION)
set(GPGFRONTEND_MACOS_ICON ${CMAKE_SOURCE_DIR}/gpgfrontend.icns)
set_source_files_properties(${GPGFRONTEND_MACOS_ICON} PROPERTIES
MACOSX_PACKAGE_LOCATION "Resources")
- elseif(LINUX AND NOT LINUX_INSTALL_SOFTWARE)
- file(REMOVE ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/AppDir/usr/bin/${AppName})
endif()
endif()
endif()
@@ -347,18 +340,28 @@ if(BUILD_APPLICATION)
add_custom_target(resources ALL DEPENDS ${RESOURCE_FILES})
endif()
+if(BUILD_APP_IMAGE)
+ file(MAKE_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/AppDir)
+ file(COPY ${CMAKE_SOURCE_DIR}/resource/lfs/hicolor DESTINATION ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/AppDir/usr/share/icons)
+ file(COPY ${CMAKE_SOURCE_DIR}/resource/appstream/com.bktus.gpgfrontend.metainfo.xml DESTINATION ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/AppDir/usr/share/metainfo FOLLOW_SYMLINK_CHAIN)
+ file(COPY ${CMAKE_SOURCE_DIR}/resource/appstream/com.bktus.gpgfrontend.desktop DESTINATION ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/AppDir/usr/share/applications FOLLOW_SYMLINK_CHAIN)
+ file(COPY ${CMAKE_SOURCE_DIR}/resource/lfs/pixmaps/com.bktus.gpgfrontend.png DESTINATION ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/AppDir FOLLOW_SYMLINK_CHAIN)
+ set(RESOURCE_OUTPUT_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/AppDir/usr/share)
+
+ file(REMOVE ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/AppDir/usr/bin/${AppName})
+ add_executable(${AppName} ${BASE_SOURCE} ${RESOURCE_FILES})
+
+ add_custom_command(TARGET ${AppName} POST_BUILD
+ COMMAND ${CMAKE_COMMAND} -E make_directory "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/AppDir/usr/bin"
+ COMMAND ${CMAKE_COMMAND} -E rename "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${AppName}" "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/AppDir/usr/bin/${AppName}"
+ COMMENT "Copying Binary into App Image"
+ )
+endif()
+
if(BUILD_APPLICATION)
if(${CMAKE_BUILD_TYPE} STREQUAL "Release")
if(MINGW)
add_executable(${AppName} WIN32 ${BASE_SOURCE} ${RESOURCE_FILES})
- elseif(LINUX AND NOT LINUX_INSTALL_SOFTWARE)
- add_executable(${AppName} ${BASE_SOURCE} ${RESOURCE_FILES})
-
- add_custom_command(TARGET ${AppName} POST_BUILD
- COMMAND ${CMAKE_COMMAND} -E make_directory "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/AppDir/usr/bin"
- COMMAND ${CMAKE_COMMAND} -E rename "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${AppName}" "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/AppDir/usr/bin/${AppName}"
- COMMENT "Copying Binary into App Image"
- )
# app bundle packing using xcode
elseif(APPLE AND XCODE_BUILD)