Пример программы
This commit is contained in:
parent
307a261281
commit
3520c03452
@ -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-base VERSION 0.2.0 LANGUAGES C CXX)
|
project(cmlib-example-app 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)
|
||||||
@ -17,3 +17,21 @@ list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/find)
|
|||||||
|
|
||||||
include(CMLibCommon)
|
include(CMLibCommon)
|
||||||
|
|
||||||
|
# Boost
|
||||||
|
set(Boost_USE_STATIC_LIBS ON)
|
||||||
|
set(Boost_USE_MULTITHREADED OFF)
|
||||||
|
set(Boost_USE_STATIC_RUNTIME ON)
|
||||||
|
find_package(Boost 1.55.0 REQUIRED COMPONENTS headers)
|
||||||
|
|
||||||
|
# Автоматически генерируемый заголовочный файл
|
||||||
|
cmlib_config_hpp_generate()
|
||||||
|
|
||||||
|
# Приложение
|
||||||
|
add_subdirectory(src/cmlib-example)
|
||||||
|
|
||||||
|
# Документация
|
||||||
|
add_subdirectory(cmake/doc)
|
||||||
|
|
||||||
|
# Создание вспомогательных символических ссылок
|
||||||
|
add_dependencies(cmlib-example create_auxilary_symlinks)
|
||||||
|
|
||||||
|
22
src/cmlib-example/CMakeLists.txt
Normal file
22
src/cmlib-example/CMakeLists.txt
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
# Название основной цели и имя библиотеки в текущем каталоге
|
||||||
|
set(TRGT cmlib-example)
|
||||||
|
|
||||||
|
# Список файлов исходных текстов
|
||||||
|
set(TRGT_sources ${CMAKE_CURRENT_SOURCE_DIR}/main.cpp)
|
||||||
|
|
||||||
|
# Функция для создания цели, результатом которой будет сборка приложения
|
||||||
|
add_executable(${TRGT} ${TRGT_sources})
|
||||||
|
common_target_properties(${TRGT})
|
||||||
|
|
||||||
|
# Добавление к пути поиска заголовочных файлов
|
||||||
|
target_include_directories(${TRGT} SYSTEM PUBLIC ${Boost_INCLUDE_DIRS})
|
||||||
|
|
||||||
|
# Имя целевого каталога и выходного файла для цели
|
||||||
|
set_target_properties(${TRGT}
|
||||||
|
PROPERTIES
|
||||||
|
OUTPUT_NAME ${TRGT}
|
||||||
|
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_BINDIR}
|
||||||
|
)
|
||||||
|
|
||||||
|
# Правила для установки
|
||||||
|
install(TARGETS ${TRGT} COMPONENT MAIN RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
|
20
src/cmlib-example/main.cpp
Normal file
20
src/cmlib-example/main.cpp
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
#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[])
|
||||||
|
{
|
||||||
|
auto s = nsum( argc );
|
||||||
|
std::cout << s << std::endl;
|
||||||
|
return ( s );
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user