Support installing multiple configurations within the same prefix

This commit is contained in:
Martchus 2019-04-26 17:37:20 +02:00
parent 76f70abdf8
commit 850101dce6
3 changed files with 11 additions and 9 deletions

View File

@ -171,7 +171,8 @@ else ()
endif ()
# find c++utilities
find_package(c++utilities 5.0.0 REQUIRED)
set(CONFIGURATION_PACKAGE_SUFFIX "" CACHE STRING "sets the suffix for find_package() calls to packages configured via c++utilities")
find_package(c++utilities${CONFIGURATION_PACKAGE_SUFFIX} 5.0.0 REQUIRED)
use_cpp_utilities()
# include modules to apply configuration

View File

@ -225,7 +225,7 @@ if (ENABLE_QT_TRANSLATIONS AND TS_FILES)
# add install target for translations
if (NOT META_NO_INSTALL_TARGETS AND ENABLE_INSTALL_TARGETS)
install(FILES ${QM_FILES} DESTINATION share/${META_PROJECT_NAME}/translations COMPONENT localization)
install(FILES ${QM_FILES} DESTINATION "${META_DATA_DIR}/translations" COMPONENT localization)
if (NOT TARGET install-localization)
set(LOCALIZATION_TARGET "install-localization")
add_custom_target(${LOCALIZATION_TARGET}
@ -419,7 +419,7 @@ foreach (RES_FILE ${RES_FILES})
endforeach ()
# export Qt resources required by static libraries the static library depends on
if (META_PROJECT_IS_LIBRARY AND NOT BUILD_SHARED_LIBS AND STATIC_LIBRARIES_QT_RESOURCES)
if (STATIC_LIBRARIES_QT_RESOURCES)
list(REMOVE_DUPLICATES STATIC_LIBRARIES_QT_RESOURCES)
list(APPEND QT_RESOURCES ${STATIC_LIBRARIES_QT_RESOURCES})
endif ()

View File

@ -113,7 +113,7 @@ void loadQtTranslationFile(std::initializer_list<QString> repositoryNames)
void loadQtTranslationFile(initializer_list<QString> repositoryNames, const QString &localeName)
{
for (const QString &repoName : repositoryNames) {
QTranslator *qtTranslator = new QTranslator;
QTranslator *const qtTranslator = new QTranslator;
const QString fileName(repoName % QChar('_') % localeName);
if (!additionalTranslationFilePath().isEmpty() && qtTranslator->load(fileName, additionalTranslationFilePath())) {
QCoreApplication::installTranslator(qtTranslator);
@ -156,8 +156,9 @@ void loadApplicationTranslationFile(const QString &applicationName)
// load English translation files as fallback
loadApplicationTranslationFile(applicationName, QStringLiteral("en_US"));
// load translation files for current locale
if (QLocale().name() != QLatin1String("en_US")) {
loadApplicationTranslationFile(applicationName, QLocale().name());
const auto defaultLocale(QLocale().name());
if (defaultLocale != QLatin1String("en_US")) {
loadApplicationTranslationFile(applicationName, defaultLocale);
}
}
@ -180,7 +181,7 @@ void loadApplicationTranslationFile(const QString &applicationName)
*/
void loadApplicationTranslationFile(const QString &applicationName, const QString &localeName)
{
QTranslator *appTranslator = new QTranslator;
QTranslator *const appTranslator = new QTranslator;
const QString fileName(applicationName % QChar('_') % localeName);
if (!additionalTranslationFilePath().isEmpty() && appTranslator->load(fileName, additionalTranslationFilePath())) {
QCoreApplication::installTranslator(appTranslator);
@ -188,9 +189,9 @@ void loadApplicationTranslationFile(const QString &applicationName, const QStrin
QCoreApplication::installTranslator(appTranslator);
} else if (appTranslator->load(fileName, QStringLiteral("./translations"))) {
QCoreApplication::installTranslator(appTranslator);
} else if (appTranslator->load(fileName, QStringLiteral(APP_INSTALL_PREFIX "/share/") % applicationName % QStringLiteral("/translations"))) {
} else if (appTranslator->load(fileName, QStringLiteral(APP_INSTALL_PREFIX "/" APP_DATA_DIR) % applicationName % QStringLiteral("/translations"))) {
QCoreApplication::installTranslator(appTranslator);
} else if (appTranslator->load(fileName, QStringLiteral("../share/") % applicationName % QStringLiteral("/translations"))) {
} else if (appTranslator->load(fileName, QStringLiteral("../" APP_DATA_DIR "/") % applicationName % QStringLiteral("/translations"))) {
QCoreApplication::installTranslator(appTranslator);
} else if (appTranslator->load(fileName, QStringLiteral(":/translations"))) {
QCoreApplication::installTranslator(appTranslator);