File manipulation command.
file(WRITE filename "message to write"... )file(APPEND filename "message to write"... )file(READ filename variable )file(<MD5|SHA1|SHA224|SHA256|SHA384|SHA512> filename variable)file(STRINGS filename variable )file(GLOB variable ...)file(GLOB_RECURSE variable ...)file(RENAME <oldname> <newname>)file(REMOVE )file(REMOVE_RECURSE )file(MAKE_DIRECTORY )file(RELATIVE_PATH variable directory file)file(TO_CMAKE_PATH path result)file(TO_NATIVE_PATH path result)file(DOWNLOAD url file )file(UPLOAD filename url )file(TIMESTAMP filename variable )file(GENERATE OUTPUT output_file <INPUT input_file|CONTENT input_content> )
WRITE kirjoittaa viestin tiedostoon nimeltä ’tiedostonimi’. Se korvaa tiedoston, jos se on jo olemassa, ja luo tiedoston, jos sitä ei ole olemassa. (Jos tiedosto on build input, käytä configure_file toupdate tiedostoa vain, kun sen sisältö muuttuu.)
APPEND kirjoittaa viestin samaan tiedostoon kuin WRITE, paitsi että se liittää sen tiedoston loppuun
READ lukee tiedoston sisällön ja tallentaa sen muuttujaan.Se alkaa annetun offset ja lukea jopa numytes. Jos argumentti HEX annetaan, binääridata muunnetaan heksadesimaaliesitykseksi ja tämä tallennetaan muuttujaan.
MD5, SHA1, SHA224, SHA256, SHA384 ja SHA512 laskevat akryptografisen hash-tiedoston sisällöstä.
merkkijonot jäsentävät tiedostosta luettelon ASCII-merkkijonoista ja tallentavat sen muuttujaan. Tiedoston binääridataa ei huomioida. Carriage return (CR) – merkkejä ei oteta huomioon. Se toimii myös Intel Hex – ja MotorolaS-record-tiedostoille, jotka muunnetaan automaattisesti binaarimuotoon niitä lukiessa. Poista tämä käytöstä käyttämällä no_hex_conversionia.
LIMIT_COUNT asettaa palautettavien merkkijonojen enimmäismäärän. Limit_inputset syöttötiedostosta luettavien tavujen enimmäismäärä.LIMIT_OUTPUT asettaa ulostuloon tallennettavien tavujen enimmäismäärän. LENGTH_MINIMUM asettaa palautettavan merkkijonon vähimmäispituuden. Lyhyempiä merkkijonoja ei oteta huomioon. LENG_MAXIMUM asettaa palautettavan merkkijonon enimmäispituuden. Enää Jouset jaetaan stringsno pidempi kuin enimmäispituus. NEWLINE_CONSUME mahdollistaa uusien linjojen sisällyttämisen merkkijonoihin niiden päättämisen sijaan.
REGEX määrittää säännöllisen lausekkeen, jonka merkkijonon on vastattava bereturned-lauseketta. Tyypillinen käyttö
file(STRINGS myfile.txt myfile)
tallentaa muuttujan ”myfile” luettelon, jossa jokainen kohde on viiva syötetiedostosta.
GLOB luo listan kaikista globbingexpressioneja vastaavista tiedostoista ja tallentaa ne muuttujaan. Globbing-lausekkeet ovat samanlaisia kuin säännölliset lausekkeet, mutta paljon yksinkertaisempia. Jos lausekkeelle määritellään suhteellinen lippu, tulokset palautetaan arelatiivipoluksi annetulle polulle. (Emme suosittele käyttämään GLOBIA keräämään lähdetiedostojen luetteloa lähdepuustasi. Jos nocmakelist.txt-tiedosto muuttuu, kun lähde lisätään tai poistetaan, generated build-järjestelmä ei voi tietää, milloin pyytää Cmakea uudistumaan.)
esimerkkejä pallomaisista lausekkeista ovat:
*.cxx - match all files with extension cxx*.vt? - match all files with extension vta,...,vtzf.txt - match files f3.txt, f4.txt, f5.txt
GLOB_RECURSE luo tavallisen globin kaltaisen luettelon, paitsi että se läpäisee kaikki täsmätyn hakemiston alikansiot ja täsmää tiedostot. Alihakemistot, jotka ovat symlinkkejä, ovat vain läpikäytäviä, jos SEURAA_SYMLINKS annetaan tai cmake policy CMP0009: ää ei aseteta uudeksi.Katso lisätietoja cmake-help-policy CMP0009: stä.
esimerkkejä rekursiivisesta globbingistä ovat:
/dir/*.py - match all python files in /dir and subdirectories
MAKE_DIRECTORY luo annetut hakemistot myös, jos niiden vanhempia kansioita ei ole vielä olemassa
RENAME siirtää tiedoston tai hakemiston tiedostojärjestelmässä, korvaten estimoinnin atomisesti.
REMOVE poistaa annetut tiedostot, myös alikansioissa
REMOVE_RECURSE poistaa annetut tiedostot ja hakemistot, myös tyhjät hakemistot
RELATIVE_PATH määrittää suhteellisen polun hakemistosta given-tiedostoon.
TO_CMAKE_PATH muuntaa polun cmake – tyyliseksi poluksi Unix / – ohjelmalla.Syöte voi olla yksittäinen polku tai järjestelmäpolku, kuten ”$ENV{PATH}”.Huomaa kaksinkertaiset lainausmerkit ENV-kutsun to_cmake_pathin ympärillä vain takesone-argumentti. Tämä komento muuntaa myös native listdelimiterit polkujen luettelolle, kuten polku – ympäristömuuttujalle.
TO_NATIVE_PATH toimii aivan kuten TO_CMAKE_PATH, mutta muuttuu acmake – tyylisestä polusta native path-tyyliseksi Windowsille ja / forunixille.
DOWNLOAD Lataa annetun URL-osoitteen annettuun tiedostoon. Jos loki var onmääritelty, latausloki laitetaan variin. Jos tila var onmääritelty, operaation tila merkitään var: iin. Statusis palasi pituuslistalla 2. Ensimmäinen elementti on operaation numeerinen palautusarvo ja toinen elementti on virheen string-arvo. 0 numeerinen virhe tarkoittaa, että toiminnassa ei ole virhettä. Jos AIKAKATKAISUAIKA on määritetty, operaatio aikakatkaisun jälkeen aikasekunteina, aika olisi määriteltävä kokonaislukuna. TheINACTIVITY_TIMEOUT määrittää kokonaislukumäärän sekunteja, joiden jälkeen operaatio päättyy. Jos expected_hash ALGO=arvo on määritetty, toiminto varmistaa, että ladatun tiedoston todellinen hajautus vastaa odotusarvoa, jolloingo on yksi MD5: stä, SHA1: stä, SHA224: stä, SHA256: sta, SHA384: stä tai SHA512: sta. Jos se ei vastaa, toiminto epäonnistuu virheellä. (”EXPECTED_MD5sum ”on lyhenne sanoista”EXPECTED_HASH MD5=sum”.) Jos SHOW_ progress on määritelty, edistymistiedot tulostetaan tilaviesteinä, kunnes operaatio on valmis. Https-URL-osoitteet CMake on rakennettavaopenssl: n kanssa. TLS / SSL-varmenteita ei tarkisteta oletusarvoisesti. SetTLS_VERIFY to ON tarkistaa varmenteet ja / tai käyttää EXPECTED_HASH tarkistaa ladattua Sisältöä. Aseta TLS_CAINFO määrittelemään customCertificate Authority-tiedosto. Jos jompaakumpaa TLS-vaihtoehtoa ei anneta Cmakewarkataan muuttujat CMAKE_TLS_VERIFY ja CMAKE_TLS_CAINFO.
UPLOAD lataa annetun tiedoston annettuun URL-osoitteeseen. Jos loki var on määritetty, latausloki laitetaan var-muotoon. Jos tila var onmääritelty, operaation tila merkitään var: iin. Statusis palasi pituuslistalla 2. Ensimmäinen elementti on operaation numeerinen palautusarvo ja toinen elementti on virheen string-arvo. 0 numeerinen virhe tarkoittaa, että toiminnassa ei ole virhettä. Jos AIKAKATKAISUAIKA on määritetty, operaatio aikakatkaisun jälkeen aikasekunteina, aika olisi määriteltävä kokonaislukuna. TheINACTIVITY_TIMEOUT määrittää kokonaislukumäärän sekunteja, joiden jälkeen operaatio päättyy. Jos show_ progress on määritetty, edistymistiedot tulostetaan statussanomina, kunnes toiminto on valmis.
aikaleima kirjoittaa merkkijonoesityksen tiedostonimen muutosajasta muuttujaksi.
jos komennolla ei saada aikaleimamuuttujaa, jää tyhjälle merkkijonolle ””.
katso lisätietoja merkkijonon aikaleiman alikomennosta.
tiedosto () – komento tarjoaa myös kopiointi-ja ASENNUSTALLENTEET:
file(<COPY|INSTALL> files... DESTINATION <dir> ] )
COPY signature kopioi tiedostoja, kansioita ja symlinkkejä adestination-kansioon. Suhteelliset syöttöpolut arvioidaan suhteessa nykyiseen lähdehakemistoon, ja suhteellinen kohde arvioidaan suhteessa nykyiseen rakentamishakemistoon. Copying tallentaa tulotiedoston aikaleimat ja optimoi tiedoston, jos se on olemassa kohteessa, jossa on sama aikaleima. Kopiointi säilyttää inputpermissions ellei eksplisiittisiä oikeuksia tai NO_SOURCE_PERMISSIONS aregiven (oletusarvo on USE_SOURCE_PERMISSIONS). Katso install(DIRECTORY) – komennosta käyttöoikeuksien, kuvion, REGEX-ja Excludeoptioiden dokumentointi.
INSTALL signature eroaa hieman kopiosta: se tulostaa statusmessageja, ja no_source_permissions on oletusarvo. Install () – komennon tuottamat asennuskomennot käyttävät tätä allekirjoitusta (sisäisessä käytössä on joitainundocumented-vaihtoehtoja).
GENERATE kirjoittaa <output_file>, jonka sisältö on<input_file>, tai <input_content>. Tuotos yleistetään <ehdon> sisällön perusteella. Tiedosto kirjoitetaan CMake generate-ajassa ja syöte voi sisältää generatorexpressions. < ehto>, <output_file> ja <input_file> voivat myös sisältää generaattorin lausekkeita. Ehto <> on arvioitava joko ” 0 ” tai ”1”. <output_file> on arvioitava yksilölliseen nimeen kaikissa kokoonpanoissa ja kaikkien tiedostojen(luo) invocaatioiden joukossa.