CMake

Linux.fista
Siirry navigaatioon Siirry hakuun
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

Katso myös

[muokkaa]