diff options
-rw-r--r-- | .github/workflows/release.yml | 16 | ||||
-rw-r--r-- | .github/workflows/testing-nightly.yml | 16 | ||||
-rw-r--r-- | CMakeLists.txt | 23 | ||||
-rw-r--r-- | resource/appstream/com.bktus.gpgfrontend.desktop | 2 | ||||
-rw-r--r-- | resource/plist/ExportOptions.plist.in | 6 | ||||
-rw-r--r-- | src/CMakeLists.txt | 57 | ||||
-rw-r--r-- | src/GpgFrontendBuildInstallInfo.h.in | 3 | ||||
-rw-r--r-- | src/core/CMakeLists.txt | 2 | ||||
-rw-r--r-- | src/core/function/GlobalSettingStation.cpp | 13 | ||||
-rw-r--r-- | src/sdk/CMakeLists.txt | 2 | ||||
-rw-r--r-- | src/test/CMakeLists.txt | 2 | ||||
-rw-r--r-- | src/ui/CMakeLists.txt | 2 |
12 files changed, 85 insertions, 59 deletions
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index dcd03237..068a44fc 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -79,11 +79,11 @@ jobs: - name: Codesign Configuration (macOS) run: | CERTIFICATE_PATH=$RUNNER_TEMP/build_certificate.p12 - PP_PATH=$RUNNER_TEMP/${{secrets.GPGFRONTEND_XOCDE_PROVISIONING_PROFILE_UUID}}.provisionprofile + PP_PATH=$RUNNER_TEMP/${{secrets.GPGFRONTEND_XCODE_PROVISIONING_PROFILE_UUID}}.provisionprofile KEYCHAIN_PATH=$RUNNER_TEMP/app-signing.keychain-db echo -n "${{secrets.MACOS_CERTIFICATE}}" | base64 --decode -o $CERTIFICATE_PATH - echo -n "${{secrets.GPGFRONTEND_XOCDE_PROVISIONING_PROFILE_DATA}}" | base64 --decode -o $PP_PATH + echo -n "${{secrets.GPGFRONTEND_XCODE_PROVISIONING_PROFILE_DATA}}" | base64 --decode -o $PP_PATH security create-keychain -p gpgfrontend build.keychain security default-keychain -s build.keychain @@ -234,10 +234,10 @@ jobs: cmake -B ${{github.workspace}}/build -G Xcode \ -DGPGFRONTEND_CONFIGURE_FOR_XCODE_BUILD=On \ -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} \ - -DGPGFRONTEND_XOCDE_CODE_SIGN_IDENTITY="${{secrets.GPGFRONTEND_XOCDE_CODE_SIGN_IDENTITY}}" \ + -DGPGFRONTEND_XCODE_CODE_SIGN_IDENTITY="${{secrets.GPGFRONTEND_XCODE_CODE_SIGN_IDENTITY}}" \ -DGPGFRONTEND_XCODE_TEAM_ID="${{secrets.GPGFRONTEND_XCODE_TEAM_ID}}" \ - -DGPGFRONTEND_XOCDE_APPID="${{secrets.GPGFRONTEND_XOCDE_APPID}}" \ - -DGPGFRONTEND_XOCDE_PROVISIONING_PROFILE_UUID="${{secrets.GPGFRONTEND_XOCDE_PROVISIONING_PROFILE_UUID}}" + -DGPGFRONTEND_XCODE_APPID="${{secrets.GPGFRONTEND_XCODE_APPID}}" \ + -DGPGFRONTEND_XCODE_PROVISIONING_PROFILE_UUID="${{secrets.GPGFRONTEND_XCODE_PROVISIONING_PROFILE_UUID}}" xcodebuild -list -project ${{github.workspace}}/build/GpgFrontend.xcodeproj cd ${{github.workspace}}/build/ xcodebuild -scheme GpgFrontend -configuration "${{env.BUILD_TYPE}}"\ @@ -250,10 +250,10 @@ jobs: - name: Copy Modules into Bundle & Deploy Qt & Code Sign (macOS) run: | - codesign -s "${{secrets.GPGFRONTEND_XOCDE_CODE_SIGN_IDENTITY}}" -f --deep --options=runtime --timestamp ${{github.workspace}}/modules/build/artifacts/modules/* + codesign -s "${{secrets.GPGFRONTEND_XCODE_CODE_SIGN_IDENTITY}}" -f --deep --options=runtime --timestamp ${{github.workspace}}/modules/build/artifacts/modules/* cmake -E copy_directory ${{github.workspace}}/modules/build/artifacts/modules ${{github.workspace}}/build/package/GpgFrontend.app/Contents/Modules macdeployqt ${{github.workspace}}/build/package/GpgFrontend.app -verbose=2 -appstore-compliant -always-overwrite - codesign -s "${{secrets.GPGFRONTEND_XOCDE_CODE_SIGN_IDENTITY}}" -f --deep --options=runtime --timestamp ${{github.workspace}}/build/package/GpgFrontend.app + codesign -s "${{secrets.GPGFRONTEND_XCODE_CODE_SIGN_IDENTITY}}" -f --deep --options=runtime --timestamp ${{github.workspace}}/build/package/GpgFrontend.app if: runner.os == 'macOS' - name: Package & Sign App Bundle (macOS) @@ -263,7 +263,7 @@ jobs: hdiutil create ${{github.workspace}}/build/tmp.dmg -ov \ -volname "GpgFrontend" -fs HFS+ -srcfolder ${{github.workspace}}/build/package/ mkdir ${{github.workspace}}/build/upload-artifact - create-dmg --codesign "${{secrets.GPGFRONTEND_XOCDE_CODE_SIGN_IDENTITY}}" --volicon "${{github.workspace}}/resource/lfs/icns/GpgFrontend.icns" --volname GpgFrontend --app-drop-link 600 185 --window-size 800 400 ${{github.workspace}}/build/upload-artifact/GpgFrontend.dmg ${{github.workspace}}/build/package/GpgFrontend.app + create-dmg --codesign "${{secrets.GPGFRONTEND_XCODE_CODE_SIGN_IDENTITY}}" --volicon "${{github.workspace}}/resource/lfs/icns/GpgFrontend.icns" --volname GpgFrontend --app-drop-link 600 185 --window-size 800 400 ${{github.workspace}}/build/upload-artifact/GpgFrontend.dmg ${{github.workspace}}/build/package/GpgFrontend.app mv ${{github.workspace}}/build/upload-artifact/GpgFrontend.dmg \ ${{github.workspace}}/build/upload-artifact/GpgFrontend-${{matrix.os}}-${{env.sha_short}}-x86_64.dmg mv ${{github.workspace}}/build/GpgFrontend.app.zip \ diff --git a/.github/workflows/testing-nightly.yml b/.github/workflows/testing-nightly.yml index 74882762..9192fe7e 100644 --- a/.github/workflows/testing-nightly.yml +++ b/.github/workflows/testing-nightly.yml @@ -73,11 +73,11 @@ jobs: - name: Codesign Configuration (macOS) run: | CERTIFICATE_PATH=$RUNNER_TEMP/build_certificate.p12 - PP_PATH=$RUNNER_TEMP/${{secrets.GPGFRONTEND_XOCDE_PROVISIONING_PROFILE_UUID}}.provisionprofile + PP_PATH=$RUNNER_TEMP/${{secrets.GPGFRONTEND_XCODE_PROVISIONING_PROFILE_UUID}}.provisionprofile KEYCHAIN_PATH=$RUNNER_TEMP/app-signing.keychain-db echo -n "${{secrets.MACOS_CERTIFICATE}}" | base64 --decode -o $CERTIFICATE_PATH - echo -n "${{secrets.GPGFRONTEND_XOCDE_PROVISIONING_PROFILE_DATA}}" | base64 --decode -o $PP_PATH + echo -n "${{secrets.GPGFRONTEND_XCODE_PROVISIONING_PROFILE_DATA}}" | base64 --decode -o $PP_PATH security create-keychain -p gpgfrontend build.keychain security default-keychain -s build.keychain @@ -227,10 +227,10 @@ jobs: cmake -B ${{github.workspace}}/build -G Xcode \ -DGPGFRONTEND_CONFIGURE_FOR_XCODE_BUILD=On \ -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} \ - -DGPGFRONTEND_XOCDE_CODE_SIGN_IDENTITY="${{secrets.GPGFRONTEND_XOCDE_CODE_SIGN_IDENTITY}}" \ + -DGPGFRONTEND_XCODE_CODE_SIGN_IDENTITY="${{secrets.GPGFRONTEND_XCODE_CODE_SIGN_IDENTITY}}" \ -DGPGFRONTEND_XCODE_TEAM_ID="${{secrets.GPGFRONTEND_XCODE_TEAM_ID}}" \ - -DGPGFRONTEND_XOCDE_APPID="${{secrets.GPGFRONTEND_XOCDE_APPID}}" \ - -DGPGFRONTEND_XOCDE_PROVISIONING_PROFILE_UUID="${{secrets.GPGFRONTEND_XOCDE_PROVISIONING_PROFILE_UUID}}" + -DGPGFRONTEND_XCODE_APPID="${{secrets.GPGFRONTEND_XCODE_APPID}}" \ + -DGPGFRONTEND_XCODE_PROVISIONING_PROFILE_UUID="${{secrets.GPGFRONTEND_XCODE_PROVISIONING_PROFILE_UUID}}" xcodebuild -list -project ${{github.workspace}}/build/GpgFrontend.xcodeproj cd ${{github.workspace}}/build/ xcodebuild -scheme GpgFrontend -configuration "${{env.BUILD_TYPE}}"\ @@ -243,10 +243,10 @@ jobs: - name: Copy Modules into Bundle & Deploy Qt & Code Sign (macOS) run: | - codesign -s "${{secrets.GPGFRONTEND_XOCDE_CODE_SIGN_IDENTITY}}" -f --deep --options=runtime --timestamp ${{github.workspace}}/modules/build/artifacts/modules/* + codesign -s "${{secrets.GPGFRONTEND_XCODE_CODE_SIGN_IDENTITY}}" -f --deep --options=runtime --timestamp ${{github.workspace}}/modules/build/artifacts/modules/* cmake -E copy_directory ${{github.workspace}}/modules/build/artifacts/modules ${{github.workspace}}/build/package/GpgFrontend.app/Contents/Modules macdeployqt ${{github.workspace}}/build/package/GpgFrontend.app -verbose=2 -appstore-compliant -always-overwrite - codesign -s "${{secrets.GPGFRONTEND_XOCDE_CODE_SIGN_IDENTITY}}" -f --deep --options=runtime --timestamp ${{github.workspace}}/build/package/GpgFrontend.app + codesign -s "${{secrets.GPGFRONTEND_XCODE_CODE_SIGN_IDENTITY}}" -f --deep --options=runtime --timestamp ${{github.workspace}}/build/package/GpgFrontend.app if: runner.os == 'macOS' - name: Package & Sign App Bundle (macOS) @@ -256,7 +256,7 @@ jobs: hdiutil create ${{github.workspace}}/build/tmp.dmg -ov \ -volname "GpgFrontend" -fs HFS+ -srcfolder ${{github.workspace}}/build/package/ mkdir ${{github.workspace}}/build/upload-artifact - create-dmg --codesign "${{secrets.GPGFRONTEND_XOCDE_CODE_SIGN_IDENTITY}}" --volicon "${{github.workspace}}/resource/lfs/icns/GpgFrontend.icns" --volname GpgFrontend --app-drop-link 600 185 --window-size 800 400 ${{github.workspace}}/build/upload-artifact/GpgFrontend.dmg ${{github.workspace}}/build/package/GpgFrontend.app + create-dmg --codesign "${{secrets.GPGFRONTEND_XCODE_CODE_SIGN_IDENTITY}}" --volicon "${{github.workspace}}/resource/lfs/icns/GpgFrontend.icns" --volname GpgFrontend --app-drop-link 600 185 --window-size 800 400 ${{github.workspace}}/build/upload-artifact/GpgFrontend.dmg ${{github.workspace}}/build/package/GpgFrontend.app mv ${{github.workspace}}/build/upload-artifact/GpgFrontend.dmg \ ${{github.workspace}}/build/upload-artifact/GpgFrontend-${{matrix.os}}-${{env.sha_short}}.dmg mv ${{github.workspace}}/build/GpgFrontend.app.zip \ diff --git a/CMakeLists.txt b/CMakeLists.txt index ba149318..b78ff062 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -64,10 +64,10 @@ option(GPGFRONTEND_BUILD_MODULES "Build Modules" ON) # xcode build options option(GPGFRONTEND_XCODE_TEAM_ID "GpgFrontend Apple Team ID" "NONE") -option(GPGFRONTEND_XOCDE_CODE_SIGN_IDENTITY "GpgFrontend Signing Certificate" "NONE") -option(GPGFRONTEND_XOCDE_APPID "GpgFrontend Apple AppID" "NONE") -option(GPGFRONTEND_XOCDE_PROVISIONING_PROFILE_UUID "GpgFrontend ProvisioningProfile UUID" "NONE") -option(GPGFRONTEND_XOCDE_ENABLE_SANDBOX "Enable SandBox For Xcode Build" OFF) +option(GPGFRONTEND_XCODE_CODE_SIGN_IDENTITY "GpgFrontend Signing Certificate" "NONE") +option(GPGFRONTEND_XCODE_APPID "GpgFrontend Apple AppID" "NONE") +option(GPGFRONTEND_XCODE_PROVISIONING_PROFILE_UUID "GpgFrontend ProvisioningProfile UUID" "NONE") +option(GPGFRONTEND_XCODE_ENABLE_SANDBOX "Enable SandBox For Xcode Build" OFF) if(GPGFRONTEND_BUILD_APP_IMAGE) set(BUILD_APP_IMAGE 1) @@ -173,7 +173,13 @@ if(GPGFRONTEND_ENABLE_ASAN) set(ENABLE_ASAN 1) endif() -set(AppName GpgFrontend) +if(LINUX) + string(TOLOWER "${CMAKE_PROJECT_NAME}" APP_NAME) +else() + set(APP_NAME "${CMAKE_PROJECT_NAME}") +endif() + +string(TOLOWER "${APP_NAME}" APP_NAME_LOWER) # Get Git Information set(GIT_COMMIT_HASH "") @@ -337,7 +343,6 @@ add_subdirectory(third_party) # source code # Set build information configure_file(${CMAKE_SOURCE_DIR}/src/GpgFrontend.h.in ${CMAKE_SOURCE_DIR}/src/GpgFrontend.h @ONLY) configure_file(${CMAKE_SOURCE_DIR}/src/GpgFrontendBuildInfo.h.in ${CMAKE_SOURCE_DIR}/src/GpgFrontendBuildInfo.h @ONLY) -configure_file(${CMAKE_SOURCE_DIR}/src/GpgFrontendBuildInstallInfo.h.in ${CMAKE_SOURCE_DIR}/src/GpgFrontendBuildInstallInfo.h @ONLY) configure_file(${CMAKE_SOURCE_DIR}/src/sdk/GFSDKBuildInfo.h.in ${CMAKE_SOURCE_DIR}/src/sdk/GFSDKBuildInfo.h @ONLY) if(APPLE) @@ -379,8 +384,8 @@ else() set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/artifacts) endif() -add_subdirectory(src) - if(BUILD_MODULES) add_subdirectory(modules) -endif()
\ No newline at end of file +endif() + +add_subdirectory(src)
\ No newline at end of file diff --git a/resource/appstream/com.bktus.gpgfrontend.desktop b/resource/appstream/com.bktus.gpgfrontend.desktop index 9f2a5a8a..c74c2af1 100644 --- a/resource/appstream/com.bktus.gpgfrontend.desktop +++ b/resource/appstream/com.bktus.gpgfrontend.desktop @@ -1,7 +1,7 @@ [Desktop Entry] Type=Application Name=Gpg Frontend -Exec=GpgFrontend +Exec=gpgfrontend Icon=com.bktus.gpgfrontend Comment=Encrypt and sign data Terminal=false diff --git a/resource/plist/ExportOptions.plist.in b/resource/plist/ExportOptions.plist.in index 48a6567d..6b82f5ec 100644 --- a/resource/plist/ExportOptions.plist.in +++ b/resource/plist/ExportOptions.plist.in @@ -11,11 +11,11 @@ <key>signingStyle</key> <string>automatic</string> <key>signingCertificate</key> - <string>@GPGFRONTEND_XOCDE_CODE_SIGN_IDENTITY@</string> + <string>@GPGFRONTEND_XCODE_CODE_SIGN_IDENTITY@</string> <key>provisioningProfiles</key> <dict> - <key>@GPGFRONTEND_XOCDE_APPID@</key> - <string>@GPGFRONTEND_XOCDE_PROVISIONING_PROFILE_UUID@</string> + <key>@GPGFRONTEND_XCODE_APPID@</key> + <string>@GPGFRONTEND_XCODE_PROVISIONING_PROFILE_UUID@</string> </dict> </dict> </plist>
\ No newline at end of file diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index e4811a08..ee4fbf17 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -68,17 +68,21 @@ set(APP_ICON_RESOURCE_WINDOWS "${CMAKE_SOURCE_DIR}/gpgfrontend.rc") set_property(SOURCE gpgfrontend.rc APPEND PROPERTY OBJECT_DEPENDS ${CMAKE_SOURCE_DIR}/gpgfrontend.ico) set(RESOURCE_FILES ${CMAKE_SOURCE_DIR}/gpgfrontend.qrc ${APP_ICON_RESOURCE_WINDOWS} ${QON_QM_FILES}) +# rpath +set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib") +set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) + if(${CMAKE_BUILD_TYPE} STREQUAL "Release") if(MINGW) - add_executable(${AppName} WIN32 ${APP_SOURCE} ${RESOURCE_FILES}) + add_executable(${APP_NAME} WIN32 ${APP_SOURCE} ${RESOURCE_FILES}) elseif(APPLE AND XCODE_BUILD) # standard app bundle packing - add_executable(${AppName} MACOSX_BUNDLE ${GPGFRONTEND_MACOS_ICON} ${APP_SOURCE} ${RESOURCE_FILES}) + add_executable(${APP_NAME} MACOSX_BUNDLE ${GPGFRONTEND_MACOS_ICON} ${APP_SOURCE} ${RESOURCE_FILES}) - set_target_properties(${AppName} PROPERTIES + set_target_properties(${APP_NAME} PROPERTIES BUNDLE True MACOSX_BUNDLE_GUI_IDENTIFIER com.bktus.gpgfrontend - MACOSX_BUNDLE_BUNDLE_NAME ${AppName} + MACOSX_BUNDLE_BUNDLE_NAME ${APP_NAME} MACOSX_BUNDLE_LONG_VERSION_STRING ${BUILD_VERSION} MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION} MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION} @@ -88,36 +92,36 @@ if(${CMAKE_BUILD_TYPE} STREQUAL "Release") MACOSX_BUNDLE_INFO_PLIST ${CMAKE_SOURCE_DIR}/resource/plist/MacOSXBundleInfo.plist.in) # option for sandbox mode, still under test - if(GPGFRONTEND_XOCDE_ENABLE_SANDBOX) + if(GPGFRONTEND_XCODE_ENABLE_SANDBOX) message(STATUS "Build Application With App Sandbox") set(CUSTOM_ATTRIBUTE_ENABLE_APP_SANDBOX "Yes") - add_custom_command(TARGET ${AppName} POST_BUILD - COMMAND /bin/cp -rf ${CMAKE_SOURCE_DIR}/resource/lfs/macOS/GnuPG ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${CMAKE_BUILD_TYPE}/${AppName}.app/Contents/ + add_custom_command(TARGET ${APP_NAME} POST_BUILD + COMMAND /bin/cp -rf ${CMAKE_SOURCE_DIR}/resource/lfs/macOS/GnuPG ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${CMAKE_BUILD_TYPE}/${APP_NAME}.app/Contents/ WORKING_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} - COMMENT "Copying Buddled GnuPG into App Bundle Resource") - set_target_properties(${AppName} PROPERTIES + COMMENT "Copying Bundle GnuPG into App Bundle Resource") + set_target_properties(${APP_NAME} PROPERTIES XCODE_ATTRIBUTE_CODE_SIGN_ENTITLEMENTS "${CMAKE_SOURCE_DIR}/resource/entitlements/GpgFrontend.entitlements") else() message(STATUS "Build Application Without App Sandbox") set(CUSTOM_ATTRIBUTE_ENABLE_APP_SANDBOX "No") endif() - set_target_properties(${AppName} PROPERTIES + set_target_properties(${APP_NAME} PROPERTIES XCODE_ATTRIBUTE_INSTALL_PATH "$(LOCAL_APPS_DIR)" XCODE_ATTRIBUTE_SKIP_INSTALL "No" XCODE_ATTRIBUTE_OTHER_CODE_SIGN_FLAGS "--deep --entitlements ${CMAKE_SOURCE_DIR}/resource/plist/entitlement.plist" XCODE_ATTRIBUTE_ENABLE_APP_SANDBOX "${CUSTOM_ATTRIBUTE_ENABLE_APP_SANDBOX}" XCODE_ATTRIBUTE_ENABLE_HARDENED_RUNTIME "Yes" - XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "${GPGFRONTEND_XOCDE_CODE_SIGN_IDENTITY}") + XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "${GPGFRONTEND_XCODE_CODE_SIGN_IDENTITY}") else() - add_executable(${AppName} ${APP_SOURCE} ${RESOURCE_FILES}) + add_executable(${APP_NAME} ${APP_SOURCE} ${RESOURCE_FILES}) endif() else() - add_executable(${AppName} ${APP_SOURCE} ${RESOURCE_FILES}) + add_executable(${APP_NAME} ${APP_SOURCE} ${RESOURCE_FILES}) endif() # using c++ standard 17 -target_compile_features(${AppName} PUBLIC cxx_std_17) +target_compile_features(${APP_NAME} PUBLIC cxx_std_17) # Set Resource Output Path if(${CMAKE_BUILD_TYPE} STREQUAL "Release") @@ -316,16 +320,16 @@ if(MINGW) endif() # link options for GpgFrontend -target_link_libraries(${AppName} gpgfrontend_core gpgfrontend_ui gpgfrontend_test) +target_link_libraries(${APP_NAME} gpgfrontend_core gpgfrontend_ui gpgfrontend_test) if(MINGW) message(STATUS "Link Application Library For MINGW") - target_link_libraries(${AppName} crypto) + target_link_libraries(${APP_NAME} crypto) elseif(APPLE) message(STATUS "Link Application Library For macOS") else() message(STATUS "Link Application Library For Linux") - target_link_libraries(${AppName} crypto pthread) + target_link_libraries(${APP_NAME} crypto pthread) endif() # add i18n support @@ -371,14 +375,14 @@ if(GPGFRONTEND_QT5_BUILD) qt5_add_resources(GF_I18N_RESOURCES ${QT_QM_TRANSLATIONS_RESOURCE_FILE}) message(STATUS "GF_I18N_RESOURCES ${GF_I18N_RESOURCES}") - target_sources(${AppName} PRIVATE ${GF_I18N_RESOURCES}) + target_sources(${APP_NAME} PRIVATE ${GF_I18N_RESOURCES}) else() add_custom_target(gftranslations ALL) qt_add_lrelease(gftranslations TS_FILES ${TS_FILES} QM_FILES_OUTPUT_VARIABLE GF_TRANSLATIONS_QM) - qt_add_resources(${AppName} "gftranslations" + qt_add_resources(${APP_NAME} "gftranslations" PREFIX "/i18n" BASE ${CMAKE_CURRENT_BINARY_DIR} FILES ${GF_TRANSLATIONS_QM}) @@ -390,14 +394,18 @@ else() qt_add_lrelease(qttranslations TS_FILES ${QT_TRANSLATIONS_TS} QM_FILES_OUTPUT_VARIABLE QT_TRANSLATIONS_QM) - qt_add_resources(${AppName} "qttranslations" + qt_add_resources(${APP_NAME} "qttranslations" PREFIX "/i18n_qt" BASE ${CMAKE_CURRENT_BINARY_DIR} FILES ${QT_TRANSLATIONS_QM}) endif() include(GNUInstallDirs) -include(CPack) + +# +# Install information read by application +# +configure_file(${CMAKE_SOURCE_DIR}/src/GpgFrontendBuildInstallInfo.h.in ${CMAKE_SOURCE_DIR}/src/GpgFrontendBuildInstallInfo.h @ONLY) # # Install generated libraries and application @@ -408,7 +416,7 @@ set(GPGFRONTEND_INSTALL_LIBRARIES gpgfrontend_test gpgfrontend_module_sdk) -install(TARGETS ${AppName} ${GPGFRONTEND_INSTALL_LIBRARIES} +install(TARGETS ${APP_NAME} ${GPGFRONTEND_INSTALL_LIBRARIES} EXPORT GpgFrontendTargets RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} @@ -461,7 +469,7 @@ endforeach() # Building linux package on linux (DEB or RPM) if(BUILD_APP_FOR_PACKAGE) - set(CPACK_PACKAGE_NAME "GpgFrontend") + set(CPACK_PACKAGE_NAME "${APP_NAME_LOWER}") set(CPACK_PACKAGE_VERSION "${PROJECT_VERSION}") set(CPACK_PACKAGE_RELEASE "1") set(CPACK_PACKAGE_CONTACT "[email protected]") @@ -470,6 +478,7 @@ if(BUILD_APP_FOR_PACKAGE) set(CPACK_PACKAGE_VENDOR "Saturneric") set(CPACK_PACKAGE_HOMEPAGE_URL "https://gpgfrontend.bktus.com") + set(CPACK_PACKAGE_FILE_NAME "${APP_NAME_LOWER}-v${PROJECT_VERSION}") set(CPACK_GENERATOR "RPM;DEB") # @@ -519,4 +528,6 @@ if(BUILD_APP_FOR_PACKAGE) PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE) file(CHMOD "${CMAKE_BINARY_DIR}/rpm-post-uninstall.sh" PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE) + + include(CPack) endif()
\ No newline at end of file diff --git a/src/GpgFrontendBuildInstallInfo.h.in b/src/GpgFrontendBuildInstallInfo.h.in index 3f9c74c9..ebb5cfd4 100644 --- a/src/GpgFrontendBuildInstallInfo.h.in +++ b/src/GpgFrontendBuildInstallInfo.h.in @@ -35,4 +35,5 @@ #define APP_BIN_PATH "@CMAKE_INSTALL_FULL_BINDIR@" #define APP_LOCALSTATE_PATH "@CMAKE_INSTALL_FULL_LOCALSTATEDIR@" #define APP_SYSCONF_PATH "@CMAKE_INSTALL_FULL_SYSCONFDIR@" -#define APP_INFO_PATH "@CMAKE_INSTALL_FULL_INFODIR@"
\ No newline at end of file +#define APP_INFO_PATH "@CMAKE_INSTALL_FULL_INFODIR@" +#define APP_LIB_PATH "@CMAKE_INSTALL_FULL_LIBDIR@"
\ No newline at end of file diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt index 4f3b4318..1aeb33f3 100644 --- a/src/core/CMakeLists.txt +++ b/src/core/CMakeLists.txt @@ -106,7 +106,7 @@ elseif(APPLE) LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_BUILD_TYPE} LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_BUILD_TYPE} XCODE_ATTRIBUTE_SKIP_INSTALL "Yes" - XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "${GPGFRONTEND_XOCDE_CODE_SIGN_IDENTITY}") + XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "${GPGFRONTEND_XCODE_CODE_SIGN_IDENTITY}") endif() else() # linux diff --git a/src/core/function/GlobalSettingStation.cpp b/src/core/function/GlobalSettingStation.cpp index 3c0dda88..20bbfc55 100644 --- a/src/core/function/GlobalSettingStation.cpp +++ b/src/core/function/GlobalSettingStation.cpp @@ -28,6 +28,9 @@ #include "GlobalSettingStation.h" +#include "GpgFrontendBuildInstallInfo.h" + +// #include "core/module/ModuleManager.h" #include "core/utils/FilesystemUtils.h" @@ -157,11 +160,11 @@ class GlobalSettingStation::Impl { #if defined(__linux__) // AppImage if (!qEnvironmentVariable("APPIMAGE").isEmpty()) { - return qEnvironmentVariable("APPDIR") + "/usr/modules"; + return qEnvironmentVariable("APPDIR") + "/usr/lib/modules"; } // Flatpak if (!qEnvironmentVariable("container").isEmpty()) { - return "/app/modules"; + return "/app/lib/gpgfrontend/modules"; } #endif @@ -183,6 +186,12 @@ class GlobalSettingStation::Impl { #endif + // Package or Install + auto module_install_path = QString(APP_LIB_PATH) + "/gpgfrontend/modules"; + if (QFileInfo(module_install_path).exists()) { + return module_install_path; + } + return exec_binary_path + "/modules"; } diff --git a/src/sdk/CMakeLists.txt b/src/sdk/CMakeLists.txt index 1f0baca4..55df8fe7 100644 --- a/src/sdk/CMakeLists.txt +++ b/src/sdk/CMakeLists.txt @@ -48,5 +48,5 @@ if(XCODE_BUILD) LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_BUILD_TYPE} LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_BUILD_TYPE} XCODE_ATTRIBUTE_SKIP_INSTALL "Yes" - XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "${GPGFRONTEND_XOCDE_CODE_SIGN_IDENTITY}") + XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "${GPGFRONTEND_XCODE_CODE_SIGN_IDENTITY}") endif()
\ No newline at end of file diff --git a/src/test/CMakeLists.txt b/src/test/CMakeLists.txt index 63d70d63..52ad9c07 100644 --- a/src/test/CMakeLists.txt +++ b/src/test/CMakeLists.txt @@ -52,7 +52,7 @@ if(XCODE_BUILD) LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_BUILD_TYPE} LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_BUILD_TYPE} XCODE_ATTRIBUTE_SKIP_INSTALL "Yes" - XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "${GPGFRONTEND_XOCDE_CODE_SIGN_IDENTITY}") + XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "${GPGFRONTEND_XCODE_CODE_SIGN_IDENTITY}") endif() add_test(AllTestsInGpgFrontend gpgfrontend_test) diff --git a/src/ui/CMakeLists.txt b/src/ui/CMakeLists.txt index 166dceb7..e8862bd0 100644 --- a/src/ui/CMakeLists.txt +++ b/src/ui/CMakeLists.txt @@ -78,7 +78,7 @@ if(XCODE_BUILD) LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_BUILD_TYPE} LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_BUILD_TYPE} XCODE_ATTRIBUTE_SKIP_INSTALL "Yes" - XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "${GPGFRONTEND_XOCDE_CODE_SIGN_IDENTITY}") + XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "${GPGFRONTEND_XCODE_CODE_SIGN_IDENTITY}") endif() target_compile_features(gpgfrontend_ui PUBLIC cxx_std_17)
\ No newline at end of file |