file command

File manipulation command.

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> )

WRITE zapíše zprávu do souboru s názvem „filename“. Itoverwrites soubor, pokud již existuje, a vytvoří soubor, pokud itdoes neexistuje. (V případě, že soubor je sestavení vstup, použijte configure_file tupdate soubor pouze tehdy, když se změní jeho obsah.)

APPEND zapíše zprávu do souboru stejného jako WRITE, kromě toho, že ji odešle na konec souboru

READ přečte obsah souboru a uloží jej do proměnné.Začne v daném offsetu a přečte až numBytes. Pokud je zadán HEX, binární data budou převedena nahexadecimální reprezentaci a ta bude uložena v proměnné.

MD5, SHA1, SHA224, SHA256, SHA384 a SHA512 vypočítá akryptografický hash obsahu souboru.

řetězce analyzují seznam ASCII řetězců ze souboru a uloží je do proměnné. Binární data v souboru jsou ignorována. Znaky Carriage return (CR) jsou ignorovány. Funguje také pro Intel Hex a MotorolaS-nahrávací soubory, které jsou automaticky převedeny na binární formátpři jejich čtení. Zakažte to pomocí NO_HEX_CONVERSION.

LIMIT_COUNT nastaví maximální počet řetězců, které se mají vrátit. LIMIT_INPUTsets maximální počet bajtů číst ze vstupního souboru.LIMIT_OUTPUT nastavuje maximální počet bajtů pro uložení do outputvariable. LENGTH_MINIMUM nastavuje minimální délku řetězce na návrat. Kratší řetězce jsou ignorovány. LENGTH_MAXIMUM nastavuje maximální délku řetězce, který se má vrátit. Delší řetězce jsou rozděleny do řetězcůne delší než maximální délka. NEWLINE_CONSUME umožňuje, aby nové řádky byly zahrnuty do řetězců místo jejich ukončení.

REGEX určuje regulární výraz, který musí řetězec odpovídat bereturned. Typické použití

file(STRINGS myfile.txt myfile)

uloží seznam do proměnné „myfile“, ve které je každá položka řádkemze vstupního souboru.

GLOB vygeneruje seznam všech souborů, které odpovídají globbingexpressions a uloží je do proměnné. Globbingové výrazy jsoupodobné regulárním výrazům, ale mnohem jednodušší. Pokud je relativní příznak určen pro výraz, výsledky budou vráceny jako arelativní cesta k dané cestě. (Nedoporučujeme používat GLOBSBÍRAT seznam zdrojových souborů ze zdrojového stromu. Pokud noCMakeLists.soubor txt se změní, když je zdroj přidán nebo odebrán, pak generovaný systém sestavení nemůže vědět, kdy požádat CMake o regeneraci.)

příklady globbingových výrazů zahrnují:

*.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 vygeneruje seznam podobný pravidelnému GLOB, exceptit bude procházet všechny podadresáře odpovídajícího adresáře andmatch soubory. Podadresáře, které jsou symlinks jsou pouze traversedif FOLLOW_SYMLINKS je uveden nebo cmake politika CMP0009 není nastaven na nový.Viz cmake-help-policy CMP0009 pro více informací.

příklady rekurzivního globbingu zahrnují:

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

MAKE_DIRECTORY vytvoří dané adresáře, také pokud jejich parentdirectories ještě neexistují

přejmenování přesune soubor nebo adresář v souborovém systému a atomicky nahradí cílení.

REMOVE odstraní dané soubory, také v podadresářích

REMOVE_RECURSE odstraní dané soubory a adresáře, alsonon-prázdné adresáře

RELATIVE_PATH určí relativní cestu z adresáře do daného souboru.

TO_CMAKE_PATH převede cestu do cmake stylu cesty s unix /.Vstup může být jedna cesta nebo systémová cesta jako “ $ENV{PATH}“.Všimněte si dvojitých uvozovek kolem volání ENV TO_CMAKE_PATH pouze takesone argument. Tento příkaz také převede nativní listdelimitery pro seznam cest, jako je proměnná prostředí PATH.

TO_NATIVE_PATH funguje stejně jako TO_CMAKE_PATH, ale převede z cesty stylu acmake do stylu nativní cesty pro windows a / forUNIX.

DOWNLOAD stáhne danou adresu URL do daného souboru. Pokud je protokol var specifikován, bude do var vložen protokol stahování. Pokud je stav VARSPECIFIKOVANÝ stav operace bude vložen do var. Sošky se vrátily v seznamu délky 2. První prvek je číselná hodnota pro operaci a druhý prvek je řetězec pro chybu. Číselná chyba 0 znamená, že nedošlo k chyběoperace. Je-li zadán časový limit, bude operace timeoutpo časových sekundách by měl být čas zadán jako celé číslo. TheINACTIVITY_TIMEOUT určuje celočíselný počet sekund inaktivity, po kterém by měla operace skončit. IfEXPECTED_HASH ALGO=value je zadán, operace ověří, že skutečný hash staženého souboru odpovídá očekávané hodnotě, kde je algo jedním z MD5, SHA1, SHA224, SHA256, SHA384 nebo SHA512. Pokud se neshoduje, operace selže s chybou. („EXPECTED_MD5sum „je zkratka pro“EXPECTED_HASH MD5=sum“.) Pokud je SHOW_PROGRESS specifikován, informace o průběhu budou vytištěny jako zprávy o stavu, dokud nebude operace dokončena. Pro https URL musí být CMake postavens OpenSSL. Certifikáty TLS / SSL nejsou ve výchozím nastavení kontrolovány. SetTLS_VERIFY to ON pro kontrolu certifikátů a / nebo použití EXPECTED_HASH toverify stažený obsah. Nastavte TLS_CAINFO pro zadání souboru oprávnění customCertificate. Pokud není zadána žádná volba TLS CMakewill zkontroluje proměnné CMAKE_TLS_VERIFY a CMAKE_TLS_CAINFO.

UPLOAD nahraje daný soubor na danou adresu URL. Pokud je protokol var specifikován, bude do varu vložen protokol nahrání. Pokud je stav VARSPECIFIKOVANÝ stav operace bude vložen do var. Sošky se vrátily v seznamu délky 2. První prvek je číselná hodnota pro operaci a druhý prvek je řetězec pro chybu. Číselná chyba 0 znamená, že nedošlo k chyběoperace. Je-li zadán časový limit, bude operace timeoutpo časových sekundách by měl být čas zadán jako celé číslo. TheINACTIVITY_TIMEOUT určuje celočíselný počet sekund inaktivity, po kterém by měla operace skončit. IfSHOW_PROGRESS je zadán, informace o průběhu budou vytištěny asstatus zprávy, dokud operace je dokončena.

TIMESTAMP zapíše reprezentaci řetězce modifikace timeof souboru proměnné.

v případě, že příkaz nebude schopen získat proměnnou časového razítka, bude nastavena na prázdný řetězec „“.

více informací naleznete v dokumentaci k PODVÝPISU časového razítka řetězce.

příkaz file() také poskytuje podpisy kopírování a instalace:

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

kopírovat podpis kopíruje soubory, adresáře a symbolické odkazy do složky adestination. Relativní vstupní cesty jsou vyhodnoceny s ohledem na aktuální zdrojový adresář a relativní cíl je vyhodnocen s ohledem na aktuální adresář sestavení. Copyingpreserves vstupní soubor časová razítka, a optimalizuje se soubor, pokud existsat cíl se stejným časovým razítkem. Kopírování zachovává inputpermissions pokud explicitní oprávnění nebo NO_SOURCE_PERMISSIONS aregiven (výchozí je USE_SOURCE_PERMISSIONS). Dokumentaci oprávnění, vzoru, regulárního výrazu a EXCLUDEoptions naleznete v příkazu install(DIRECTORY).

podpis instalace se mírně liší od kopie: vytiskne statusmessages a NO_SOURCE_PERMISSIONS je výchozí. Instalační skriptygenerované příkazem install() použijte tento podpis (s některými možnostmi pro interní použití).

generovat zapíše <output_file> s obsahem z<input_file>, nebo z <input_content>. Výstup je generovánpodmíněně na základě obsahu podmínky <>. Soubor je napsán v čase generování CMake a vstup může obsahovat generaratorexpressions. Podmínka < >, <output_file> a <input_file> může také obsahovat generátorové výrazy. Podmínka <> musí vyhodnotit buď ‚0‘ nebo ‚1‘. <output_file> musí vyhodnotit na jedinečný nameamong všechny konfigurace a mezi všemi vyvolání souboru(generovat).

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.