fil ~ ~ POS = TRUNC ~ ~ pos = headcomp

fil manipulation kommando.

file(WRITE <filename> <content>...)file(APPEND <filename> <content>...)

skriv <content>i en fil som heter <filename>. Om filen inte existerar kommer den att skapas. Om filen redan finns skrivs WRITE – läget över och APPEND – läget läggs till i slutet.(Om filen är en bygginmatning, använd kommandot configure_file() för att uppdatera filen endast när innehållet ändras.)

file(READ <filename> <variable> )

Läs innehåll från en fil som heter <filename>och lagra den i en<variable>. Eventuellt börja från den givna <offset> ochläs högst <max-in> byte. Alternativet HEX gör att data konverteras till en hexadecimal representation (användbar för binära data).

file(STRINGS <filename> <variable> )

tolka en lista över ASCII-strängar från <filename> och lagra den i<variable>. Binära data i filen ignoreras. Vagnretur (\r, CR) tecken ignoreras. Alternativen är:

LENGTH_MAXIMUM <max-len>

tänk bara på strängar av högst en viss längd.

LENGTH_MINIMUM <min-len>

tänk bara på strängar med minst en given längd.

LIMIT_COUNT <max-num>

begränsa antalet distinkta strängar som ska extraheras.

LIMIT_INPUT <max-in>

begränsa antalet inmatade Byte att läsa från filen.

LIMIT_OUTPUT <max-out>

begränsa antalet totala byte som ska lagras i <variable>.

NEWLINE_CONSUME

behandla newline-tecken (\n, LF) som en del av stränginnehålli stället för att avsluta dem.

NO_HEX_CONVERSION

Intel Hex-och Motorola S-record-filer konverteras automatiskt tillbinär medan du läser om inte detta alternativ ges.

REGEX <regex>

tänk bara på strängar som matchar det givna reguljära uttrycket.

ENCODING <encoding-type>

Tänk på strängar av en given kodning. För närvarande stöds kodningar är: UTF-8, UTF-16LE, UTF-16be, UTF-32le, UTF-32be. Om KODNINGSALTERNATIVET inte tillhandahålls och filen har ett Byte-Ordermärke, kommer KODNINGSALTERNATIVET att vara standard för att respektera Byte-Ordermärket.

till exempel koden

file(STRINGS myfile.txt myfile)

lagrar en lista i variabeln myfile där varje objekt är en radfrån indatafilen.

file(<MD5|SHA1|SHA224|SHA256|SHA384|SHA512> <filename> <variable>)

Beräkna en kryptografisk hash av innehållet i <filename> ochlagra den i en <variable>.

file(GLOB <variable> )file(GLOB_RECURSE <variable> )

skapa en lista över filer som matchar <globbing-expressions> ochlagra den i <variable>. Globbing uttryck liknarregelbundna uttryck, men mycket enklare. Om RELATIVE flagga anges kommer resultaten att returneras som relativa sökvägar till givenpath. Ingen specifik ordning av resultat definieras. Om ordning är viktig, såsortera listan explicit (t.ex. med kommandot list(SORT)).

som standard GLOB listor kataloger – kataloger utelämnas i resultatet OmLIST_DIRECTORIES är satt till false.

Obs

vi rekommenderar inte att du använder GLOB för att samla in en lista med källfiler från ditt källkodsträd. Om inga CMakeLists.txt-fil ändras när en källa isadded eller tas bort då den genererade byggsystem kan inte veta när toask CMake att regenerera.

exempel på globbing uttryck inkluderar:

*.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 – läget kommer att korsa alla underkataloger i denmatchade katalogen och matcha filerna. Underkataloger som är symlinksare endast korsas om FOLLOW_SYMLINKS ges eller policyCMP0009är inte satt till NEW.

som standard GLOB_RECURSE utelämnar kataloger från resultatlistan – inställningLIST_DIRECTORIES till true lägger kataloger till resultatlistan.Om FOLLOW_SYMLINKS anges eller policyCMP0009 inte är inställd på OLD, behandlar LIST_DIRECTORIES symboliska länkar som kataloger.

exempel på rekursiv globbing inkluderar:

/dir/*.py - match all python files in /dir and subdirectories
file(RENAME <oldname> <newname>)

flytta en fil eller katalog i ett filsystem från <oldname> till<newname> och ersätt destinationen atomiskt.

file(REMOVE )file(REMOVE_RECURSE )

ta bort de givna filerna. REMOVE_RECURSE – läget tar bort givenfiles och kataloger, även icke-tomma kataloger

file(MAKE_DIRECTORY )

skapa de givna katalogerna och deras föräldrar efter behov.

file(RELATIVE_PATH <variable> <directory> <file>)

beräkna den relativa sökvägen från en <directory> till en <file>ochlagra den i <variable>.

file(TO_CMAKE_PATH "<path>" <variable>)file(TO_NATIVE_PATH "<path>" <variable>)

TO_CMAKE_PATH – läget konverterar en inbyggd <path>till en cmake-stylepath med snedstreck framåt (/). Ingången kan vara en enda sökväg eller ensystemsökväg som $ENV{PATH}. En sökväg konverterastill en cmake-stillista separerad med ; tecken.

TO_NATIVE_PATH-läget konverterar en cmake-stil<path> till en nativepath med plattformsspecifika snedstreck (\ på Windows och / någon annanstans).

använd alltid dubbla citat runt <path> för att vara säker på att det behandlas som ett enda argument för detta kommando.

file(DOWNLOAD <url> <file> )file(UPLOAD <file> <url> )

läget DOWNLOAD hämtar den givna <url>till en lokal <file>.Läget UPLOAD laddar upp en lokal <file>till en given <url>.

alternativ till både DOWNLOAD och UPLOAD är:

INACTIVITY_TIMEOUT <seconds>

avsluta operationen efter en period av inaktivitet.

LOG <variable>

lagra en läsbar logg över operationen i en variabel.

SHOW_PROGRESS

Skriv ut framstegsinformation som statusmeddelanden tills åtgärden är klar.

STATUS <variable>

lagra den resulterande statusen för operationen i en variabel.Statusen är en ; Separerad lista med längd 2.Det första elementet är det numeriska returvärdet för operationen,och det andra elementet är ett strängvärde för felet.Ett 0 numeriskt fel betyder inget fel i operationen.

TIMEOUT <seconds>

avsluta operationen efter att en viss total tid har gått.

ytterligare alternativ till DOWNLOAD är:

EXPECTED_HASH ALGO=<value>

kontrollera att den nedladdade innehållshash matchar det förväntade värdet, därALGO är en av MD5, SHA1, SHA224, SHA256, SHA384, ellerSHA512. Om det inte matchar misslyckas operationen med ett fel.

EXPECTED_MD5 <value>

Historisk kort hand för EXPECTED_HASH MD5=<value>.

TLS_VERIFY <ON|OFF>

ange om servercertifikatet för https:// webbadresser ska verifieras.Standard är att inte verifiera.

TLS_CAINFO <file>

ange en anpassad Certifikatutfärdarfil för https:// webbadresser.

för https:// webbadresser CMake måste byggas med OpenSSL stöd. TLS/SSLcertifikat är inte markerade som standard. Ställ in TLS_VERIFYON tocheck-certifikat och/eller använd EXPECTED_HASH för att verifiera nedladdat innehåll.Om inget av alternativen TLS ges kommer cmake att kontrollera variablernaCMAKE_TLS_VERIFY respektive CMAKE_TLS_CAINFO.

file(TIMESTAMP <filename> <variable> )

Beräkna en strängrepresentation av modifieringstiden för <filename>och lagra den i <variable>. Skulle kommandot inte kunna få atimestamp variabel kommer att ställas in på den tomma strängen (“”).

se kommandot string(TIMESTAMP) för dokumentation av alternativen <format> och UTC.

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

generera en utdatafil för varje byggkonfiguration som stöds av den aktuellaCMake Generator. Utvärderagenerator expressions från inmatningsinnehållet för att producera utmatningsinnehållet. Alternativen är:

CONDITION <condition>

generera utdatafilen för en viss konfiguration endast omvillkoret är sant. Villkoret måste vara antingen 0 eller 1 efter utvärdering av generatoruttryck.

CONTENT <content>

använd innehållet som uttryckligen anges som inmatning.

INPUT <input-file>

använd innehållet från en viss fil som indata.

OUTPUT <output-file>

ange namnet på utdatafilen som ska genereras. Använd generatoruttrycksom $<CONFIG> för att ange ett konfigurationsspecifikt utdatafilnamn. Flera konfigurationer kan endast generera samma utdatafilom det genererade innehållet är identiskt. Annars måste <output-file> utvärdera till ett unikt namn för varje konfiguration.

exakt ett CONTENT eller INPUT alternativ måste ges. En specifik OUTPUT – fil kan namnges med högst en anrop av file(GENERATE).Genererade filer ändras på efterföljande cmake körs endast om deras contentis ändras.

file(<COPY|INSTALL> <files>... DESTINATION <dir> ] )

signaturen COPY kopierar filer, kataloger och symboliska länkar till mappen adestination. Relativa inmatningsvägar utvärderas med avseende på den aktuella källkatalogen och en relativ destination utvärderas med avseende på den aktuella byggkatalogen. Kopiering bevarar inmatningsfilens tidsstämplar och optimerar ut en fil om den existsa på destinationen med samma tidsstämpel. Kopiering bevarar inputpermissions om inte uttryckliga behörigheter eller NO_SOURCE_PERMISSIONSges (standard är USE_SOURCE_PERMISSIONS).

se kommandot install(DIRECTORY) för dokumentation av tillstånd, FILES_MATCHING, PATTERN, REGEX, och EXCLUDE alternativ. Kopiera kataloger bevarar strukturen av deras innehåll även om alternativ används för att välja en delmängd avfiler.

INSTALL signaturen skiljer sig något från COPY: den skriver ut statusmeddelanden (med förbehåll för variabeln CMAKE_INSTALL_MESSAGE) och NO_SOURCE_PERMISSIONS är standard.Installationsskript som genereras av kommandot install() använd denna signatur (med några odokumenterade alternativ för internt bruk).

file(LOCK <path> )

lås en fil som anges av <path> om inget DIRECTORY alternativ finns och fil<path>/cmake.lock annars. Filen kommer att låsas för omfattning definieras av GUARD alternativ (Standardvärdet är PROCESS). RELEASE alternativet kan användasatt låsa upp filen uttryckligen. Om alternativet TIMEOUT inte anges kommer CMake att vänta tills låset lyckas eller tills ett allvarligt fel uppstår. OmTIMEOUT är inställd på 0 lås kommer att prövas en gång och resultatet kommer att rapporteras omedelbart. OmTIMEOUT inte är 0 kommer CMake att försöka låsa filen för den angivna perioden med <seconds> värde. Eventuella fel kommer att tolkas som dödliga om det inte finns någotRESULT_VARIABLE alternativ. Annars kommer resultatet att lagras i <variable>och kommer att vara 0 vid framgång eller felmeddelande vid fel.

Observera att låset är rådgivande – det finns ingen garanti för att andra processer kommer attrespektera detta lås, dvs. lås synkronisera två eller flera cmake-instanser delavissa modifierbara resurser. Liknande logik tillämpas på DIRECTORY alternativ-låsning överordnad katalog hindrar inte andra LOCK kommandon för att låsa anychild katalog eller fil.

att försöka låsa filen två gånger är inte tillåtet. Eventuella mellanliggande kataloger ochfilen själv kommer att skapas om de inte existerar. GUARD och TIMEOUTalternativ ignoreras vid RELEASE operation.

Lämna ett svar

Din e-postadress kommer inte publiceras.