file¶

File manipulation command.

file(WRITE <filename> <content>...)file(APPEND <filename> <content>...)

Kirjoita <content> tiedostoon nimeltä <filename>. Jos tiedostoa ei ole olemassa, se luodaan. Jos tiedosto on jo olemassa, WRITEtila korvaa sen ja APPEND tila liitetään loppuun.(Jos tiedosto on build input, käytä configure_file() – komentoa päivittääksesi tiedoston vasta, kun sen sisältö muuttuu.)

file(READ <filename> <variable> )

Lue sisältö <filename> – nimisestä tiedostosta ja säilytä se<variable>. Vaihtoehtoisesti aloitetaan annetusta <offset> andread enintään <max-in> tavua. Valitsin HEX saa tiedon muuntumaan heksadesimaaliesitykseksi (hyödyllinen binääridatalle).

file(STRINGS <filename> <variable> )

jäsennä luettelo ASCII-kielistä <filename> ja säilytä se<variable>. Tiedoston binääridataa ei huomioida. Vaunun palautusmerkkejä (\r, CR) ei huomioida. Vaihtoehdot ovat:

LENGTH_MAXIMUM <max-len>

harkitse vain Jouset enintään tietyn pituuden.

LENGTH_MINIMUM <min-len>

tarkastellaan vain merkkijonoja, joiden pituus on vähintään tietty.

LIMIT_COUNT <max-num>

Rajoita irrotettavien erillisten merkkijonojen määrää.

LIMIT_INPUT <max-in>

Rajoita tiedostosta luettavien syötettävien tavujen määrää.

LIMIT_OUTPUT <max-out>

Rajoita tallennettavien tavujen kokonaismäärää <variable>.

NEWLINE_CONSUME

käsittele newline-merkkejä (\n, LF) osana merkkijonosisältöä niiden päättämisen sijaan.

NO_HEX_CONVERSION

Intel Hex – ja Motorola s-record-tiedostot muunnetaan automaattisesti lukiessa, ellei tätä vaihtoehtoa anneta.

REGEX <regex>

tarkastellaan vain merkkijonoja, jotka vastaavat annettua säännöllistä lauseketta.

ENCODING <encoding-type>

tarkastellaan tietyn koodauksen merkkijonoja. Tällä hetkellä tuetut koodaukset ovat:UTF-8, UTF-16LE, UTF-16BE, UTF-32LE, UTF-32BE. Jos KOODAUSVAIHTOEHTOA ei ole annettu ja tiedostossa on Tavujärjestysmerkki, KOODAUSVAIHTOEHTO asetetaan oletusarvoisesti Tavujärjestysmerkin mukaiseksi.

esimerkiksi koodi

file(STRINGS myfile.txt myfile)

tallentaa muuttujaan myfile luettelon, jossa jokainen kohde on line syötetiedoston sisällä.

file(<MD5|SHA1|SHA224|SHA256|SHA384|SHA512> <filename> <variable>)

laske kryptografinen hash <filename> sisällöstä ja säilytä se <variable>.

file(GLOB <variable> )file(GLOB_RECURSE <variable> )

Luo luettelo tiedostoista, jotka vastaavat <globbing-expressions> ja siirrä se <variable>: ään. Globbing-lausekkeet ovat samankaltaisiasäännölliset lausekkeet, mutta paljon yksinkertaisempia. Jos RELATIVE lippu on määritelty, tulokset palautetaan givenpolun suhteellisina polkuina. Mitään tiettyä tulosten järjestystä ei ole määritelty. Jos järjestys on tärkeä, merkitse luettelo eksplisiittisesti (esim. komennolla list(SORT)).

oletusarvoisesti GLOB luetteloi hakemistot – hakemistot jätetään tuloksesta pois, josLIST_DIRECTORIES on asetettu epätosiksi.

Huomautus

emme suosittele globin käyttöä lähdetiedostojen luettelon keräämiseen lähdepuustasi. Jos ei Cmakelisteja.txt tiedosto muuttuu, kun lähde onlisätty tai poistettu sitten luotu rakentaa järjestelmä ei voi tietää, milloin pyytää CMake uudistua.

esimerkkejä pallottavista 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 – tila kulkee kaikkien matched-kansion alikansioiden läpi ja täsmää tiedostoihin. Symlinks – alikansiot kulkevat vain, jos FOLLOW_SYMLINKS on annettu tai käytäntöäCMP0009 ei ole asetettu arvoon NEW.

oletuksena GLOB_RECURSE jättää hakemistot tulosluettelosta-asetusLIST_DIRECTORIES tosi lisää hakemistoja tulosluetteloon.Jos FOLLOW_SYMLINKS annetaan tai käytäntöä CMP0009 ei aseteta arvoonOLD, LIST_DIRECTORIES käsittelee symlinkkejä hakemistoina.

esimerkkejä rekursiivisesta globbingistä ovat:

/dir/*.py - match all python files in /dir and subdirectories
file(RENAME <oldname> <newname>)

Siirrä tiedosto tai kansio tiedostojärjestelmän sisällä arvosta <oldname> arvoon<newname> ja korvaa kohde atomisesti.

file(REMOVE )file(REMOVE_RECURSE )

Poista annetut tiedostot. REMOVE_RECURSE – tila poistaa givenfiles-ja hakemistot, myös ei-tyhjät hakemistot

file(MAKE_DIRECTORY )

luo annetut hakemistot ja niiden vanhemmat tarpeen mukaan.

file(RELATIVE_PATH <variable> <directory> <file>)

laske suhteellinen polku a <directory> a <file> ja säilytä se <variable>.

file(TO_CMAKE_PATH "<path>" <variable>)file(TO_NATIVE_PATH "<path>" <variable>)

TO_CMAKE_PATH – moodi muuttaa natiivin <path> cmake-stylepatiksi eteenpäin viistävillä (/). Syöte voi olla yksittäinen polku tai järjestelmähakupolku, kuten $ENV{PATH}. Hakupolku muunnetaan cmake-tyyliseksi listaksi, jota erottaa ; merkkiä.

TO_NATIVE_PATH-tila muuntaa cmake-tyylisen <path> nativepathiksi alustakohtaisilla viilloilla (\ Windowsissa ja / muualla).

käytä aina kaksinkertaisia lainausmerkkejä <path> ympärillä varmistuaksesi, että sitä kohdellaan yhtenä argumenttina tälle komennolle.

file(DOWNLOAD <url> <file> )file(UPLOAD <file> <url> )

DOWNLOAD – tila Lataa annetun <url> paikalliselle <file>.UPLOAD – moodi lataa paikallisen <file> annettuun <url>.

vaihtoehdot sekä DOWNLOAD että UPLOAD ovat:

INACTIVITY_TIMEOUT <seconds>

keskeytä toiminta käyttämättömyyden jälkeen.

LOG <variable>

Tallenna muuttujaan ihmisen luettavissa oleva loki operaatiosta.

SHOW_PROGRESS

tulosta edistymistiedot tilaviesteinä, kunnes operaatio on valmis.

STATUS <variable>

säilytä operaation tuloksena saatu tila muuttujaan.Status on ; erotettu luettelo pituuksista 2.Ensimmäinen elementti on operaation numeerinen palautusarvo ja toinen elementti on merkkijonon arvo virheelle.0 numeerinen virhe tarkoittaa, ettei operaatiossa ole virhettä.

TIMEOUT <seconds>

Lopeta toiminta tietyn kokonaisajan päätyttyä.

lisävaihtoehdot DOWNLOAD ovat:

EXPECTED_HASH ALGO=<value>

varmista, että ladattu sisältö hash vastaa odotusarvoa, jossaALGO on yksi MD5, SHA1, SHA224, SHA256, SHA384, taiSHA512. Jos se ei täsmää, toiminto epäonnistuu virheellä.

EXPECTED_MD5 <value>

Historiallinen lyhytkäsi EXPECTED_HASH MD5=<value>.

TLS_VERIFY <ON|OFF>

Määritä, tarkistetaanko palvelinvarmenne https:// URL-osoitteille.Oletusarvo on olla vahvistamatta.

TLS_CAINFO <file>

Määritä oma Varmenneviranomaistiedosto https:// URL-osoitteille.

https:// URL-osoitteet CMake on rakennettava OpenSSL-tuella. TLS/SSLvarmenteita ei tarkisteta oletusarvoisesti. Aseta TLS_VERIFY ON tocheck-varmenteet ja / tai käytä EXPECTED_HASH ladatun sisällön tarkistamiseen.Jos valitsinta TLS ei anneta, CMake tarkistaa muuttujatCMAKE_TLS_VERIFY ja CMAKE_TLS_CAINFO.

file(TIMESTAMP <filename> <variable> )

laske merkkijono esitys muutosaika <filename>ja tallentaa sen <variable>. Jos komentoa ei voi saada atimestamp-muuttuja asetetaan tyhjään merkkijonoon (“”).

Katso string(TIMESTAMP) – komento <format> ja UTC – vaihtoehtojen dokumentointiin.

file(GENERATE OUTPUT output-file <INPUT input-file|CONTENT content> )

luo tulostustiedosto jokaiselle rakentamisasetukselle, jota nykyinenCMake Generatortukee. Arvioigenerator expressionssyötesisällöstä tuotosisällön tuottamiseksi. Vaihtoehdot ovat:

CONDITION <condition>

luo tulostiedosto tietylle määritykselle vain, jos ehto on tosi. Ehdon on oltava joko 0 tai 1generaattorin lausekkeiden arvioinnin jälkeen.

CONTENT <content>

käytä suoraan annettua sisältöä syötteenä.

INPUT <input-file>

käytä tietyn tiedoston sisältöä syötteenä.

OUTPUT <output-file>

Määritä tuotettavan tiedoston nimi. Käytä generaattorin ekspressiota, kuten $<CONFIG>, määrittääksesi asetuskohtaisen lähtötiedoston nimen. Useat kokoonpanot voivat luoda saman tulostustiedoston vain, jos luotu sisältö on identtinen. Muussa tapauksessa <output-file>: n on arvioitava kullekin konfiguraatiolle yksilöllinen nimi.

on annettava tasan yksi CONTENT tai INPUT vaihtoehto. TiettyOUTPUT – tiedosto voidaan nimetä enintään yhdellä kutsulla file(GENERATE).Luotuja tiedostoja muokataan myöhemmissä cmake-suorituksissa vain, jos niiden sisältö muuttuu.

file(<COPY|INSTALL> <files>... DESTINATION <dir> ] )

COPY allekirjoitus 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ää inputpermissiot, ellei ole annettu nimenomaisia oikeuksia tai NO_SOURCE_PERMISSIONS(oletusarvo on USE_SOURCE_PERMISSIONS).

Katso komennosta install(DIRECTORY) asiakirjojen dokumentointi, FILES_MATCHING, PATTERN, REGEX, jaEXCLUDE vaihtoehdot. Hakemistojen kopiointi säilyttää niiden sisällön rakenteen, vaikka tiedostojen osajoukon valintaan käytettäisiinkin vaihtoehtoja.

INSTALL allekirjoitus eroaa hieman COPY: se tulostaa statussanomia (CMAKE_INSTALL_MESSAGE muuttujan mukaan),ja NO_SOURCE_PERMISSIONS on oletusarvo.Komennolla install() luodut asennus skriptit käyttävät tätä allekirjoitusta (sisäisessä käytössä on joitain paperittomia vaihtoehtoja).

file(LOCK <path> )

Lukitse <path> määritetty tiedosto, jos ei ole DIRECTORY vaihtoehto ja tiedosto<path>/cmake.lock muuten. Tiedosto lukitaanGUARD – valitsimen määrittelemälle soveltamisalalle (oletusarvo on PROCESS). RELEASE valintaa voidaan käyttää tiedoston avaamiseen eksplisiittisesti. Jos vaihtoehtoa TIMEOUT ei ole määritelty, CMake odottaa, kunnes lukko onnistuu tai kunnes tapahtuu kohtalokas virhe. Jos TIMEOUT on asetettu arvoon0, lukitusta kokeillaan kerran ja tuloksesta ilmoitetaan välittömästi. JosTIMEOUT ei ole 0 CMake yrittää lukita tiedoston <seconds> arvolla määritellyltä ajanjaksolta. Mahdolliset virheet tulkitaan kohtalokkaiksi, josRESULT_VARIABLE – vaihtoehtoa ei ole. Muussa tapauksessa tulos tallennetaan numeroon <variable>ja se on 0 onnistumisesta tai virheilmoitus epäonnistumisesta.

huomaa, että lukitus on neuvoa – antava-ei ole takeita siitä, että muut prosessit vastaavat tätä lukkoa, eli Lukko synkronoi kaksi tai useampia CMake-tapauksia jakaen joitakin muokattavia resursseja. Samantapainen logiikka, jota sovelletaan DIRECTORY option lukitseminen ylähakemistoon, ei estä muita LOCK komentoja lukitsemasta anychild-hakemistoa tai-tiedostoa.

tiedoston lukitsemista kahdesti ei sallita. Kaikki välihakemistot ja tiedosto itsessään luodaan, jos niitä ei ole olemassa. GUARD ja TIMEOUTvaihtoehtoja ei huomioida RELEASE operaatiossa.

Vastaa

Sähköpostiosoitettasi ei julkaista.