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.Luodaan hakemistoja, jotka eivät ole hakemistoja kohdassa <filename> määritetyllä polulla.

jos tiedosto on koostesyötte, 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> andreadista 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 varastoitavien 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(<HASH> <filename> <variable>)

laske kryptografinen hash <filename> sisällöstä ja säilytä se <variable>. Tuetut <HASH> algoritmin nimet ovat merkkijonon(<HASH>)komennon listaamia.

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. Tulokset tilataan sanakirjallisesti.

oletuksena GLOB luettelot 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 symlinks-linkkejä 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ä välillä <oldname><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. Virhe ei tule, jos agiven-tiedostoa ei ole olemassa.

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 kaksoislainausmerkkejä <path> ympärillä varmistuaksesi, että sitä käsitellään 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> tietylle <url>.

vaihtoehdot sekä DOWNLOAD että UPLOAD ovat:

INACTIVITY_TIMEOUT <seconds>

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

LOG <variable>

säilytä ihmisen luettavissa oleva loki muuttujasta.

SHOW_PROGRESS

tulosta edistymistiedot tilaviesteinä, kunnes operaatio on valmis.

STATUS <variable>

säilytä operaation tuloksena saatu tila muuttujaan.Status on ; erotettu lista pituudesta 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ä.

USERPWD <username>:<password>

Aseta käyttäjätunnus ja salasana käyttöön.

HTTPHEADER <HTTP-header>

HTTP-otsikko käyttöön. Suboption voidaan toistaa useita kertoja.

lisävaihtoehdot DOWNLOAD ovat:

EXPECTED_HASH ALGO=<value>

varmista, että ladatun sisällön hash vastaa odotusarvoa, jossaALGO on yksi file(<HASH>)tukemista algoritmeista.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 varmenteen Auktoriteettitiedosto 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 optioiden dokumentointi .

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

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

CONDITION <condition>

luo tulostetiedosto tietylle kokoonpanolle 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ä.Suhteellinen polku käsitellään suhteessa arvoonCMAKE_CURRENT_SOURCE_DIR. Katso politiikka CMP0070.

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.Suhteellinen polku (generaattorin lausekkeiden arvioinnin jälkeen) käsitellään suhteessa arvoon CMAKE_CURRENT_BINARY_DIR.Katso politiikka CMP0070.

on annettava tasan yksi CONTENT tai INPUT vaihtoehto. TiettyOUTPUT – tiedosto voidaan nimetä enintään yhdellä kutsulla file(GENERATE).Luotuja tiedostoja muokataan ja niiden aikaleimaa päivitetään myöhemmissä cmakeruneissa vain, jos niiden sisältöä muutetaan.

Huomaa myös, että file(GENERATE) ei luo tulostiedostoa ennen generointivaihetta. Tulostustiedostoa ei ole vielä kirjoitettu komennonfile(GENERATE) palatessa, se kirjoitetaan vasta projektin CMakeLists.txt tiedostojen käsittelyn jälkeen.

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 install(DIRECTORY) komento, joka koskee asiakirjojen dokumentointia, 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 asennuskoskriptit käyttävät tätä allekirjoitusta (sisäisessä käytössä on joitain paperittomia vaihtoehtoja).

file(LOCK <path> )

Lukitse kohdassa <path> määritelty tiedosto, jos ei ole DIRECTORY vaihtoehto läsnä ja tiedosto<path>/cmake.lock muutoin. 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 <variable>ja 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. Samantapaista logiikkaa sovelletaan DIRECTORY option-locking parent directory ei estä muita LOCK komentoja lukita anychild directory tai file.

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.