Подключение внешней библиотеки
This commit is contained in:
parent
b14cb9cffc
commit
94cb28d492
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/cmlib-example-library"]
|
||||||
|
path = thirdparty/cmlib-example-library
|
||||||
|
url = git@git.246060.ru:/f1x1t/cmlib-example-library
|
||||||
|
@ -26,6 +26,19 @@ find_package(Boost 1.55.0 REQUIRED COMPONENTS headers)
|
|||||||
# Автоматически генерируемый заголовочный файл
|
# Автоматически генерируемый заголовочный файл
|
||||||
cmlib_config_hpp_generate()
|
cmlib_config_hpp_generate()
|
||||||
|
|
||||||
|
# Подключение внешних проектов
|
||||||
|
include(ExternalProject)
|
||||||
|
|
||||||
|
ExternalProject_Add(ext-lib
|
||||||
|
EXCLUDE_FROM_ALL TRUE
|
||||||
|
SOURCE_DIR ${CMAKE_SOURCE_DIR}/thirdparty/cmlib-example-library
|
||||||
|
INSTALL_DIR ${CMAKE_BINARY_DIR}
|
||||||
|
DOWNLOAD_COMMAND ""
|
||||||
|
BUILD_BYPRODUCTS <INSTALL_DIR>/lib/libcmext.a
|
||||||
|
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR> -DCMAKE_BUILD_TYPE=Release
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
# Приложение
|
# Приложение
|
||||||
add_subdirectory(src/cmlib-example)
|
add_subdirectory(src/cmlib-example)
|
||||||
|
|
||||||
|
@ -11,6 +11,16 @@ common_target_properties(${TRGT})
|
|||||||
# Добавление к пути поиска заголовочных файлов
|
# Добавление к пути поиска заголовочных файлов
|
||||||
target_include_directories(${TRGT} SYSTEM PUBLIC ${Boost_INCLUDE_DIRS})
|
target_include_directories(${TRGT} SYSTEM PUBLIC ${Boost_INCLUDE_DIRS})
|
||||||
|
|
||||||
|
# Зависимость от библиотеки из внешнего проекта проекта
|
||||||
|
add_dependencies(${TRGT} ext-lib)
|
||||||
|
|
||||||
|
# Добавление каталога, в который устанавливаются заголовочные файлы
|
||||||
|
# от внешнего проекта, к списку путей для поиска
|
||||||
|
target_include_directories(${TRGT} PUBLIC $<BUILD_INTERFACE:${CMAKE_BINARY_DIR}/include>)
|
||||||
|
|
||||||
|
# Компоновка с библиотекой из внешнего проекта
|
||||||
|
target_link_libraries(${TRGT} ${CMAKE_BINARY_DIR}/lib/libcmlib-example.a)
|
||||||
|
|
||||||
# Имя целевого каталога и выходного файла для цели
|
# Имя целевого каталога и выходного файла для цели
|
||||||
set_target_properties(${TRGT}
|
set_target_properties(${TRGT}
|
||||||
PROPERTIES
|
PROPERTIES
|
||||||
|
@ -1,29 +1,10 @@
|
|||||||
#include "compiler_features.hpp"
|
#include <cmlib-example/init.hpp>
|
||||||
#include "cmlib_private_config.hpp"
|
|
||||||
|
|
||||||
#include <iostream>
|
#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[])
|
int main(int argc, char* argv[])
|
||||||
{
|
{
|
||||||
// Значение из compiler_features.hpp
|
auto s = cmlib_example_init( argc );
|
||||||
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;
|
std::cout << s << std::endl;
|
||||||
|
|
||||||
return ( s );
|
return ( s );
|
||||||
|
1
thirdparty/cmlib-example-library
vendored
Submodule
1
thirdparty/cmlib-example-library
vendored
Submodule
@ -0,0 +1 @@
|
|||||||
|
Subproject commit d38b717e1b9d0169e404cc9fcc78d394c74638a6
|
Loading…
x
Reference in New Issue
Block a user