Подключение MyXLib
This commit is contained in:
parent
7a60abf94d
commit
e1be3ec6cb
3
.gitmodules
vendored
3
.gitmodules
vendored
@ -13,3 +13,6 @@
|
|||||||
[submodule "cmake/etc/uncrustify"]
|
[submodule "cmake/etc/uncrustify"]
|
||||||
path = cmake/etc/uncrustify
|
path = cmake/etc/uncrustify
|
||||||
url = https://git.246060.ru/f1x1t/uncrustify-config.git
|
url = https://git.246060.ru/f1x1t/uncrustify-config.git
|
||||||
|
[submodule "thirdparty/myxlib"]
|
||||||
|
path = thirdparty/myxlib
|
||||||
|
url = https://git.246060.ru/f1x1t/myxlib.git
|
||||||
|
@ -5,7 +5,7 @@ cmake_minimum_required(VERSION 3.3)
|
|||||||
cmake_policy(VERSION 3.0.2..3.7)
|
cmake_policy(VERSION 3.0.2..3.7)
|
||||||
|
|
||||||
# Название и версия проекта и используемые языки программирования
|
# Название и версия проекта и используемые языки программирования
|
||||||
project(cmlib-example-app VERSION 0.2.0 LANGUAGES C CXX)
|
project(cmlib-example-app-qt5-con VERSION 0.2.0 LANGUAGES C CXX)
|
||||||
|
|
||||||
# В каталоге cmake/cmlib находятся файлы с библиотечными функциями
|
# В каталоге cmake/cmlib находятся файлы с библиотечными функциями
|
||||||
if(IS_DIRECTORY ${CMAKE_SOURCE_DIR}/cmake/cmlib)
|
if(IS_DIRECTORY ${CMAKE_SOURCE_DIR}/cmake/cmlib)
|
||||||
@ -23,9 +23,27 @@ set(Boost_USE_MULTITHREADED OFF)
|
|||||||
set(Boost_USE_STATIC_RUNTIME ON)
|
set(Boost_USE_STATIC_RUNTIME ON)
|
||||||
find_package(Boost 1.55.0 REQUIRED COMPONENTS headers)
|
find_package(Boost 1.55.0 REQUIRED COMPONENTS headers)
|
||||||
|
|
||||||
|
# Qt5
|
||||||
|
find_package(Qt5 COMPONENTS Core REQUIRED)
|
||||||
|
|
||||||
# Автоматически генерируемый заголовочный файл
|
# Автоматически генерируемый заголовочный файл
|
||||||
cmlib_config_hpp_generate()
|
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)
|
add_subdirectory(src/cmlib-example)
|
||||||
|
|
||||||
|
@ -2,15 +2,40 @@
|
|||||||
set(TRGT cmlib-example)
|
set(TRGT cmlib-example)
|
||||||
|
|
||||||
# Список файлов исходных текстов
|
# Список файлов исходных текстов
|
||||||
set(TRGT_sources ${CMAKE_CURRENT_SOURCE_DIR}/main.cpp)
|
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})
|
||||||
|
|
||||||
# Функция для создания цели, результатом которой будет сборка приложения
|
# Функция для создания цели, результатом которой будет сборка приложения
|
||||||
add_executable(${TRGT} ${TRGT_sources})
|
add_executable(${TRGT} ${TRGT_cpp} ${TRGT_qrc})
|
||||||
common_target_properties(${TRGT})
|
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})
|
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}
|
set_target_properties(${TRGT}
|
||||||
PROPERTIES
|
PROPERTIES
|
||||||
|
@ -1,31 +0,0 @@
|
|||||||
#include "compiler_features.hpp"
|
|
||||||
#include "cmlib_private_config.hpp"
|
|
||||||
|
|
||||||
#include <iostream>
|
|
||||||
#include <boost/range/counting_range.hpp>
|
|
||||||
|
|
||||||
int32_t nsum(int32_t i = 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
Submodule
1
thirdparty/myxlib
vendored
Submodule
@ -0,0 +1 @@
|
|||||||
|
Subproject commit f63c6b8302c8cc588a81b8ba888dd0d10c95ea31
|
Loading…
Reference in New Issue
Block a user