Ero sivun ”CMake” versioiden välillä
Ei muokkausyhteenvetoa |
päivitys |
||
| Rivi 1: | Rivi 1: | ||
{{ Ohjelma | nimi=CMake | {{Ohjelma | ||
| nimi = CMake | |||
| logo = | |||
| kuva = | |||
| kuvateksti = | |||
| tekijä = | |||
| kehittäjä = Kitware, Inc. | |||
| moottori = (Meta-käännösjärjestelmä) | |||
| ensijulkaisu = 2000 | |||
| vakaaversio = 3.31.2 | |||
| vakaapvm = 2024 | |||
| kehitysversio = | |||
| kehityspvm = | |||
| ohjelmoitu = [[C++]] | |||
| käyttöliittymä = Komentorivi (CLI) ja GUI (cmake-gui) | |||
| tyyppi = Meta-käännösjärjestelmä | |||
| lisenssi = [[BSD-3-Clause]] | |||
| kotisivu = [https://cmake.org cmake.org] | |||
| lähdekoodi = | |||
}} | |||
'''CMake''' on usealla alustalla toimiva käännösjärjestelmä. Se on käytössä muun muassa [[KDE|KDE-projektissa]]. | '''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. [[Makefile]]t, Visual Studio -projektit tai [[Ninja]]-tiedostot). Se on käytössä muun muassa [[KDE|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 == | |||
CMake-projekti määritellään ''CMakeLists.tx''t-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ö== | ==Käyttö== | ||
CMake suosii vahvasti ulkopuolista käännöstä (out-of-source build), jossa käännöksessä syntyvät tiedostot sijoitetaan erilliseen hakemistoon (yleensä build). | |||
cmake . | |||
Käännösprosessia voi ohjata määrittelemällä -D-valitsimella käännöstä ohjaavia muuttujia: | '''Kaksivaiheinen työnkulku'''<br> | ||
cmake -D<muuttuja>=arvo | Yleisin tapa kääntää projekti komentoriviltä: | ||
Esimerkiksi [[gcc|g++]]:n käännösvalitsimiin voi vaikuttaa muuttujalla | |||
cmake -DCMAKE_CXX_FLAGS="-g -O2" . | * '''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 [[gcc|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== | ==Katso myös== | ||
*[[Make]] | * [[Make]] | ||
*[[Autotools]] | * [[Autotools]] | ||
* [[Meson]] | |||
* [[Ninja]] | |||
[[Luokka:Kehitystyökalut]] | [[Luokka:Kehitystyökalut]] | ||
Nykyinen versio 15. marraskuuta 2025 kello 01.45
| 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