CMake
| CMake | |
|---|---|
| Kehittäjä(t) | Kitware, Inc. |
| Moottori | (Meta-käännösjärjestelmä) |
| Ensijulkaisu | 2000 |
| Vakaa versio | 3.31.2 / 2024 |
| Ohjelmoitu | C++ |
| Käyttöliittymä | Komentorivi (CLI) ja GUI (cmake-gui) |
| Tyyppi | Meta-käännösjärjestelmä |
| Lisenssi | BSD-3-Clause |
| Kotisivu | cmake.org |
CMake on usealla alustalla toimiva meta-käännösjärjestelmä (meta-build system). Sen sijaan, että CMake kääntäisi lähdekoodin suoraan, se luo valitulle alustalle ja ympäristölle sopivat natiivit rakennustiedostot (esim. Makefilet, Visual Studio -projektit tai Ninja-tiedostot). Se on käytössä muun muassa KDE-projektissa.
CMake:n ensisijainen tavoite on helpottaa ohjelmointiprojektien siirrettävyyttä ja yhteensopivuutta eri käyttöjärjestelmien ja kehitysympäristöjen välillä.
Toimintaperiaate
[muokkaa]CMake-projekti määritellään CMakeLists.txt-tiedostoilla, jotka sisältävät käännöksen määrittelyn CMake-kielellä. Toisin kuin vanhemmissa järjestelmissä, kuten Autotools, CMake ei luo varsinaisia käännöskomentoja, vaan se suorittaa konfiguroinnin.
Tyypillinen käännösprosessi koostuu kahdesta vaiheesta:
- 1. Konfigurointi: CMake tarkistaa ympäristön, etsii tarvittavat kirjastot ja luo valitulle moottorille sopivat rakennustiedostot.
- 2. Kääntäminen: Natiivi käännösjärjestelmä (esim. Make tai Ninja) suorittaa koodin kääntämisen käyttäen näitä generoituja tiedostoja.
Käyttö
[muokkaa]CMake suosii vahvasti ulkopuolista käännöstä (out-of-source build), jossa käännöksessä syntyvät tiedostot sijoitetaan erilliseen hakemistoon (yleensä build).
Kaksivaiheinen työnkulku
Yleisin tapa kääntää projekti komentoriviltä:
- 1. Konfigurointi (Configure): Käyttäjä luo build-hakemiston ja suorittaa CMake-komennon sen sisältä (viitaten lähdekoodin juureen, joka on tässä tapauksessa edellinen hakemisto: .. tai .):
mkdir build cd build cmake ..
Tämän komennon tuloksena syntyy Makefile (tai muu valitun moottorin vaatima tiedosto) build-hakemistoon. Käännösprosessia voi ohjata määrittelemällä -D-valitsimella käännöstä ohjaavia muuttujia:
cmake -D<muuttuja>=arvo ..
Esimerkiksi g++:n käännösvalitsimiin voi vaikuttaa muuttujalla CMAKE_CXX_FLAGS:
cmake -DCMAKE_CXX_FLAGS="-g -O2" ..
- 2. Kääntäminen (Build): Natiivi käännösjärjestelmä suorittaa käännöksen:
make # Tai jos moottoriksi on valittu Ninja: ninja
- 3. Asennus: Ohjelma asennetaan tyypillisesti komennolla:
make install