From c4d112db782c6c1d8c04ac4266ba8d7273c8a6ec Mon Sep 17 00:00:00 2001 From: Martin Rotter Date: Tue, 8 Feb 2022 10:42:50 +0100 Subject: [PATCH] try to refactor cmake a bit --- CMakeLists.txt | 80 ++------------------- src/librssguard/CMakeLists.txt | 87 ++++++++++++++++++++++- src/librssguard/gui/dialogs/formabout.cpp | 12 ++-- 3 files changed, 99 insertions(+), 80 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 8e4124a0f..5f8845ccc 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -62,8 +62,7 @@ set(APP_VERSION "4.2.0") set(APP_URL "https://github.com/martinrotter/rssguard") set(APP_URL_DOCUMENTATION "https://github.com/martinrotter/rssguard/blob/master/resources/docs/Documentation.md") -set(APP_URL_ISSUES "https://github.com/martinrotter/rssguard/issues") -set(APP_URL_ISSUES_NEW "https://github.com/martinrotter/rssguard/issues/new") +set(APP_URL_ISSUES_NEW "https://github.com/martinrotter/rssguard/issues/new/choose") set(TYPEINFO "????") @@ -109,15 +108,6 @@ option(UPDATE_TRANSLATIONS "Call lupdate to update translation files from source option(FORCE_COLORED_OUTPUT "Always produce ANSI-colored output (GCC/Clang only)" OFF) option(REVISION_FROM_GIT "Get revision using `git rev-parse`" ON) -set(FEEDLY_CLIENT_ID "" CACHE STRING "Feedly client ID") -set(FEEDLY_CLIENT_SECRET "" CACHE STRING "Feedly client secret") - -set(GMAIL_CLIENT_ID "" CACHE STRING "GMail client ID") -set(GMAIL_CLIENT_SECRET "" CACHE STRING "GMail client secret") - -set(INOREADER_CLIENT_ID "" CACHE STRING "Inoreader client ID") -set(INOREADER_CLIENT_SECRET "" CACHE STRING "Inoreader client secret") - # Import Qt libraries. set(QT_COMPONENTS Core @@ -174,73 +164,13 @@ else() endif() endif() -# Process oauth service secrets. -if(NOT FEEDLY_CLIENT_ID STREQUAL "" AND NOT FEEDLY_CLIENT_SECRET STREQUAL "") - add_compile_definitions( - FEEDLY_OFFICIAL_SUPPORT - FEEDLY_CLIENT_ID="${FEEDLY_CLIENT_ID}" - FEEDLY_CLIENT_SECRET="${FEEDLY_CLIENT_SECRET}" - ) -else() - message(STATUS "Feedly client ID/secret variables are not set. Disabling official support.") -endif() - -if(NOT GMAIL_CLIENT_ID STREQUAL "" AND NOT GMAIL_CLIENT_SECRET STREQUAL "") - add_compile_definitions( - GMAIL_OFFICIAL_SUPPORT - GMAIL_CLIENT_ID="${GMAIL_CLIENT_ID}" - GMAIL_CLIENT_SECRET="${GMAIL_CLIENT_SECRET}" - ) -else() - message(STATUS "GMail client ID/secret variables are not set. Disabling official support.") -endif() - -if(NOT INOREADER_CLIENT_ID STREQUAL "" AND NOT INOREADER_CLIENT_SECRET STREQUAL "") - add_compile_definitions( - INOREADER_OFFICIAL_SUPPORT - INOREADER_CLIENT_ID="${INOREADER_CLIENT_ID}" - INOREADER_CLIENT_SECRET="${INOREADER_CLIENT_SECRET}" - ) -else() - message(STATUS "Inoreader client ID/secret variables are not set. Disabling official support.") -endif() - -# Load git commit hash. -if(REVISION_FROM_GIT AND EXISTS "${CMAKE_SOURCE_DIR}/.git") - execute_process(COMMAND "git" "rev-parse" "--short" "HEAD" - WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}" - OUTPUT_VARIABLE APP_REVISION - ERROR_QUIET - OUTPUT_STRIP_TRAILING_WHITESPACE - ) - - message(STATUS "Detected git revision: '${APP_REVISION}'.") -else() - set(APP_REVISION "") -endif() - -if(NOT USE_WEBENGINE) - set(APP_REVISION "${APP_REVISION}-nowebengine") -endif() - -# Pass needed defines. +# Pass common defines. add_compile_definitions( - APP_AUTHOR="${APP_AUTHOR}" - APP_DONATE_URL="${APP_DONATE_URL}" - APP_EMAIL="${APP_EMAIL}" - APP_LONG_NAME="${APP_NAME} ${CMAKE_PROJECT_VERSION}" - APP_LOW_H_NAME=".${CMAKE_PROJECT_NAME}" - APP_LOW_NAME="${CMAKE_PROJECT_NAME}" APP_NAME="${APP_NAME}" - APP_REVISION="${APP_REVISION}" - APP_SYSTEM_NAME="${CMAKE_SYSTEM_NAME}" - APP_SYSTEM_VERSION="${CMAKE_SYSTEM_PROCESSOR}" - APP_URL="${APP_URL}" - APP_URL_DOCUMENTATION="${APP_URL_DOCUMENTATION}" - APP_URL_ISSUES="${APP_URL_ISSUES}" - APP_URL_ISSUES_NEW="${APP_URL_ISSUES_NEW}" - APP_USERAGENT="${APP_NAME}/${CMAKE_PROJECT_VERSION}" APP_VERSION="${CMAKE_PROJECT_VERSION}" + APP_URL="${APP_URL}" + APP_LONG_NAME="${APP_NAME} ${CMAKE_PROJECT_VERSION}" + APP_LOW_NAME="${CMAKE_PROJECT_NAME}" QT_USE_QSTRINGBUILDER QT_USE_FAST_CONCATENATION diff --git a/src/librssguard/CMakeLists.txt b/src/librssguard/CMakeLists.txt index a7cb0ae57..77a3aea2f 100644 --- a/src/librssguard/CMakeLists.txt +++ b/src/librssguard/CMakeLists.txt @@ -504,6 +504,76 @@ qt_wrap_ui(SOURCES ${UI_FILES}) qt_add_resources(SOURCES ${CMAKE_SOURCE_DIR}/resources/sql.qrc) qt_add_resources(SOURCES ${CMAKE_SOURCE_DIR}/resources/rssguard.qrc) +# Process OAuth service secrets. +set(FEEDLY_CLIENT_ID "" CACHE STRING "Feedly client ID") +set(FEEDLY_CLIENT_SECRET "" CACHE STRING "Feedly client secret") + +set(GMAIL_CLIENT_ID "" CACHE STRING "GMail client ID") +set(GMAIL_CLIENT_SECRET "" CACHE STRING "GMail client secret") + +set(INOREADER_CLIENT_ID "" CACHE STRING "Inoreader client ID") +set(INOREADER_CLIENT_SECRET "" CACHE STRING "Inoreader client secret") + +if(NOT FEEDLY_CLIENT_ID STREQUAL "" AND NOT FEEDLY_CLIENT_SECRET STREQUAL "") + target_compile_definitions(rssguard + PRIVATE + + FEEDLY_OFFICIAL_SUPPORT + FEEDLY_CLIENT_ID="${FEEDLY_CLIENT_ID}" + FEEDLY_CLIENT_SECRET="${FEEDLY_CLIENT_SECRET}" + ) + + message(STATUS "Enabling official Feedly support.") +else() + message(STATUS "Feedly client ID/secret variables are not set. Disabling official support.") +endif() + +if(NOT GMAIL_CLIENT_ID STREQUAL "" AND NOT GMAIL_CLIENT_SECRET STREQUAL "") + target_compile_definitions(rssguard + PRIVATE + + GMAIL_OFFICIAL_SUPPORT + GMAIL_CLIENT_ID="${GMAIL_CLIENT_ID}" + GMAIL_CLIENT_SECRET="${GMAIL_CLIENT_SECRET}" + ) + + message(STATUS "Enabling official Gmail support.") +else() + message(STATUS "Gmail client ID/secret variables are not set. Disabling official support.") +endif() + +if(NOT INOREADER_CLIENT_ID STREQUAL "" AND NOT INOREADER_CLIENT_SECRET STREQUAL "") + target_compile_definitions(rssguard + PRIVATE + + INOREADER_OFFICIAL_SUPPORT + INOREADER_CLIENT_ID="${INOREADER_CLIENT_ID}" + INOREADER_CLIENT_SECRET="${INOREADER_CLIENT_SECRET}" + ) + + message(STATUS "Enabling official Inoreader support.") +else() + message(STATUS "Inoreader client ID/secret variables are not set. Disabling official support.") +endif() + +# Load git commit hash. +if(REVISION_FROM_GIT AND EXISTS "${CMAKE_SOURCE_DIR}/.git") + execute_process(COMMAND "git" "rev-parse" "--short" "HEAD" + WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}" + OUTPUT_VARIABLE APP_REVISION + ERROR_QUIET + OUTPUT_STRIP_TRAILING_WHITESPACE + ) + + message(STATUS "Detected git revision: '${APP_REVISION}'.") +else() + set(APP_REVISION "") +endif() + +if(NOT USE_WEBENGINE) + set(APP_REVISION "${APP_REVISION}-nowebengine") +endif() + # Bundle icons on some platforms which do not provide system-wide icon themes. if(APPLE OR WIN32 OR OS2) qt_add_resources(SOURCES ${CMAKE_SOURCE_DIR}/resources/icons.qrc) @@ -517,7 +587,21 @@ endif() add_library(rssguard SHARED ${SOURCES} ${QM_FILES}) -target_compile_definitions(rssguard PRIVATE RSSGUARD_DLLSPEC=Q_DECL_EXPORT) +target_compile_definitions(rssguard + PRIVATE + RSSGUARD_DLLSPEC=Q_DECL_EXPORT + + APP_AUTHOR="${APP_AUTHOR}" + APP_DONATE_URL="${APP_DONATE_URL}" + APP_EMAIL="${APP_EMAIL}" + APP_LOW_H_NAME=".${CMAKE_PROJECT_NAME}" + APP_REVISION="${APP_REVISION}" + APP_SYSTEM_NAME="${CMAKE_SYSTEM_NAME}" + APP_SYSTEM_VERSION="${CMAKE_SYSTEM_PROCESSOR}" + + APP_URL_DOCUMENTATION="${APP_URL_DOCUMENTATION}" + APP_URL_ISSUES_NEW="${APP_URL_ISSUES_NEW}" + APP_USERAGENT="${APP_NAME}/${CMAKE_PROJECT_VERSION}") target_include_directories(rssguard PUBLIC @@ -526,6 +610,7 @@ target_include_directories(rssguard ${CMAKE_CURRENT_SOURCE_DIR}/gui/dialogs ${CMAKE_CURRENT_SOURCE_DIR}/gui/reusable ${CMAKE_CURRENT_SOURCE_DIR}/dynamic-shortcuts + PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/gui/notifications ${CMAKE_CURRENT_SOURCE_DIR}/gui/toolbars diff --git a/src/librssguard/gui/dialogs/formabout.cpp b/src/librssguard/gui/dialogs/formabout.cpp index 632bf1a31..c27ac73a7 100644 --- a/src/librssguard/gui/dialogs/formabout.cpp +++ b/src/librssguard/gui/dialogs/formabout.cpp @@ -71,12 +71,16 @@ void FormAbout::loadLicenseAndInformation() { } // Set other informative texts. - m_ui.m_lblDesc->setText(tr("%8
" "Version: %1 (built on %2/%3)
" "Revision: %4
" "Build date: %5
" - "Qt: %6 (compiled against %7)
").arg( + m_ui.m_lblDesc->setText(tr("%8
" + "Version: %1 (built on %2/%3)
" + "Revision: %4
" + "Build date: %5
" + "Qt: %6 (compiled against %7)
").arg( qApp->applicationVersion(), QSL(APP_SYSTEM_NAME), QSL(APP_SYSTEM_VERSION), QSL(APP_REVISION), - QLocale().toString(TextFactory::parseDateTime(QSL("%1 %2").arg(__DATE__, __TIME__)), - QLocale::FormatType::ShortFormat), + qApp->localization()->loadedLocale().toString(TextFactory::parseDateTime(QSL("%1 %2").arg(__DATE__, + __TIME__)), + QLocale::FormatType::ShortFormat), qVersion(), QSL(QT_VERSION_STR), QSL(APP_NAME))); m_ui.m_txtInfo->setText(tr("%5 is a (very) tiny feed reader."