-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCMakeLists.txt
53 lines (42 loc) · 3.27 KB
/
CMakeLists.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# Сборочный файл для программы my_program
# Минимальная версия CMake, младше нельзя.
cmake_minimum_required( VERSION 3.6 )
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
add_definitions( "-ggdb" )
add_definitions( "-std=c++11" )
# Устанавливаем значение переменной BIN
set( BIN asciidunge )
# Имя проекта у нас соответствует имени программы.
project( ${BIN} )
# Устанавливаем корневой путь к папке с исходниками программы.
set( SOURCE_ROOT src )
# Очень полезная функция. По умолчанию имена файлов с исходниками
# нужно перечислять явно. Мне это кажется совершенно неудобным (особенно
# если файлов много). Поэтому я использую эту функцию.
# Она (рекурсивно) просматривает исходники (начиная от корневого пути,
# указанного выше) и собирает имена всех файлов, имеющих классическое
# разрешение, такие как .cpp, .cxx и т.п.
# В итоге формируется список всех найденных файлов и сохраняется в переменной
# SOURCES
aux_source_directory( ${SOURCE_ROOT} SOURCES )
# Указываем пути, где искать заголовочники, дополнительно к стандартным путям.
include_directories( include /usr/include/libtcod/ )
# Устанавливаем путь, куда будет скопирован исполняемый файл при выполнении
# команды 'make install'.
set( INSTALL_PATH /usr/local/bin/ )
# Указываем пути, где искать сторонние динамически библиотеки. Эти пути будут
# просмотрены в дополнение к умолчальными системным путям.
# link_directories( "/usr/lib/" )
# Перечисляем необходимые сторонние динамические библиотеки и сохраняем
# их список в переменной REQUIRED_LIBRARIES.
# Поиск этих библиотек будет произведён как по стандартным системным путям,
# так и по указанным выше (с помощью функции link_directories).
set( REQUIRED_LIBRARIES tcod tcodxx )
# Устанавливаем флаги компилятора (причём никаких скрытых флагов, только эти).
set( CMAKE_CXX_FLAGS "-O0 -Wall -pedantic" )
# Собираем исполняемый файл с именем my_program.
add_executable( ${BIN} ${SOURCES} )
# Компонуем собранную программу с необходимыми динамическими библиотеками.
target_link_libraries( ${BIN} ${REQUIRED_LIBRARIES} )
# Установка. Это действие будет активировано при выполнении команды 'make install'.
install( TARGETS ${BIN} DESTINATION ${INSTALL_PATH} )