From f114be410398732c96a8033985abf44ba077c931 Mon Sep 17 00:00:00 2001 From: Saturneric Date: Sat, 26 Jun 2021 06:00:53 +0800 Subject: [PATCH] Update Project Configuration and Srouce code for macOS Release Build --- CMakeLists.txt | 2 ++ include/GpgFrontend.h.in | 11 ++++++++--- src/CMakeLists.txt | 10 ++-------- src/main.cpp | 10 +++++----- src/ui/SettingsDialog.cpp | 2 +- 5 files changed, 18 insertions(+), 17 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index e4d8c954..60c34f0b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -38,9 +38,11 @@ message(STATUS "Define EXECUTABLE_OUTPUT_PATH ${EXECUTABLE_OUTPUT_PATH}") message(STATUS "Define CMAKE_BUILD_TYPE ${CMAKE_BUILD_TYPE}") if(${CMAKE_BUILD_TYPE} STREQUAL "Release") + set(BUILD_FLAG 0) message(STATUS "Build Type RELEASE") set(CMAKE_CXX_FLAGS_RELEASE_INIT "-O2") else() + set(BUILD_FLAG 1) message(STATUS "Build Type DEBUG") set(CMAKE_CXX_FLAGS_DEBUG_INIT "-Wall") endif() diff --git a/include/GpgFrontend.h.in b/include/GpgFrontend.h.in index 14aa3ec3..3c3e72cc 100644 --- a/include/GpgFrontend.h.in +++ b/include/GpgFrontend.h.in @@ -20,11 +20,16 @@ #define MACOS 1 #define LINUX 2 +#define RELEASE 0 +#define DEBUG 1 + #define PROJECT_NAME "@PROJECT_NAME@" #define BUILD_VERSION "@BUILD_VERSION@" #define GIT_VERSION "@GIT_VERSION@" #define OS_PLATFORM @OS_PLATFORM@ +#define BUILD_FLAG @BUILD_FLAG@ + #define VERSION_MAJOR @CMAKE_PROJECT_VERSION_MAJOR@ #define VERSION_MINOR @CMAKE_PROJECT_VERSION_MINOR@ #define VERSION_PATCH @CMAKE_PROJECT_VERSION_PATCH@ @@ -34,11 +39,11 @@ #define GIT_BRANCH_NAME "@GIT_BRANCH_NAME@" #define GIT_COMMIT_HASH "@GIT_COMMIT_HASH@" -#if OS_PLATFORM == MACOS -# define RESOURCE_DIR(appDir) (appDir + "../Resources/") +#if OS_PLATFORM == MACOS && BUILD_FLAG == RELEASE +# define RESOURCE_DIR(appDir) (appDir + "/../Resources/") #else # define RESOURCE_DIR(appDir) (appDir) #endif -#endif //GPGFRONTEND_H_IN \ No newline at end of file +#endif //GPGFRONTEND_H_IN diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 9a640c1f..8eeb9fbb 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -90,14 +90,8 @@ if(${CMAKE_BUILD_TYPE} STREQUAL "Release") COMMAND /bin/mv -n ./Resources ./gpgfrontend.app/Contents/ WORKING_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} COMMENT "Copying Resources INTO App Bundle Resource") - add_custom_command(TARGET gpgfrontend POST_BUILD - COMMAND /bin/rm -rf ./GpgFrontend.app - WORKING_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} - COMMENT "Deleting Old Final App Bundle") - add_custom_command(TARGET gpgfrontend POST_BUILD - COMMAND /bin/mv -n ./gpgfrontend.app ./GpgFrontend.app - WORKING_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} - COMMENT "Rename Build App Bundle to Final App Bundle") + else() + add_executable(gpgfrontend ${BASE_SOURCE} ${RESOURCE_FILES} ${QT5_MOCS}) endif() else() add_executable(gpgfrontend ${BASE_SOURCE} ${RESOURCE_FILES} ${QT5_MOCS}) diff --git a/src/main.cpp b/src/main.cpp index 04d109b7..00ab2738 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -43,7 +43,7 @@ int main(int argc, char *argv[]) { QTextCodec::setCodecForLocale(QTextCodec::codecForName("utf-8")); // css - QFile file(qApp->applicationDirPath() + "/css/default.qss"); + QFile file(RESOURCE_DIR(qApp->applicationDirPath()) + "/css/default.qss"); file.open(QFile::ReadOnly); QString styleSheet = QLatin1String(file.readAll()); qApp->setStyleSheet(styleSheet); @@ -53,8 +53,8 @@ int main(int argc, char *argv[]) { * internationalisation. loop to restart mainwindow * with changed translation when settings change. */ - if(!QDir(appPath + "/conf").exists()) { - QDir().mkdir(appPath + "/conf"); + if(!QDir(RESOURCE_DIR(appPath) + "/conf").exists()) { + QDir().mkdir(RESOURCE_DIR(appPath) + "/conf"); } QSettings::setDefaultFormat(QSettings::IniFormat); QSettings settings(RESOURCE_DIR(appPath) + "/conf/gpgfrontend.ini", QSettings::IniFormat); @@ -72,12 +72,12 @@ int main(int argc, char *argv[]) { lang = QLocale::system().name(); } qDebug() << "Language set" << lang; - translator.load( appPath + "/ts/" + "gpgfrontend_" + lang); + translator.load(RESOURCE_DIR(appPath) + "/ts/" + "gpgfrontend_" + lang); qDebug() << "Translator" << translator.filePath(); QApplication::installTranslator(&translator); // set qt translations - translator2.load("./ts/qt_" + lang, appPath); + translator2.load(RESOURCE_DIR(appPath) + "/ts/qt_" + lang); qDebug() << "Translator2" << translator2.filePath(); QApplication::installTranslator(&translator2); diff --git a/src/ui/SettingsDialog.cpp b/src/ui/SettingsDialog.cpp index 8c85a208..25413a75 100755 --- a/src/ui/SettingsDialog.cpp +++ b/src/ui/SettingsDialog.cpp @@ -97,7 +97,7 @@ QHash SettingsDialog::listLanguages() { languages.insert("", tr("System Default")); QString appPath = qApp->applicationDirPath(); - QDir qmDir = QDir(appPath + "/ts/"); + QDir qmDir = QDir(RESOURCE_DIR(appPath) + "/ts/"); QStringList fileNames = qmDir.entryList(QStringList("gpgfrontend_*.qm"));