Введення в cmake 1
Введення в CMake
CMake - це кроcсплатформенная утиліта для автоматичного складання програми з вихідного коду. При цьому сама CMake безпосередньо складанням не займається, а представляє з себе front-end. Як back-end`a можуть виступати різні версії make і Ninja. Так само CMake дозволяє створювати проекти для CodeBlocks, Eclipse, KDevelop3, MS VC ++ та Xcode. Варто відзначити, що більшість проектів створюються не нативних, а все з тими ж back-end`амі.
Для того що б зібрати проект засобами CMake, необхідно в корені дерева початкових кодів розмістити файл CMakeLists.txt, який зберігає правила і цілі збірки, і зробити кілька простих кроків.
Розберемося на прикладах.
Приклад 1. Hello, World:
Для початку напишемо найпростіший хеловорлд:
int main (int argc, char ** argv)
std :: cout <<"Hello, World!" < і файл для збирання: cmake_minimum_required (VERSION 2.8) # Перевірка версії CMake. # Якщо версія встановленої програми # Старіше вказаної, проізайдёт аварійний вихід. add_executable (main main.cpp # Створює виконуваний файл з ім'ям main # З исходника main.cpp Створимо порожню директорію для тимчасових файлів і перейдемо туди. Тепер запустимо команду cmake, передавши їй як параметр шлях до папки з вихідними кодами: / Cmake / example_1 / / Tmp $ ls Бачимо, що в папці з'явилося кілька тимчасових файлів, необхідних для складання проекту. / Tmp $ make / Tmp $ ./main Отже, наша програма зібралася. Приклад 2. Бібліотеки:
...
- Build files have been written to: / home / fshp / tmp
fshp @ panica-desktop:
CMakeCache.txt CMakeFiles cmake_install.cmake Makefile
fshp @ panica-desktop:
Тепер можна запустити безпосередньо make:
Scanning dependencies of target main
[100%] Building CXX object CMakeFiles / main.dir / main.cpp.o
Linking CXX executable main
[100%] Built target main
fshp @ panica-desktop:
Hello, World!
fshp @ panica-desktop:
Папку tmp можна очіщатьудалять без ризику поламати вихідні. Якщо CMakeLists.txt був змінений, то виклик make автоматично запустить cmake. Якщо вихідні були переміщені, то потрібно очистити тимчасову директорію і запустити cmake вручну.