Обновление

This commit is contained in:
2020-04-27 10:25:29 +03:00
parent 94616ba6bc
commit d264077648
34 changed files with 836 additions and 889 deletions

View File

@ -9,8 +9,7 @@ set(TRGT_cpp
# Список заголовочных файлов (используется для установки)
set(TRGT_hpp
${CMAKE_CURRENT_SOURCE_DIR}/backports.hpp
${CMAKE_CURRENT_SOURCE_DIR}/translators.hpp
${CMAKE_CURRENT_SOURCE_DIR}/translators-inl.hpp)
${CMAKE_CURRENT_SOURCE_DIR}/translators.hpp)
set(TRGT_headers ${TRGT_hpp})
# cmake-format: on
@ -48,11 +47,12 @@ if(MYXLIB_BUILD_LIBRARIES)
if(BUILD_SHARED_LIBS)
install(TARGETS ${TRGT}_shared COMPONENT main LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
endif()
else()
install(FILES ${TRGT_cpp} COMPONENT base-dev DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME}/${TRGT})
endif()
generate_pkgconfig(myx-${TRGT} COMPONENT base-dev INSTALL_LIBRARY ${MYXLIB_BUILD_LIBRARIES})
install(FILES ${TRGT_headers} COMPONENT base-dev
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME}/${TRGT})
install(FILES ${TRGT_headers} COMPONENT base-dev DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME}/${TRGT})
# Цель, используемая только для установки заголовочных файлов без компиляции проекта
add_custom_target(${TRGT}-install-headers COMMAND "${CMAKE_COMMAND}" -DCMAKE_INSTALL_COMPONENT=base-dev -P

View File

@ -1,67 +0,0 @@
#ifndef MYX_QT_TRANSLATORS_INL_HPP_
#define MYX_QT_TRANSLATORS_INL_HPP_
#pragma once
#include <myx/base/config.hpp>
#ifndef MYXLIB_HEADER_ONLY
#include <myx/qt/translators.hpp>
#endif
#include <QCoreApplication>
#include <QLibraryInfo>
#include <QLocale>
namespace myx {
namespace qt {
MYXLIB_INLINE void append_translators( QTranslatorsList& translators, const QString& appName )
{
auto* translator = new QTranslator( qApp );
if ( translator->load( QLocale(),
appName, QStringLiteral( "_" ), QStringLiteral( ":/qm" ) ) )
{
translators.append( translator );
}
else
{
translator->deleteLater();
}
translator = new QTranslator( qApp );
if ( translator->load( QLocale::system(),
QStringLiteral( "qt" ), QStringLiteral( "_" ),
QLibraryInfo::location( QLibraryInfo::TranslationsPath ) ) )
{
translators.append( translator );
}
else
{
translator->deleteLater();
}
translator = new QTranslator( qApp );
if ( translator->load( "qtbase_" + QLocale::system().name(),
QLibraryInfo::location( QLibraryInfo::TranslationsPath ) ) )
{
translators.append( translator );
}
else
{
translator->deleteLater();
}
for ( auto* i : qAsConst( translators ) )
{
qApp->installTranslator( i );
}
} // append_translators
} // namespace qt
} // namespace myx
#endif // MYX_QT_TRANSLATORS_INL_HPP_

View File

@ -1,5 +1,67 @@
#ifndef MYXLIB_BUILD_LIBRARIES
#error Define MYXLIB_BUILD_LIBRARIES to compile this file.
#ifndef MYX_QT_TRANSLATORS_CPP_
#define MYX_QT_TRANSLATORS_CPP_
#include <myx/base/config.hpp>
#ifndef MYXLIB_HEADER_ONLY
#include <myx/qt/translators.hpp>
#else
#pragma once
#endif
#include <myx/qt/translators-inl.hpp>
#include <QCoreApplication>
#include <QLibraryInfo>
#include <QLocale>
namespace myx {
namespace qt {
MYXLIB_INLINE void append_translators( QTranslatorsList& translators, const QString& appName )
{
auto* translator = new QTranslator( qApp );
if ( translator->load( QLocale(),
appName, QStringLiteral( "_" ), QStringLiteral( ":/qm" ) ) )
{
translators.append( translator );
}
else
{
translator->deleteLater();
}
translator = new QTranslator( qApp );
if ( translator->load( QLocale::system(),
QStringLiteral( "qt" ), QStringLiteral( "_" ),
QLibraryInfo::location( QLibraryInfo::TranslationsPath ) ) )
{
translators.append( translator );
}
else
{
translator->deleteLater();
}
translator = new QTranslator( qApp );
if ( translator->load( "qtbase_" + QLocale::system().name(),
QLibraryInfo::location( QLibraryInfo::TranslationsPath ) ) )
{
translators.append( translator );
}
else
{
translator->deleteLater();
}
for ( auto* i : qAsConst( translators ) )
{
qApp->installTranslator( i );
}
} // append_translators
} // namespace qt
} // namespace myx
#endif // MYX_QT_TRANSLATORS_CPP_

View File

@ -21,7 +21,7 @@ void append_translators( QTranslatorsList& translators, const QString& appName )
} // namespace myx
#ifdef MYXLIB_HEADER_ONLY
#include "translators-inl.hpp"
#include "translators.cpp"
#endif
#endif // ifndef MYX_QT_TRANSLATORS_HPP_