Изменения

Перейти к: навигация, поиск

CMake Tutorial

4457 байт добавлено, 20:55, 29 марта 2013
Нет описания правки
// Тут скоро будет туториал по CMake.
 
= Что это и зачем нужно =
CMake — кроссплатформенная автоматизированная система сборки проектов.
Непосредственно сборкой она не занимается, а только генерирует Makefile, который потом будет выполнен утилитой make.
 
CMake может проверять наличие необходимых библиотек и подключать их, собирать проекты под разными компиляторами и операционными системами. Т.е. у вас есть куча кода и файлик, содержащий информацию для cmake, и чтобы скомпилить
это дело где-нибудь еще, вам нужно просто запустить там cmake, который сделает всё сам. Удобно, полезно, просто.
<span style="color:#a0a0a0">Дисклеймер: Никита все еще считает, что cmake не нужен, но Никита извращенец и просто дурак.</span>
 
= Старт =
Предполагается, что найти и скачать сам cmake ты, %username%, в состоянии.
 
Предположим, у Вас есть исходничек "test.cpp".
Для начала нужно создать файлик для cmake, который обычно называют "CMakeLists.txt", и написать туда вот это:
 
add_executable(test test.cpp)
 
Теперь запускаем (из консоли) в этой папке команду "cmake CMakeLists.txt" (аргументом можно передавать не только файл, но и папку, в которой он лежит, тогда cmake найдет его сам).
cmake возьмет этот файлик и, основываясь на нем, создаст проект, а именно много-много файлов, папочек и т.д.
Нас больше всего интересует сгенерированный Makefile (проверьте, он тоже должен быть в папочке).
В той же папке запускаем make (аргументы такие же, как у cmake, т.е. можно сам makefile, можно папку, в которой он лежит; без аргументов make ищет makefile в текущем каталоге).
В консоли вылезет примерно такой текст:
 
Scanning dependencies of target test
[100%] Building CXX object CMakeFiles/test.dir/test.cpp.o
Linking CXX executable test
[100%] Built target test
 
А у Вас в папочке появится исполняемый файл "test". Запустите, убедитесь, что это действительно то, что ожидается от компилляции файла "test.cpp".
 
= We need to go deeper =
 
Поразбираемся с различными командами cmake.
 
=== Указание необходимой версии cmake ===
 
cmake_minimum_required(VERSION 2.6)
 
Если используемая версия cmake меньше 2.6, он не захочет работать. Писать эту команду всегда - хороший стиль.
 
=== Название проекта ===
 
project(visualization)
 
Тут все понятно. Тоже хороший стиль.
 
=== Переменные ===
 
В cmake можно создавать текстовые переменные. Команда
 
set(VARIABLE The variable's value)
 
запишет в переменную "VARIABLE" значение "The variable's value".
Чтобы где-либо использовать значение этой переменной, нужно написать ${VARIABLES}.
 
Чтобы добавить к переменной некий текст, можно сделать так:
 
set(VARIABLE "${VARIABLES} new text")
 
Как видите, использовать значение можно и внутри кавычек.
Переменные активно используются различными библиотеками - для установки флагов, параметров сборки/линковки и прочих вкусностей.
54
правки

Навигация