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, derALGO er en av MD5, 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/SSLsertifikater 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 1etter å 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_PERMISSIONSer 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.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert.