Compare commits

..

2 Commits

4 changed files with 77 additions and 16 deletions

View File

@ -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)

View File

@ -11,18 +11,19 @@ set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "CMLib application project example")
set(CPACK_DEBIAN_PACKAGE_SECTION "misc") set(CPACK_DEBIAN_PACKAGE_SECTION "misc")
set(CPACK_DEBIAN_PACKAGE_PRIORITY "optional") set(CPACK_DEBIAN_PACKAGE_PRIORITY "optional")
set(CPACK_SOURCE_IGNORE_FILES set(CPACK_SOURCE_IGNORE_FILES
${CMAKE_BINARY_DIR} "${CMAKE_BINARY_DIR}"
.git/ "/\\\\.git/"
.git$ "/\\\\.gitlab-ci/"
.gitlab-ci/ "^${CMAKE_SOURCE_DIR}/.?build.?/"
_output/ "^${CMAKE_SOURCE_DIR}/.?output.?/"
files/lib "^${CMAKE_SOURCE_DIR}/files/lib"
files/log "^${CMAKE_SOURCE_DIR}/files/log"
.clang-tidy "\\\\.clang-tidy$"
.cmake-format "\\\\.cmake-format$"
.gitignore "\\\\.gitignore$"
.gitmodules "\\\\.gitattributes$"
.gitlab-ci.yml "\\\\.gitmodules$"
CMakeLists.txt.user.* "\\\\.gitlab-ci.yml"
~$ "CMakeLists.txt.user.*"
\\\\..*\\\\.swp$) "~$"
"\\\\.swp$")

View 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})

View 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 );
}