Cómo utilizar CCache para acelerar la compilación de Cocos2d-x
Nota: Los siguientes pasos sólo se aplican a Mac OS X.
Instalación
Usamos homebrew:
brew install --HEAD ccache
o instalamos desde el código fuente:
git clone /jrosdahl/ccache.git cd ccache ./autogen.sh ./configure make make install cp /usr/local/bin/ccache /usr/bin/
Nota: La ruta de instalación predeterminada es /usr/local/bin, necesitamos copiar ccache a /usr/bin/; de lo contrario, ndk-build no lo encontrará e informará un error.
Error
Si el terminal informa un error que dice que no se puede encontrar el encabezado automático, esto significa que primero debemos instalar automake:
brew install automake
Pero si se informa un error que dice que no se puede encontrar, prepare, entonces debemos instalar cerveza primero:
ruby -e "$( curl -fsSL /Homebrew/homebrew/go/install)"
/developer/android/android-ndk -r9b
Abrir archivo: Abrir archivo: $NDK_ROOT/build/core/default-build-commands.mk
Busque lo siguiente sección y agregue ccache de la siguiente manera:
ifneq ($(findstring ccc-analyzer,$(CC)),) TARGET_CC = $(CC) else TARGET_CC = ccache $(TOOLCHAIN_PREFIX)gcc #Agregar soporte de ccache endif TARGET_ CFLAGS = TARGET_CONLYFLAGS = ifneq ($(findstring c++ -analyzer,$(CXX)),) TARGET_CXX = $(CXX) else TARGET_CXX = ccache $(TOOLCHAIN_PREFIX)g++ #Agregar soporte de ccache endif TARGET_CXXFLAGS = $(TARGET_CFLAGS) -fno- excepciones -fno-rtti
Compile el juego cocos2d-x
Seleccione el directorio raíz de cocos2d-x y ejecute:
python build/android-build.py - p 10 cpp-tests
Cree una nueva ventana de terminal y ejecute:
ccache -s
Este comando imprimirá el estado de ccache de la siguiente manera:
directorio de caché/Usuarios / heliclei/.ccache configuración primaria /Users/heliclei/.ccache/ccache.conf configuración secundaria (solo lectura) /usr/local/etc/ccache.conf caché hit (directo) 13588 caché hit (preprocesado) 11145 falta de caché 696 se solicitó enlace 1 se solicitó preprocesamiento 14 error de preprocesador 1 no se puede usar el encabezado precompilado 129 no hay archivo de entrada 5 archivos en caché 32222 tamaño de caché 5,4 GB tamaño máximo de caché 30,0 GB
Si la tasa de aciertos de caché y los tamaños de caché son todos 0, significa que ccache no se está ejecutando y debemos verificar la configuración nuevamente.
Implementar en Xcode
Configurar el entorno ccache para Xcode (5.1) es un poco engorroso. De hecho, puedo llamar a ccache, pero no parece mejorar la velocidad de compilación.
Si tiene una buena solución a este problema, envíe un PR para este tutorial en github. Sin embargo, veamos cómo configurarlo:
Primero, agreguemos 2 macros personalizadas (macros definidas por el usuario) a las opciones de compilación de cocos2d_libs:
CC=$ (SOURCE_ROOT ) /.../tools/xcode_ccache_wrapper LDPLUSPLUS=$(DT_TOOLCHAIN_DIR)/usr/bin/clang++
Luego necesitamos crear un script llamado xcode_ccache _wrapper:
#! /bin/bash export CCACHE_CPP2=yes export CCACHE_LOGFILE=~/Desktop/ccache.log exec /usr/local/bin/ccache /Applications/Xcode.app/Contents/ Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang - Qunused-arguments "$@"
¡La configuración está completa y podemos compilar fácilmente en Xcode!
Abre ccache.log para ver el estado de funcionamiento de la caché.
Pero el problema es que después de agregar el caché, el Xcocde de mi mbp todavía no mejora la velocidad de compilación. Es posible que el script que utilicé sea incorrecto, así que si estás leyendo esta sección y sabes dónde radica mi problema, envía un PR en github para corregir mis errores y beneficiar a todos los desarrolladores.