archivo¶

Comando de manipulación de archivos.

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 escribirá un mensaje en un archivo llamado ‘filename’. Sobrescribe el archivo si ya existe, y crea el archivo si no existe. (Si el archivo es una entrada de compilación, use configure_file para actualizar el archivo solo cuando su contenido cambie.)

APPEND escribirá un mensaje en un archivo igual que WRITE, excepto que lo añadirá al final del archivo

READ leerá el contenido de un archivo y lo almacenará en la variable.Comenzará en el desplazamiento dado y se leerá hasta entumecer. Si se da el hexadecimal de argumento, los datos binarios se convertirán en una representación asimétrica y esto se almacenará en la variable.

MD5, SHA1, SHA224, SHA256, SHA384 y SHA512 calculará unsal hash del contenido de un archivo.

Las cadenas analizarán una lista de cadenas ASCII de un archivo y las almacenarán en una variable. Los datos binarios en el archivo se ignoran. Los caracteres de retorno de carro(CR) se ignoran. También funciona para archivos de registro Intel Hex y MotorolaS, que se convierten automáticamente a formato binario al leerlos. Deshabilite esto usando NO_HEX_CONVERSIÓN.

LIMIT_COUNT establece el número máximo de cadenas a devolver. Limit_input establece el número máximo de bytes a leer del archivo de entrada.LIMIT_OUTPUT establece el número máximo de bytes a almacenar en la variable de salida. LENGTH_MINIMUM establece la longitud mínima de una cadena a la que se debe girar. Se ignoran las cuerdas más cortas. LENGTH_MAXIMUM establece la longitud máxima de una cadena a devolver. Las cadenas más largas se dividen en cadenas no más largas que la longitud máxima. NEWLINE_CONSUME permite incluir nuevas líneas en cadenas en lugar de terminarlas.

REGEX especifica una expresión regular que una cadena debe coincidir con bereturned. Uso típico

file(STRINGS myfile.txt myfile)

almacena una lista en la variable «myfile» en la que cada elemento es una línea del archivo de entrada.

GLOB generará una lista de todos los archivos que coincidan con las expresiones globbing y la almacenará en la variable. Las expresiones Globbing son similares a las expresiones regulares, pero mucho más simples. Si se especifica una bandera RELATIVA para una expresión, los resultados se devolverán como una ruta de acceso lativa a la ruta de acceso dada. (No recomendamos usar GLOB para recopilar una lista de archivos fuente de su árbol de fuentes. Si no hay listas.el archivo txt cambia cuando se agrega o elimina una fuente, entonces el sistema de compilación generado no puede saber cuándo pedirle a CMake que se regenere.)

Los ejemplos de expresiones globulares incluyen:

*.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 generará una lista similar al GLOB normal, excepto que recorrerá todos los subdirectorios del directorio coincidente y coincidirá con los archivos. Los subdirectorios que son enlaces simbólicos solo son traversedif se da FOLLOW_SYMLINKS o la política cmake CMP0009 no se establece en NUEVO.Consulte cmake-help-policy CMP0009 para obtener más información.

Los ejemplos de globbing recursivo incluyen:

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

MAKE_DIRECTORY creará los directorios dados, también si sus directorios de origen aún no existen

RENAME mueve un archivo o directorio dentro de un sistema de archivos, reemplazando la destino atómicamente.

REMOVE eliminará los archivos dados, también en subdirectorios

REMOVE_RECURSE eliminará los archivos y directorios dados, alsonon-empty directories

RELATIVE_PATH determinará la ruta relativa del directorio al archivo dado.

TO_CMAKE_PATH convertirá la ruta en una ruta de estilo cmake con unix/.La entrada puede ser una ruta única o una ruta de sistema como «ENV ENV{RUTA}».Note las comillas dobles alrededor de la llamada ENV TO_CMAKE_PATH solo toma un argumento. Este comando también convertirá los limitadores de lista nativos para una lista de rutas como la variable de entorno PATH.

TO_NATIVE_PATH funciona igual que TO_CMAKE_PATH, pero se convertirá de la ruta de estilo acmake al estilo de ruta nativo para windows y / forUNIX.

DOWNLOAD descargará la URL dada al archivo dado. Si se especifica LOG var, se pondrá un registro de la descarga en var. Si se especifica el estado var, el estado de la operación se pondrá en var. Las estatuas regresaban en una lista de longitud 2. El primer elemento es el valor de retorno numérico para la operación, y el segundo elemento es un valor de cadena para el error. Un error numérico 0 significa que no hay error en el funcionamiento. Si se especifica el tiempo de espera, la operación se agotará después de segundos de tiempo, el tiempo se debe especificar como un entero. Elinactivity_timeout especifica un número entero de segundos deinactividad después de los cuales la operación debe terminar. Si se especificaexpected_hash ALGO = value, la operación verificará que el hash real del archivo descargado coincida con el valor esperado, donde Algo es uno de MD5, SHA1, SHA224, SHA256, SHA384 o SHA512. Si no coincide, la operación falla con un error. («EXPECTED_MD5sum «es abreviado para»EXPECTED_HASH MD5=sum».) Si se especifica SHOW_PROGRESS, la información de progreso se imprimirá como mensajes de estado hasta que se complete la operación. Para URL https, CMake debe estar construido con OpenSSL. Los certificados TLS / SSL no se comprueban de forma predeterminada. Setts_verify a ON para comprobar certificados y / o usar EXPECTED_HASH para verificar el contenido descargado. Establezca TLS_CAINFO para especificar un archivo de autoridad de certificado personalizado. Si no se da ninguna de las opciones TLS, CMAKE_TLS_VERIFY y CMAKE_TLS_CAINFO verificarán las variables, respectivamente.

UPLOAD cargará el archivo dado a la URL dada. Si var de REGISTRO está especificado, se pondrá un registro de la carga en var. Si se especifica el estado var, el estado de la operación se pondrá en var. Las estatuas regresaban en una lista de longitud 2. El primer elemento es el valor de retorno numérico para la operación, y el segundo elemento es un valor de cadena para el error. Un error numérico 0 significa que no hay error en el funcionamiento. Si se especifica el tiempo de espera, la operación se agotará después de segundos de tiempo, el tiempo se debe especificar como un entero. Elinactivity_timeout especifica un número entero de segundos deinactividad después de los cuales la operación debe terminar. Si se especifica Show_progress, la información de progreso se imprimirá como mensajes de estado hasta que se complete la operación.

TIMESTAMP escribirá una representación de cadena del tiempo de modificación del nombre de archivo a la variable.

Si el comando no puede obtener una variable de marca de tiempo, se limitará a la cadena vacía»».

Consulte la documentación del sub-comando string TIMESTAMP para obtener más detalles.

El comando file() también proporciona firmas de COPIA e instalación:

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

La firma de copia copia archivos, directorios y enlaces simbólicos a la carpeta adestination. Las rutas de entrada relativas se evalúan con respecto al directorio de origen actual, y se evalúa un destino relativo con respecto al directorio de compilación actual. La copia conserva las marcas de tiempo del archivo de entrada y optimiza un archivo si existe en el destino con la misma marca de tiempo. La copia conserva las emisiones de entrada a menos que se otorguen permisos explícitos o NO_SOURCE_PERMISSIONS (el valor predeterminado es USE_SOURCE_PERMISSIONS). Consulte el comando install(DIRECTORIO) para obtener documentación de permisos, PATRONES, EXPRESIONES REGULARES y exclusiones.

La firma de instalación difiere ligeramente de COPY: imprime mensajes de estado, y NO_SOURCE_PERMISSIONS es el valor predeterminado. Scripts de instalacióngenerados por el comando install () use esta firma (con algunas opciones documentadas para uso interno).

GENERAR escribir un <output_file> con el contenido de un<input_file> o de <input_content>. La salida se genera condicionalmente en función del contenido de la condición <>. El archivo se escribe en tiempo de generación de CMake y la entrada puede contener expresiones generadoras. El <condición>, <output_file> y <input_file> puede alsocontain generador de expresiones. La condición < > debe evaluarse como » 0 » o «1». El < output_file> debe evaluarse a un nombre único en todas las configuraciones y entre todas las invocaciones de archivo (GENERAR).

Deja una respuesta

Tu dirección de correo electrónico no será publicada.