Compilar para macOS

Última actualización en Septiembre 8, 2022

Lee la guía general de compilación para obtener información sobre las dependencias necesarias para todas las plataformas. Esto incluirá las variables de entorno necesarias para personalizar la compilación. En este documento sólo encontrarás instrucciones específicas para macOS.

Prerrequisitos

CMake, OpenSSL, y NPM

Homebrew es un excelente gestor de paquetes para macOS. Él hace que la instalación de dependencias para Overte se simplifique.

brew install cmake openssl npm

Nota: Si lo necesitas, puedes descargar otras versiones de CMake desde Github.

Python 3

Descarga e instala Python 3.6.6 o superior desde aquí. Ejecute el script Update Shell Profile.command que se proporciona con el instalador.

macOS SDK

Necesitarás la versión 10.12 del SDK de macOS para la compilación, de lo contrario, es posible que se produzcan fallos u otros problemas imprevistos debido a la obsolescencia de OpenGL en macOS. Puedes obtener ese SDK desde aquí. Debes copiarlo en tu directorio SDK de Xcode, por ejemplo.

cp -rp ~/Downloads/MacOSX10.12.sdk /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/

OpenSSL

Suponiendo que ha instalado OpenSSL siguiendo las instrucciones anteriores de Homebrew , deberá configurar OPENSSL_ROOT_DIR para que CMake pueda encontrar sus instalaciones. Para OpenSSL instalado a través de Homebrew, configura OPENSSL_ROOT_DIR mediante export OPENSSL_ROOT_DIR=/usr/local/opt/openssl o añadiendo -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl a cmake.

Generar y Compilar

Puede seleccionar entre usar Unix Makefiles o Xcode.

Xcode

Puede pedirle a CMake que genere archivos de proyecto Xcode en lugar de Makefiles de Unix utilizando el parámetro -G Xcode después de CMake. Primero deberá seleccionar la instalación de Xcode en el terminal si aún no lo ha hecho.

sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer

cmake ../ -DCMAKE_OSX_SYSROOT="/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk" -DCMAKE_OSX_DEPLOYMENT_TARGET=10.12 -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl -G Xcode -DOSX_SDK=10.12  ..

Después de ejecutar CMake, dispondrá de los archivos make o del archivo de proyecto Xcode necesarios para compilar todos los componentes. Abra el archivo overte.xcodeproj, seleccione ALL_BUILD en el menú Producto > Esquema (o en el menú desplegable de destinos) y haga clic en Ejecutar.

Si la compilación se completa correctamente, habrá creado objetivos de compilación para todos los componentes ubicados en los directorios build/${target_name}/Debug.

make

Ejecutar CMake.

cmake -DCMAKE_OSX_SYSROOT="/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk" -DCMAKE_OSX_DEPLOYMENT_TARGET=10.12 -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl -DOSX_SDK=10.12  ..

Puede añadir -j4 para asignar más subprocesos a la compilación. El número indica el número de subprocesos, por ejemplo, 4.

Para empaquetar la instalación, puede ejecutar make package.

PREGUNTAS FRECUENTES

  1. Problema: Al ejecutar el esquema interface.app» desde Xcode se produce un fallo en Interface relacionado con libgl.

    1. Causa: El objetivo gl genera un binario llamado libgl. En su lugar, Xcode carga un elemento libGL.framework de macOS.

    2. Solución: En la configuración de destino de Xcode para libgl, configure la versión en 1.0.0.

  2. Problema: CMake indica que falta Python 3.

    1. Causa: CMake podría estar desactualizado.

    2. Solución: Intenta actualizar tu binario de CMake con el comando brew upgrade cmake o descargando y ejecutando un instalador de CMake más reciente, según cómo lo hayas instalado originalmente. Ten en cuenta las versiones recomendadas de CMake mencionadas anteriormente.