Ero sivun ”CMake” versioiden välillä

Siirry navigaatioon Siirry hakuun
Ei muokkausyhteenvetoa
päivitys
 
(4 välissä olevaa versiota 3 käyttäjän tekeminä ei näytetä)
Rivi 1: Rivi 1:
{{ Ohjelma | nimi=cmake  | kuva= |  kuvateksti= | lisenssi=cmake | käyttöliittymä=teksti | kotisivu=[http://cmake.org cmake.org] }}
{{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ö==
Yleensä projekti käännetään ajamalla sen lähdekoodin hakemistossa komento
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  
'''Kaksivaiheinen työnkulku'''<br>
  cmake -D<muuttuja>=arvo
Yleisin tapa kääntää projekti komentoriviltä:
esimerkiksi [[g++]]:n käännösvalitsimiin voi vaikuttaa
 
  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


tämän jälkeen cmake tyypillisesti luo [[Makefile|Makefilen]], jolla ohjelma voidaan asentaa tyypillisesti:
* '''3. Asennus:''' Ohjelma asennetaan tyypillisesti komennolla:
  make all install
  make install


==Katso myös==
==Katso myös==
*[[make]]
* [[Make]]
*[[autotools]]
* [[Autotools]]
* [[Meson]]
* [[Ninja]]


[[Luokka:Kehitystyökalut]]
[[Luokka:Kehitystyökalut]]
Noudettu kohteesta ”https://www.linux.fi/wiki/CMake