Compare commits

..

No commits in common. "0fe25c57a8fa7f065fff07427e0cbb461b74e8a3" and "7a60abf94d6c1d99267526eed57f8f49e8336b80" have entirely different histories.

5 changed files with 29 additions and 65 deletions

3
.gitmodules vendored
View File

@ -13,6 +13,3 @@
[submodule "cmake/etc/uncrustify"]
path = cmake/etc/uncrustify
url = https://git.246060.ru/f1x1t/uncrustify-config.git
[submodule "thirdparty/myxlib"]
path = thirdparty/myxlib
url = https://git.246060.ru/f1x1t/myxlib.git

View File

@ -5,7 +5,7 @@ cmake_minimum_required(VERSION 3.3)
cmake_policy(VERSION 3.0.2..3.7)
# Название и версия проекта и используемые языки программирования
project(cmlib-example-app-qt5-con VERSION 0.2.0 LANGUAGES C CXX)
project(cmlib-example-app VERSION 0.2.0 LANGUAGES C CXX)
# В каталоге cmake/cmlib находятся файлы с библиотечными функциями
if(IS_DIRECTORY ${CMAKE_SOURCE_DIR}/cmake/cmlib)
@ -23,27 +23,9 @@ set(Boost_USE_MULTITHREADED OFF)
set(Boost_USE_STATIC_RUNTIME ON)
find_package(Boost 1.55.0 REQUIRED COMPONENTS headers)
# Qt5
find_package(Qt5 COMPONENTS Core REQUIRED)
# Автоматически генерируемый заголовочный файл
cmlib_config_hpp_generate()
# Подключение внешних проектов
include(ExternalProject)
ExternalProject_Add(
myxlib
SOURCE_DIR ${CMAKE_SOURCE_DIR}/thirdparty/myxlib
INSTALL_DIR ${CMAKE_BINARY_DIR}
DOWNLOAD_COMMAND ""
CONFIGURE_COMMAND
${CMAKE_COMMAND} -"G${CMAKE_GENERATOR}" -DCMAKE_BUILD_TYPE=Debug
-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
-DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR} <SOURCE_DIR>
BUILD_COMMAND true)
# Приложение
add_subdirectory(src/cmlib-example)

View File

@ -2,40 +2,15 @@
set(TRGT cmlib-example)
# Список файлов исходных текстов
set(TRGT_cpp ${CMAKE_CURRENT_SOURCE_DIR}/main.cpp)
# Правила для создания файла ресурсов с вложенными файлами переводов
qt5_translation(TRGT_qrc OUTPUT_DIR ${CMAKE_SOURCE_DIR}/l10n BASE_NAME ${TRGT} LANGUAGES ru_RU)
# Путь поиска библиотек созданных при компиляции проекта,
# включая библиотеки из подключённых внешних проектов, например MyXLib
# Функция link_directories обязательно должна находиться перед
# функцией add_executable, иначе компоновка не может быть выполнена
link_directories(${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR})
set(TRGT_sources ${CMAKE_CURRENT_SOURCE_DIR}/main.cpp)
# Функция для создания цели, результатом которой будет сборка приложения
add_executable(${TRGT} ${TRGT_cpp} ${TRGT_qrc})
add_executable(${TRGT} ${TRGT_sources})
common_target_properties(${TRGT})
# Qt5: подключение заголовочных файлов
target_include_directories(${TRGT} SYSTEM PUBLIC ${Qt5Core_INCLUDE_DIRS})
# Qt5: подключение библиотек
target_link_libraries(${TRGT} Qt5::Core)
# Добавление к пути поиска заголовочных файлов
target_include_directories(${TRGT} SYSTEM PUBLIC ${Boost_INCLUDE_DIRS})
# Зависимость от библиотеки из внешнего проекта проекта
add_dependencies(${TRGT} myxlib)
# Добавление каталога, в который устанавливаются заголовочные файлы
# от внешнего проекта, к списку путей для поиска
target_include_directories(${TRGT} PUBLIC $<BUILD_INTERFACE:${CMAKE_BINARY_DIR}/include>)
# Компоновка с библиотеками из внешнего проекта
target_link_libraries(${TRGT} myx-qt myx-filesystem myx-base)
# Имя целевого каталога и выходного файла для цели
set_target_properties(${TRGT}
PROPERTIES

View File

@ -1,20 +1,31 @@
#include "compiler_features.hpp"
#include "cmlib_private_config.hpp"
#include <myx/qt/translators.hpp>
#include <iostream>
#include <boost/range/counting_range.hpp>
#include <QCoreApplication>
#include <QDebug>
namespace MQ = myx::qt;
int main( int argc, char** argv )
int32_t nsum(int32_t i = 0)
{
QCoreApplication app( argc, argv );
MQ::QTranslatorsList tl;
qDebug() << QObject::tr( "Yes" );
MQ::append_translators( tl, QStringLiteral( CMLIB_PROJECT_NAME ) );
qDebug() << QObject::tr( "Yes" );
return( 0 );
int32_t s = 0;
for ( auto r : boost::counting_range( 1, i ) )
{
s += r;
}
return s;
}
int main(int argc, char* argv[])
{
// Значение из compiler_features.hpp
std::cout << CMLIB_EXAMPLE_APP_COMPILER_VERSION_MAJOR << std::endl;
// Значение из cmlib_private_config.hpp
std::cout << CMLIB_BUILD_TYPE << std::endl;
// Значение из cmlib_private_config.hpp
std::cout << CMLIB_BUILD_DATE << std::endl;
auto s = nsum( argc );
std::cout << s << std::endl;
return ( s );
}

1
thirdparty/myxlib vendored

@ -1 +0,0 @@
Subproject commit f63c6b8302c8cc588a81b8ba888dd0d10c95ea31