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.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, derALGO er en av algoritmene som støttes av file(<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/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 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 1etter å 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_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 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 TIMEOUTignoreres på operasjonen RELEASE.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert.