Lumberyard
Guía del usuario (Version 1.21)

Uso de archivos uber

Los archivos uber combinan varios archivos C y CPP en una sola unidad de compilación, lo cual permite reducir el impacto de las operaciones de entrada/salida en el tiempo de compilación y acelerar el tiempo de creación.

El código de los archivos uber debe cumplir las siguientes normas de codificación:

  • No puede haber estática global en el espacio de nombres global.

  • No puede haber declaraciones globales de "uso del espacio de nombres".

Los trabajos de compilación de Waf incluyen archivos de las listas de archivos *.waf. Estos archivos tienen el siguiente formato:

{ "<uber_file>": { "<source_filter_name>": [ "file1.h", "file1.cpp" ] } }

Los valores válidos para <uber_file> son:

  • none: los archivos de esta lista no se pueden usar en los archivos uber. Si desea que su módulo utilice encabezados compilados previamente, tiene que incluirlos en esta lista.

  • auto: los archivos de esta lista se combinan en módulos que Waf optimiza para el tiempo de compilación. Los archivos que se combinan automáticamente se ordenan por ruta absoluta y, a continuación, se combinan hasta que se alcanza la ruta del tamaño del archivo. La combinación debe ser determinista teniendo en cuenta los mismos archivos de entrada y el límite de tamaño de archivo.

    Los límites del tamaño del archivo varían en función de la compilación:

    • 200K: valor sugerido para compilar de manera remota con Incredibuild.

    • 300K: configuración predeterminada y sugerida para compilación local utilizando un SSD.

    • 400-500K: sugerencia para compilación con un HDD.

    Puede especificar el tamaño de archivo actualizando el valor uber_file_size en el archivo user_settings o ejecutando el siguiente comando: --uber-file-size.

  • somefilename.cpp: los archivos de esta lista se combinan en somefilename.cpp. Esta acción es útil cuando haya archivos que solo se puedan combinar de forma conjunta o cuando desee combinar código específico de la plataforma.

La mayoría de las listas de archivos waf deberían incluir una sección none con el encabezado compilado previamente y una sección auto con todo lo demás.

Configuración de Waf

Para ayudarle a obtener los tiempos de compilación más adecuados, utilice lo siguiente:

  • use_uber_files = True

  • max_parallel_link = 4

  • use_incredibuild = True

  • incredibuild_max_cores = 128

En esta página: