CMake-paketoinnin ohjeet
Tämä dokumentti tarjoaa parhaat käytännöt CMake-koontijärjestelmän käyttöön Fedora-paketeissa.
Riippuvuuksien rakentaminen
Sinun TÄYTYY lisätä seuraavat BuildRequires:
Vaatii koontiversion: cmake
Saatavilla olevat makrot
Yleensä käytät näitä teknisissä tiedotteissasi:
%cmake-
Määrittelee CFLAGSin, LDFLAGin jne. ja kutsuu '%__cmake' sopivilla parametreilla ('-DCMAKE_INSTALL_PREFIX:PATH=/usr' ja vastaavat). Voit välittää '-Doption=value' tälle makrolle asettaaksesi asetukset buildsystemille.
%cmake_build-
Rakentaa projektin (käyttäen '%__cmake --build`).
%cmake_install-
Asentaa rakennetun projektin (käyttäen '%__cmake --asenna`).
%ctest-
Suorittaa testit, jotka on määritelty 'add_test()' projektissa (käyttäen '%__ctest`).
Kun pakkaat KDE-ohjelmistoa, korvaat todennäköisesti '%cmake' joko '%cmake_kf5' tai '%cmake_kf6'. Lisätietoja löytyy osoitteesta KDE:n pakkausohjeet[KDE:n pakkausohjeet].
Näiden käyttö tai muokkaaminen on harvoin välttämätöntä (mutta sallittua):
| Kaikki makrot, jotka alkavat kaksoisaliviivalla, on tarkoitettu yksityisiksi, EI vakaiksi ja todennäköisesti poistetaan tulevaisuudessa. |
%__cmake-
The path to the cmake executable.
%__ctest-
Polku ctest-suoritettavaan tiedostoon.
%__cmake_in_source_build-
Se ohjaa, tehdäänkö rakennelmat out-of-source (kun määrittelemätön, oletus) vai lähdekoodissa (kun ne on määritelty). Mahdollisuuksien mukaan on suositeltavaa käyttää lähteiden ulkopuolisia rakennelmia, sillä sekä Fedora että CMake ylävirtaan suuntautuvat tähän suuntaan.
%__cmake_builddir-
Sisältää varsinaisen hakemiston sijainnin, jossa rakennus on tehty. Kun tehdään lähteen ulkopuolisia rakennelmia, tämä makro on sama kuin %_vpath_builddir. Kun tehdään lähdekoodin sisäisiä rakennelmia, tämä makro tallentaa varsinaisen sijainnin, jota rakennelmassa käytettiin.
Tämä makro sopii vain harvinaisiin yhteensopivuuskysymyksiin. Tavallisissa lähteiden ulkopuolisissa buildeissa tämä makro on sama kuin '%_vpath_builddir'. Se voidaan poistaa tulevaisuudessa.
Esimerkkikäyttö
%conf
%cmake
%build
%cmake_build
%install
%cmake_install
%check
%ctest
HUOM: Jos rakennetaan < EPEL 10:lle, niin '%cmake' pitäisi olla '%build' -muodossa`.
Huomautukset
`-DCMAKE_SKIP_RPATH:BOOL=ON'. Viimeisimmän cmake-2.4:n kanssa sitä ei pitäisi käyttää. Tämän CMake-version pitäisi hoitaa RPATH-ongelmat oikein (aseta ne build-dir-tilaan, poista asennuksen aikana). Tämän version 'CMAKE_SKIP_RPATH' asettaminen estäisi myös RPATHit build-dirissä. Tämä saattaisi yhdistää binäärit järjestelmäkirjastoihin (esim. kun aiempi versio on asennettu) sen sijaan, että ne olisivat luoneet rakennelman luomia kirjastoja.
Siitä huolimatta RPATH-ongelmia voi ilmetä, kun CMakea käytettiin väärin. Esimerkiksi kohteen asentaminen 'INSTALL(FILES ... NIMEÄ ...)' ei riisu rpatheja; tässä tapauksessa 'INSTALL(TARGETS ...)' on käytettävä yhdessä 'OUTPUT_NAME'-ominaisuuden muuttamisen kanssa.
CMakella on hyvää dokumentaatiota kahdessa paikassa:
Want to help? Learn how to contribute to Fedora Docs ›