Пример программы
This commit is contained in:
		@@ -5,7 +5,7 @@ cmake_minimum_required(VERSION 3.3)
 | 
			
		||||
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 находятся файлы с библиотечными функциями
 | 
			
		||||
if(IS_DIRECTORY ${CMAKE_SOURCE_DIR}/cmake/cmlib)
 | 
			
		||||
@@ -17,3 +17,21 @@ list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/find)
 | 
			
		||||
 | 
			
		||||
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 );
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user