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.Eventuelle kataloger i banen spesifisert av <filename>
som ikke eksisterer, vil bli opprettet.
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. Vognretur (\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 med 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 strenginnholdi 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(<HASH> <filename> <variable>)
Beregn en kryptografisk hash av innholdet i <filename>
oglagre det i en <variable>
. De støttede algoritmenavnene <HASH>
er de som er oppført av strengen (<HASH>)kommandoen.
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 given banen. Resultatene vil bli bestilt leksikografisk.
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 standardGLOB_RECURSE
utelater kataloger fra resultatliste – innstilling LIST_DIRECTORIES
til true legger til kataloger i resultatlisten.Hvis FOLLOW_SYMLINKS
er angitt eller policy CMP0009
ikke er angitt tilOLD
, 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. Modus REMOVE_RECURSE
vil fjerne gittfiler og kataloger, også ikke-tomme kataloger. Ingen feil sendes ut hvis agiven-filen ikke eksisterer.
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>)
modusen TO_CMAKE_PATH
konverterer en innfødt <path>
til en cmake-stylepath med skråstreker (/
). 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 av 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.
USERPWD <username>:<password>
Angi brukernavn og passord for bruk.
HTTPHEADER <HTTP-header>
HTTP-header for operasjon. Suboption kan gjentas flere ganger.
Flere alternativer til DOWNLOAD
er:
EXPECTED_HASH ALGO=<value>
Kontroller at hash for nedlastet innhold samsvarer med forventet verdi, der
ALGO
er en av algoritmene som støttes avfile(<HASH>)
.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 variabler CMAKE_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 hvis betingelsen er sann. 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.En relativ bane behandles med hensyn til verdien avCMAKE_CURRENT_SOURCE_DIR
. Se policy CMP0070
.
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.En relativ bane (etter evaluering av generatoruttrykk) behandlesmed hensyn til verdien av CMAKE_CURRENT_BINARY_DIR
.Se policy CMP0070
.
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 og deres tidsstempel oppdatert på påfølgende cmakeruns bare hvis innholdet er endret.
Merk også at file(GENERATE)
ikke oppretter utdatafilen før generasjonsfasen. Utdatafilen er ennå ikke skrevet når kommandoen file(GENERATE)
returnerer, den er skrevet bare etter å ha behandlet allof et prosjekts CMakeLists.txt
filer.
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 printsstatus meldinger (underlagt 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. HvisTIMEOUT
er satt til 0
lås vil bli prøvd en gang og resultatet vil bli rapportert umiddelbart. Hvis TIMEOUT
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. Alternativene GUARD
og TIMEOUT
ignoreres på operasjonen RELEASE
.