aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/CMakeLists.txt57
-rw-r--r--src/GpgFrontendBuildInstallInfo.h.in3
-rw-r--r--src/core/CMakeLists.txt2
-rw-r--r--src/core/function/GlobalSettingStation.cpp13
-rw-r--r--src/sdk/CMakeLists.txt2
-rw-r--r--src/test/CMakeLists.txt2
-rw-r--r--src/ui/CMakeLists.txt2
7 files changed, 51 insertions, 30 deletions
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