fișier

comanda de manipulare a fișierelor.

file(WRITE filename "message to write"... )file(APPEND filename "message to write"... )file(READ filename variable )file(<MD5|SHA1|SHA224|SHA256|SHA384|SHA512> filename variable)file(STRINGS filename variable )file(GLOB variable ...)file(GLOB_RECURSE variable ...)file(RENAME <oldname> <newname>)file(REMOVE )file(REMOVE_RECURSE )file(MAKE_DIRECTORY )file(RELATIVE_PATH variable directory file)file(TO_CMAKE_PATH path result)file(TO_NATIVE_PATH path result)file(DOWNLOAD url file )file(UPLOAD filename url )file(TIMESTAMP filename variable )file(GENERATE OUTPUT output_file <INPUT input_file|CONTENT input_content> )

scrie va scrie un mesaj într-un fișier numit ‘nume de fișier’. Itoverwrites fișierul în cazul în care există deja, și creează fișierul în cazul în care itdoes nu există. (Dacă fișierul este o intrare de construire, utilizați configure_file toupdate fișierul numai atunci când conținutul său se schimbă.)

APPEND va scrie un mesaj într-un fișier la fel ca WRITE, cu excepția willappend-l la sfârșitul fișierului

READ va citi conținutul unui fișier și îl va stoca în variabilă.Acesta va începe de la compensarea dată și va citi până la numBytes. Dacăargument HEX este dat, datele binare vor fi convertite înreprezentare hexadecimală și aceasta va fi stocată în variabilă.

MD5, SHA1, SHA224, SHA256, SHA384 și SHA512 vor calcula hash acriptografic al conținutului unui fișier.

șirurile vor analiza o listă de șiruri ASCII dintr-un fișier și o vor stoca într-o variabilă. Datele binare din fișier sunt ignorate. Caracterele Carriage return (CR) sunt ignorate. Funcționează și pentru fișierele Intel Hex și MotorolaS-record, care sunt convertite automat în format binarcând le citiți. Dezactivați acest lucru folosind NO_HEX_CONVERSION.

LIMIT_COUNT setează numărul maxim de șiruri de returnat. Limit_inputsetează numărul maxim de octeți de citit din fișierul de intrare.LIMIT_OUTPUT stabilește numărul maxim de octeți pentru a stoca în outputvariable. LENGTH_MINIMUM setează lungimea minimă a unui șir toreturn. Șirurile mai scurte sunt ignorate. LENGTH_MAXIMUM setează lungimea maximă a unui șir pentru a reveni. Șirurile mai lungi sunt împărțite în șirurinu mai mult decât lungimea maximă. NEWLINE_CONSUME permite newlines tobe incluse în șiruri în loc de a le termina.

REGEX specifică o expresie regulată pe care un șir trebuie să o potrivească cu bereturned. Utilizare tipică

file(STRINGS myfile.txt myfile)

stochează o listă în variabila” myfile ” în care fiecare element este o liniedin fișierul de intrare.

GLOB va genera o listă a tuturor fișierelor care se potrivesc cu globbingexpressions și o va stoca în variabilă. Expresiile Globbing suntsimilar cu expresiile regulate, dar mult mai simplu. Dacă Pavilion relativă isspecified pentru o expresie, rezultatele vor fi returnate ca cale arelative la Calea dată. (Nu vă recomandăm să utilizați GLOBCOLECTAȚI o listă de fișiere sursă din arborele sursă. Dacă noCMakeLists.fișierul txt se modifică atunci când o sursă este adăugată sau eliminată, atunci sistemul de construire generalizat nu poate ști când să ceară CMake să se regenereze.)

Exemple de expresii globbing includ:

*.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 va genera o listă similară cu GLOB regulat, cu excepțiase va traversa toate subdirectoarele din Directorul potrivite șise potrivesc fișierele. Subdirectoarele care sunt legături simbolice sunt doar traversatedacă FOLLOW_SYMLINKS este dat sau politica cmake CMP0009 nu este setată la nou.Consultați cmake-help-policy CMP0009 pentru mai multe informații.

Exemple de globbing recursiv includ:

/dir/*.py - match all python files in /dir and subdirectories

MAKE_DIRECTORY va crea directoarele date, de asemenea, în cazul în care parentdirectories lor nu există încă

RENAME mută un fișier sau director într-un sistem de fișiere, înlocuind thedestination atomically.

REMOVE va elimina fișierele date, de asemenea, în subdirectoare

REMOVE_RECURSE va elimina fișierele și directoarele date, de asemeneadirectoarele fără gol

RELATIVE_PATH va determina calea relativă de la director la fișierul dat.

TO_CMAKE_PATH va converti calea într-o cale de stil cmake cu unix /.Intrarea poate fi o singură cale sau o cale de sistem ca „$ENV{PATH}”.Notă ghilimelele duble din jurul apelului ENV TO_CMAKE_PATH iau doar un argument. Această comandă va converti, de asemenea, listdelimiters native pentru o listă de căi, cum ar fi variabila de mediu PATH.

TO_NATIVE_PATH funcționează la fel ca TO_CMAKE_PATH, dar se va converti din calea stilului acmake în stilul căii native pentru windows și / forUNIX.

descărcare va descărca URL-ul dat în fișierul dat. Dacă LOG var estespecificat un jurnal al descărcării va fi pus în var. Dacă starea var estespecificat starea operațiunii va fi pus în var. Statusis a revenit într-o listă de lungime 2. Primul element este numericvaloarea returnării pentru operație, iar al doilea element este o valoare de șir pentru eroare. O eroare numerică 0 înseamnă nici o eroare înoperațiune. Dacă timpul de expirare este specificat, operațiunea va timeout after timp secunde, timp ar trebui să fie specificate ca un număr întreg. Inactivity_timeout specifică un număr întreg de secunde ofinactivity după care operația ar trebui să se încheie. IfEXPECTED_HASH ALGO = valoarea este specificată, operația va verifica că hash-ul real al fișierului descărcat se potrivește cu valoarea așteptată, unde ealgo este unul dintre MD5, SHA1, SHA224, SHA256, SHA384 sau SHA512. În cazul în carenu se potrivește, operația eșuează cu o eroare. („EXPECTED_MD5sum „este mână scurtă pentru”EXPECTED_HASH MD5=sum”.) Dacă SHOW_PROGRESS isspecified, informațiile despre progres vor fi tipărite ca mesaje de statuspână la finalizarea operației. Pentru adresele URL https, CMake trebuie construitcu OpenSSL. Certificatele TLS / SSL nu sunt verificate în mod implicit. SetTLS_VERIFY la ON pentru a verifica certificatele și / sau de a folosi EXPECTED_HASH toverify conținut descărcat. Setați TLS_CAINFO pentru a specifica un fișier de autoritate customCertificate. Dacă oricare opțiune TLS nu este dat CMakewill verifica variabilele CMAKE_TLS_VERIFY și CMAKE_TLS_CAINFO, respectiv.

UPLOAD va încărca fișierul dat la adresa URL dată. Dacă LOG var isspecified un jurnal de încărcare va fi pus în var. Dacă starea var estespecificat starea operațiunii va fi pus în var. Statusis a revenit într-o listă de lungime 2. Primul element este numericvaloarea returnării pentru operație, iar al doilea element este o valoare de șir pentru eroare. O eroare numerică 0 înseamnă nici o eroare înoperațiune. Dacă timpul de expirare este specificat, operațiunea va timeout after timp secunde, timp ar trebui să fie specificate ca un număr întreg. Inactivity_timeout specifică un număr întreg de secunde ofinactivity după care operația ar trebui să se încheie. IfSHOW_PROGRESS este specificat, informații progres vor fi tipărite asstatus mesaje până când operațiunea este completă.

TIMESTAMP va scrie o reprezentare șir de modificare timeof nume de fișier la variabilă.

în cazul în care comanda nu poate obține o variabilă timestamp va fi setată la șirul gol „”.

consultați documentația sub-comenzii string TIMESTAMP pentru detalii suplimentare.

comanda file() oferă, de asemenea, copierea și instalarea semnăturilor:

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

copia semnătura copiază fișiere, directoare și legături simbolice în folderul adestination. Căile de intrare Relative sunt evaluate cu respect față de directorul sursă curent, iar o destinație relativă este evaluată în raport cu directorul de construire curent. Copyingpreserves fișier de intrare timestamps, și optimizează un fișier în cazul în care existsat destinația cu același timestamp. Copierea păstrează inputpermissions excepția cazului în permisiuni explicite sau NO_SOURCE_PERMISSIONS aregiven (implicit este USE_SOURCE_PERMISSIONS). Consultați comanda instalare (director)pentru documentarea permisiunilor, modelului, REGEX și EXCLUDEoptions.

semnătura de instalare diferă ușor de copiere: imprimă statusmessages, iar NO_SOURCE_PERMISSIONS este implicit. Scripturi de instalaregenerate de comanda install () utilizați această semnătură (cu opțiuni undocumentate pentru uz intern).

GENERATE va scrie un<output_file> cu conținut dintr-un<input_file > sau din<input_content >. Rezultatul este generatîn mod condiționat pe baza conținutului condiției <>. Fișierul isscrise la CMake genera-timp și intrarea poate conține generatorexpressions. Condițiile < >,< output_file >și< input_file > pot, de asemenea, să conțină expresii ale generatorului. Condiția <> trebuie evaluată fie la ‘0’, fie la ‘1’. < output_file > trebuie să evalueze la un numeamamong unic toate configurațiile și între toate invocările de fișier(genera).

Lasă un răspuns

Adresa ta de email nu va fi publicată.