fil¶
filmanipuleringskommando.
file(WRITE <filename> <content>...)file(APPEND <filename> <content>...)
Skriv <content>
inn i en fil som heter <filename>
. Hvis filen ikke eksisterer, vil den bli opprettet. Hvis filen allerede finnes, vil WRITE
– modus overskrive den og APPEND
– modus vil legge til slutten.(Hvis filen er en build-inngang, bruker du kommandoen configure_file()
for å oppdatere filen bare når innholdet endres.)
file(READ <filename> <variable> )
Les innhold fra en fil som heter <filename>
og lagre den i en<variable>
. Eventuelt starte fra den gitte <offset>
andread høyst <max-in>
byte. Alternativet HEX
fører til at data konverteres til en heksadesimal representasjon (nyttig for binære data).
file(STRINGS <filename> <variable> )
Analyser EN liste OVER ASCII-strenger fra <filename>
og lagre den i<variable>
. Binære data i filen ignoreres. Linjeskift (\r
, CR) tegn ignoreres. Alternativene er:
LENGTH_MAXIMUM <max-len>
Vurder bare strenger av maksimalt en gitt lengde.
LENGTH_MINIMUM <min-len>
Vurder bare strenger av minst en gitt lengde.
LIMIT_COUNT <max-num>
Begrens antall distinkte strenger som skal trekkes ut.
LIMIT_INPUT <max-in>
Begrens antall inndatabyte som skal leses fra filen.
LIMIT_OUTPUT <max-out>
Begrens antall totale byte som skal lagres i <variable>
.
NEWLINE_CONSUME
Behandle linjeskift (\n
, LF) som en del av strenginnhold i stedet for å avslutte ved dem.
NO_HEX_CONVERSION
Intel Hex-og Motorola s-record-filer konverteres automatisk tilbinary mens du leser, med mindre dette alternativet er gitt.
REGEX <regex>
Vurder bare strenger som samsvarer med det gitte regulære uttrykket.
ENCODING <encoding-type>
Vurder strenger av en gitt koding. Foreløpig støttede kodinger er: UTF-8, utf-16LE, UTF-16BE, UTF-32LE, UTF-32BE. HVIS KODINGSALTERNATIVET ikke er oppgitt, og filen har Et Byteordremerke, VIL KODINGSALTERNATIVETVIL bli misligholdt for å respektere Byteordremerket.
for eksempel koden
file(STRINGS myfile.txt myfile)
lagrer en liste i variabelen myfile
der hvert element er en linjefra inngangsfilen.
file(<MD5|SHA1|SHA224|SHA256|SHA384|SHA512> <filename> <variable>)
Beregn en kryptografisk hash av innholdet i <filename>
oglagre det i en <variable>
.
file(GLOB <variable> )file(GLOB_RECURSE <variable> )
Generer en liste over filer som samsvarer med <globbing-expressions>
oglagre den inn i <variable>
. Globbing uttrykk ligner påvanlige uttrykk, men mye enklere. Hvis RELATIVE
flagg er spesifisert, vil resultatene bli returnert som relative baner til givenpath. Ingen bestemt rekkefølge av resultater er definert. Hvis rekkefølge er viktig dasort listen eksplisitt (f. eks. ved hjelp av kommandoen list(SORT)
).
som standard GLOB
lister kataloger-kataloger utelates i resultat hvis LIST_DIRECTORIES
er satt til false.
Merk
VI anbefaler ikke Å bruke GLOB til å samle en liste over kildefiler fraditt kildetre. Hvis Ingen CMakeLists.txt-fil endres når en kilde er lagt til eller fjernet, og det genererte byggesystemet kan ikke vite når toask CMake skal regenerere.
Eksempler på globbinguttrykk inkluderer:
*.cxx - match all files with extension cxx*.vt? - match all files with extension vta,...,vtzf.txt - match files f3.txt, f4.txt, f5.txt
den GLOB_RECURSE
modus vil krysse alle underkataloger av thematched katalog og matche filene. Undermapper som er symlinksare bare krysset hvis FOLLOW_SYMLINKS
er gitt eller policyCMP0009
er ikke satt til NEW
.
som standard GLOB_RECURSE
utelater kataloger fra resultatliste-innstillingLIST_DIRECTORIES
til true legger til kataloger i resultatlisten.Hvis FOLLOW_SYMLINKS
er angitt eller policy CMP0009
ikke er angitt til OLD
, behandler LIST_DIRECTORIES
symlinker som kataloger.
Eksempler på rekursiv globbing inkluderer:
/dir/*.py - match all python files in /dir and subdirectories
file(RENAME <oldname> <newname>)
Flytt en fil eller katalog i et filsystem fra <oldname>
til <newname>
, og erstatt målet atomisk.
file(REMOVE )file(REMOVE_RECURSE )
Fjern de oppgitte filene. Den REMOVE_RECURSE
modus vil fjerne gittfiler og kataloger, også ikke-tomme kataloger
file(MAKE_DIRECTORY )
Opprett de oppgitte katalogene og deres foreldre etter behov.
file(RELATIVE_PATH <variable> <directory> <file>)
Beregn den relative banen fra en <directory>
til en <file>
oglagre den i <variable>
.
file(TO_CMAKE_PATH "<path>" <variable>)file(TO_NATIVE_PATH "<path>" <variable>)
TO_CMAKE_PATH
– modusen konverterer en innfødt <path>
til en cmake-stylepath med fremoverstreker (/
). Inngangen kan være en enkelt bane eller asystem søkebane som $ENV{PATH}
. En søkebane vil bli konverterttil en cmake-stil liste atskilt med ;
tegn.
modusen TO_NATIVE_PATH
konverterer en cmake-stil <path>
til en nativepath med plattformspesifikke skråstreker (\
På Windows og /
andre steder).
bruk alltid doble anførselstegn rundt <path>
for å være sikker på at det behandles som et enkelt argument til denne kommandoen.
file(DOWNLOAD <url> <file> )file(UPLOAD <file> <url> )
modusen DOWNLOAD
laster ned den gitte <url>
til en lokal <file>
.Modusen UPLOAD
laster opp en lokal <file>
til en gitt <url>
.
Alternativer til både DOWNLOAD
og UPLOAD
er:
INACTIVITY_TIMEOUT <seconds>
Avslutt operasjonen etter en periode med inaktivitet.
LOG <variable>
Lagre en lesbar logg over operasjonen i en variabel.
SHOW_PROGRESS
Skriv ut fremdriftsinformasjon som statusmeldinger til operasjonen er fullført.
STATUS <variable>
Lagre resultatstatusen for operasjonen i en variabel.Statusen er en ;
separert liste med lengde 2.Det første elementet er den numeriske returverdien for operasjonen, og det andre elementet er en strengverdi for feilen.En numerisk feil 0
betyr ingen feil i operasjonen.
TIMEOUT <seconds>
Avslutt operasjonen etter at en gitt total tid er gått.
Flere alternativer til DOWNLOAD
er:
EXPECTED_HASH ALGO=<value>
Kontroller at hash for nedlastet innhold samsvarer med forventet verdi, der
ALGO
er en avMD5
,SHA1
,SHA224
,SHA256
,SHA384
, ellerSHA512
. Hvis det ikke samsvarer, mislykkes operasjonen med en feil.
EXPECTED_MD5 <value>
Historisk korthand for EXPECTED_HASH MD5=<value>
.
TLS_VERIFY <ON|OFF>
Angi Om serversertifikatet for https://
Url-Adresser skal verifiseres.Standard er å ikke bekrefte.
TLS_CAINFO <file>
Angi en egendefinert Sertifiseringsinstansfil for https://
Url-Adresser.
For https://
Urler CMake må bygges Med OpenSSL støtte. TLS/SSL
sertifikater er ikke merket som standard. Angi TLS_VERIFY
til ON
kontroller sertifikater og / eller bruk EXPECTED_HASH
for å bekrefte nedlastet innhold.Hvis verken TLS
alternativet er gitt CMake vil sjekke variablerCMAKE_TLS_VERIFY
og CMAKE_TLS_CAINFO
, henholdsvis.
file(TIMESTAMP <filename> <variable> )
Beregn en strengrepresentasjon av modifikasjonstiden for <filename>
og lagre den i <variable>
. Hvis kommandoen ikke kan hente atimestamp-variabelen, blir den satt til den tomme strengen (“”).
se kommandoen string(TIMESTAMP)
for dokumentasjon av alternativene <format>
og UTC
.
file(GENERATE OUTPUT output-file <INPUT input-file|CONTENT content> )
Generer en utdatafil for hver byggekonfigurasjon som støttes av gjeldendeCMake Generator
. Evaluergenerator expressions
fra inngangsinnholdet for å produsere utdatainnholdet. Alternativene er:
CONDITION <condition>
Generer utdatafilen for en bestemt konfigurasjon bare hvisbetingelsen er sant. Betingelsen må være enten 0
eller 1
etter å ha vurdert generatoruttrykk.
CONTENT <content>
Bruk innholdet gitt eksplisitt som input.
INPUT <input-file>
Bruk innholdet fra en gitt fil som input.
OUTPUT <output-file>
Angi navnet på utdatafilen som skal genereres. Bruk generatoruttrykk som $<CONFIG>
for å angi et konfigurasjonsspesifikt utdatafilnavn. Flere konfigurasjoner kan bare generere samme utdatafilhvis det genererte innholdet er identisk. Ellers må <output-file>
evalueres til et unikt navn for hver konfigurasjon.
Nøyaktig ett CONTENT
eller INPUT
alternativ må gis. En spesifikkOUTPUT
fil kan navngis ved høyst en påkalling av file(GENERATE)
.Genererte filer er endret på påfølgende cmake kjører bare hvis deres contentis endret.
file(<COPY|INSTALL> <files>... DESTINATION <dir> ] )
signaturen COPY
kopierer filer, kataloger og symlinker til adestination-mappen. Relative inndatabaner evalueres med respectto gjeldende kilde katalogen, og en relativ mål isevaluated med hensyn til gjeldende bygge katalogen. Copyingpreserves input fil tidsstempler, og optimaliserer ut en fil hvis det existsat målet med samme tidsstempel. Kopiering bevarer inputpermissions med mindre eksplisitte tillatelser eller NO_SOURCE_PERMISSIONS
er gitt (standard er USE_SOURCE_PERMISSIONS
).
se kommandoen install(DIRECTORY)
for dokumentasjon av tillatelser, FILES_MATCHING
, PATTERN
, REGEX
, og EXCLUDE
alternativer. Kopiering kataloger bevarer structureof deres innhold selv om alternativene brukes til å velge et delsett offiles.
signaturen INSTALL
er litt forskjellig fra COPY
: det skrives ut statusmeldinger (avhengig av CMAKE_INSTALL_MESSAGE
variabel), og NO_SOURCE_PERMISSIONS
er standard.Installasjonsskript generert av kommandoen install()
bruk denne signaturen (med noen udokumenterte alternativer for intern bruk).
file(LOCK <path> )
Lås en fil spesifisert av <path>
hvis nei DIRECTORY
alternativ present og fil<path>/cmake.lock
ellers. Filen vil bli låst for omfang definert av alternativetGUARD
(standardverdien er PROCESS
). RELEASE
alternativet kan brukeså låse opp filen eksplisitt. Hvis alternativet TIMEOUT
ikke er angitt CMake willwait til lås lykkes eller til fatal feil oppstår. Hvis TIMEOUT
er satt til0
lås vil bli prøvd en gang og resultatet vil bli rapportert umiddelbart. HvisTIMEOUT
ikke er 0
CMake vil prøve å låse filen for perioden speciedby <seconds>
verdi. Eventuelle feil vil bli tolket som dødelig hvis det ikke er noe alternativRESULT_VARIABLE
. Ellers vil resultatet bli lagret i <variable>
og vil være 0
på suksess eller feilmelding ved feil.
merk at lås er rådgivende – det er ingen garanti for at andre prosesser vil respektere denne låsen, dvs. lås synkroniser to Eller flere CMake-forekomster som deler noen modifiserbare ressurser. Lignende logikk som brukes på DIRECTORY
tilvalg-låsing av overordnet katalog hindrer ikke andre LOCK
kommandoer for å låse anychild-katalog eller-fil.
Det Er ikke tillatt Å prøve å låse filen to ganger. Eventuelle mellomliggende kataloger ogfil selv vil bli opprettet hvis de ikke eksisterer. GUARD
og TIMEOUT
alternativer ignorert på RELEASE
operasjon.