Información general sobre la generación del programa

Última actualización el 2025-03-17

Guías de generación específicas para el sistema operativo

Dependencias

  • git: >= 1.6

  • CMake: 3.9 (o superior a 3.x.x)

  • Conan: 2.x

  • Python: 3.6 o superior

  • Node.JS: >= 12.13.1 LTS

    • Utilizado para construir la consola-servidor, JSDoc, y la consola de autocompletado de scripts.

Dependencias de Conan

La mayoría de nuestras dependencias se obtienen y construyen automáticamente usando Conan. Consulte el archivo conanfile.py para obtener una lista completa de las dependencias.

CMake

Overte utiliza CMake para generar archivos de compilación y archivos de proyecto para su plataforma.

Conan

Overte utiliza conan para descargar y construir dependencias. Conan se puede descargar desde aquí: https://conan.io/downloads

Consulte el archivo conanfile.py para obtener una lista completa de las dependencias.

La construcción de las dependencias puede ser larga y los archivos resultantes se almacenarán en tu directorio personal. Para moverlos a una ubicación diferente, puede establecer la variable CONAN_HOME a cualquier carpeta donde desee instalar las dependencias.

Linux:

export CONAN_HOME=/path/to/directory

Windows:

set CONAN_HOME=/path/to/directory

Donde /ruta/a/directorio es la ruta al directorio donde desea que se almacenen los archivos de compilación.

Generando los archivos de compilación

Posibles variables de entorno

// The Interface will have a custom default home and startup location.
PRELOADED_STARTUP_LOCATION=Location/IP/URL
// The Interface will have a custom default script whitelist, comma separated, no spaces.
// This will also activate the whitelist on Interface's first run.
PRELOADED_SCRIPT_WHITELIST=ListOfEntries

// Code-signing environment variables must be set during runtime of CMake AND globally when the signing takes place.
HF_PFX_FILE=Path to certificate
HF_PFX_PASSPHRASE=Passphrase for certificate

// Determine if to utilize testing or stable directory services URLs
USE_STABLE_GLOBAL_SERVICES=1
BUILD_GLOBAL_SERVICES=STABLE

Posible variables CMake

// The URL to post the dump to.
OVERTE_BACKTRACE_URL
// The identifying tag of the release.
OVERTE_BACKTRACE_TOKEN

// The release version, e.g., 2021.3.2. For PR builds the PR number, e.g. 577.
// Not used for nightlies and development builds.
OVERTE_RELEASE_NUMBER
// The build commit, e.g., use a Git hash for the most recent commit in the branch - fd6973b.
OVERTE_GIT_COMMIT_SHORT

// The type of release.
OVERTE_RELEASE_TYPE=PRODUCTION|PR|NIGHTLY|DEV

Generar Archivos

conan install . -s build_type=Release -b missing -of build
cmake --preset conan-release

Si CMake te da el mismo mensaje de error después de que falle la compilación, intenta eliminar CMakeCache.txt.

Encontrando dependencias

Lo siguiente aplica para las dependencias que no se puedan obtener con Conan.

Puede modificar la búsqueda de módulos de CMake apuntando e la versión correcta de las dependencias. Para ello configurar una de las siguientes tres variables.

En los ejemplos siguientes, la variable $NAME se sustituiría por el nombre de la dependencia en mayúsculas, y $name se sustituiría por el nombre de la dependencia en minúsculas (por ejemplo: OPENSSL_ROOT_DIR, openssl).

  • $NAME_ROOT_DIR - pasa esta variable a Cmake con la bandera -DNAME_ROOT_DIR= para generar los archivos de compilación

  • $NAME_ROOT_DIR - configura esta variable en ENV

  • HIFI_LIB_DIR - configura esta variable en ENV para apuntar al directorio lib de Overte, debe contener un nombre de directorio '$name'

Componentes Opcionales

Opciones de Compilación

Se pueden utilizar las siguientes opciones de compilación al ejecutar CMake

  • OVERTE_BUILD_CLIENT

  • OVERTE_BUILD_SERVER

  • OVERTE_BUILD_TESTS

  • OVERTE_BUILD_TOOLS

Opciones de Compilación del Desarrollador

  • OVERTE_RENDERING_BACKEND

  • OVERTE_DISABLE_QML

Dispositivos

Puede soportar dispositivos de entrada/salida externos como Leap Motion, MIDI, etc. añadiendo cada SDK en la ruta de construcción. Consulte el archivo readme disponible en cada carpeta de dispositivo en interface/external/ para la explicación detallada de los requisitos para utilizar el dispositivo.