CMake Tutorial

Материал из Викиконспекты
Перейти к: навигация, поиск
Эта статья находится в разработке!

// Тут скоро будет туториал по CMake.

Что это и зачем нужно

CMake — кроссплатформенная автоматизированная система сборки проектов. Непосредственно сборкой она не занимается, а только генерирует Makefile, который потом будет выполнен утилитой make.

CMake может проверять наличие необходимых библиотек и подключать их, собирать проекты под разными компиляторами и операционными системами. Т.е. у вас есть куча кода и файлик, содержащий информацию для cmake, и чтобы скомпилить это дело где-нибудь еще, вам нужно просто запустить там cmake, который сделает всё сам. Удобно, полезно, просто. Дисклеймер: Никита все еще считает, что cmake не нужен, но Никита извращенец и просто дурак.

Старт

Предполагается, что найти и скачать сам 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")

Как видите, использовать значение можно и внутри кавычек. Переменные активно используются различными библиотеками - для установки флагов, параметров сборки/линковки и прочих вкусностей.