try to refactor cmake a bit

This commit is contained in:
Martin Rotter 2022-02-08 10:42:50 +01:00
parent 2190b5ef07
commit c4d112db78
3 changed files with 99 additions and 80 deletions

View File

@ -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

View File

@ -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

View File

@ -71,12 +71,16 @@ void FormAbout::loadLicenseAndInformation() {
}
// Set other informative texts.
m_ui.m_lblDesc->setText(tr("<b>%8</b><br>" "<b>Version:</b> %1 (built on %2/%3)<br>" "<b>Revision:</b> %4<br>" "<b>Build date:</b> %5<br>"
"<b>Qt:</b> %6 (compiled against %7)<br>").arg(
m_ui.m_lblDesc->setText(tr("<b>%8</b><br>"
"<b>Version:</b> %1 (built on %2/%3)<br>"
"<b>Revision:</b> %4<br>"
"<b>Build date:</b> %5<br>"
"<b>Qt:</b> %6 (compiled against %7)<br>").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("<body>%5 is a (very) tiny feed reader."