Подключение внешней библиотеки
This commit is contained in:
parent
b14cb9cffc
commit
94cb28d492
3
.gitmodules
vendored
3
.gitmodules
vendored
@ -13,3 +13,6 @@
|
||||
[submodule "cmake/etc/uncrustify"]
|
||||
path = cmake/etc/uncrustify
|
||||
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()
|
||||
|
||||
# Подключение внешних проектов
|
||||
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)
|
||||
|
||||
|
@ -11,6 +11,16 @@ common_target_properties(${TRGT})
|
||||
# Добавление к пути поиска заголовочных файлов
|
||||
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}
|
||||
PROPERTIES
|
||||
|
@ -1,29 +1,10 @@
|
||||
#include "compiler_features.hpp"
|
||||
#include "cmlib_private_config.hpp"
|
||||
#include <cmlib-example/init.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 );
|
||||
auto s = cmlib_example_init( argc );
|
||||
std::cout << s << std::endl;
|
||||
|
||||
return ( s );
|
||||
|
1
thirdparty/cmlib-example-library
vendored
Submodule
1
thirdparty/cmlib-example-library
vendored
Submodule
@ -0,0 +1 @@
|
||||
Subproject commit d38b717e1b9d0169e404cc9fcc78d394c74638a6
|
Loading…
Reference in New Issue
Block a user