CMake
Тип інструмент розробки
Автор Kitwared
Розробники Andy Cedilnik, Bill Hoffman, Brad King, Ken Martin, Alexander Neundorf
Стабільний випуск 3.6.1 (22 липня 2016; 7 років тому (2016-07-22))
Платформа кросплатформова програма[1]
Операційна система крос-платформовий
GNU фреймворк Qt[2][3][4]
Мова програмування C++[5]
Ліцензія нова BSD License
Репозиторій gitlab.kitware.com/cmake/cmake
Вебсайт www.cmake.org

CMake — крос-платформовий відкритий генератор сценаріїв складання. CMake не займається безпосередньо складанням, a лише генерує файли управління складанням з файлів CMakeLists.txt :

  • Makefile в системах Unix для складання з допомогою make
  • файли projects/workspaces (.dsp/.dsw) у Windows для збірки з допомогою Visual C++
  • проекти XCode у Mac OS X

З переваг CMake можна відзначити: проста мова сценаріїв, засоби розширення функціональності через модулі, мінімальне число залежностей (немає прив'язки до M4, Perl або Python), підтримка кешування, наявність засобів для крос-компіляції, підтримка генерації файлів складання для широкого спектра систем складання і компіляторів, наявність утиліт ctest і cpack для визначення сценаріїв тестування і складання пакунків, утиліта cmake-gui для інтерактивного налаштування параметрів складання.

CMake виступає як альтернатива Autotools і використовується в таких проектах, як KDE, LLVM/Clang, MySQL, MariaDB, ReactOS і Blender. Початковий код CMake написаний мовою C++ і поширюється під ліцензією BSD.

Історія ред.

Досить давно розроблена в співтоваристві GNU система Autotools на базі Perl і M4 є широко поширеною, але вимагає певних навичок для практичного використання. Існуючі версії в ряді випадків несумісні одна з одною. Autotools реалізована для Unix/Linux платформ.

21 грудня 2008 з'явилася система SCons (версії 1.2.0), що використовує мову Python. З одного боку, це робить систему розширюваною, але з іншого — ускладнює її вивчення і використання, одночасно знижуючи швидкодію. Наприклад, для вирішення стандартних завдань доводиться використовувати «хитрий» код.

CMake ж написаний мовою C++ і використовує вкрай просту макромову. Водночас цієї мови виявляється достатньо для більшої частини завдань конфігурування. Окремі операції конфігурування реалізовані у вигляді модулів.

Також в CMake присутній варіант використання бібліотек з pkg-config[6].

Виноски ред.

  1. https://cmake.org/
  2. https://cmake.org/cmake/help/latest/manual/cmake-gui.1.html
  3. https://cmake.org/runningcmake
  4. https://gitlab.kitware.com/cmake/cmake
  5. Ohloh Analysis Summary - CMake. Ohloh. Архів оригіналу за 22 січня 2014. Процитовано 25 грудня 2009.
  6. FindPkgConfig — CMake 3.28.1 Documentation. cmake.org. Процитовано 2 січня 2024.

Посилання ред.