Red de conocimiento informático - Conocimiento informático - Cómo compilar Depot en el navegador Chrome

Cómo compilar Depot en el navegador Chrome

1) Comprender la organización del código.

El código fuente del navegador Chrome es muy grande, con varias herramientas y componentes en el directorio de inicio, cada uno de los cuales viene con el código fuente. El primer paso es familiarizarse con la estructura organizativa del código fuente, que se puede encontrar en http://src.chromium.org/svn/ incluidos los siguientes subdirectorios: lanzamiento y tronco. El primero es la versión oficial del. Código fuente del navegador Chrome publicado anteriormente. Este último es el código fuente más reciente. Dado que el código de las versiones es muy antiguo, no lo explicaré aquí y solo presentaré la estructura del tronco. Hay tres directorios importantes en el tronco: dps contiene el código de todos los componentes necesarios para compilar y ejecutar Chrome; src contiene el código de las herramientas del programa principal de Chrome, contiene el código fuente y zip para descargar y configurar herramientas de terceros necesarias para la compilación; , incluidas Dos herramientas importantes son svn y python, que presentaremos en detalle más adelante. Los cubriremos en detalle más adelante. Lo presentaré brevemente aquí por el momento, porque su estructura organizativa es relativamente responsable y se complementará y corregirá en el futuro.

2) Cómo descargar y sincronizar el código fuente.

Primero hablemos de la descarga:

1. La forma más sencilla es descargar el paquete comprimido del código fuente directamente desde el sitio web oficial de Chrome, la dirección es http://build.chromium .org/buildbot /archives/chromium_tarball.html.

2. O use svn para descargar desde el sitio web oficial de Chrome. O use svn para realizar la salida desde http://src.chromium.org/svn/trunk/src, lo que requiere que primero cree un directorio principal de código fuente local para descargar.

3. Otro método es utilizar la herramienta de implementación depot_tools proporcionada por Google. Aunque estos métodos pueden descargar el código fuente completo, la situación actual es: el navegador Chrome está compilado en base a Visual Stdio 2005. Si la compilación se completa con éxito, el archivo sln es naturalmente indispensable. El código fuente inicial contiene archivos sln listos para usar. . Contiene archivos sln y vcproject listos para usar, pero luego se modificaron y estos archivos se descartaron. Google desarrolló una herramienta de secuencia de comandos llamada GYP. Esta herramienta está escrita en Python y utiliza un conjunto de reglas personalizadas para generar varios archivos de proyecto. El Python crítico está incluido en depot_tools, por lo que no importa qué método utilice para descargar el código, debe descargar depot_tools para obtener los archivos de proyecto necesarios.

depot_tools se encuentra en http://src.chromium.org/svn/trunk/tools y consta de un directorio y un paquete comprimido zip.

3) Acerca del compilador

Como se mencionó anteriormente, el navegador Chrome usa Visual Stdio 2005 para la compilación. De acuerdo con las instrucciones en http://dev.chromium.org, debe realizar las siguientes operaciones para compilar normalmente

a. Instalar Visual Studio 2005.

Instalar Visual. Studio 2005 Service Packe 1.

c. Instale Visual Studio Hotfix 947315.

d. Si está utilizando el sistema Vista, también necesita instalar Visual Studio 2005 Service Packe 1 Update para. Windows Vista.

p>

e. Instalar el SDK de Windows 2008 Visual Studio 2008 no requiere este paso.

f. Configure el SDK de Windows 2008 para que 2008 SDK se convierta en la biblioteca de desarrollo preferida para ciertas características y funciones nuevas. Esto se hace yendo a Inicio -> Programas -> Microsoft Windows SDK v6.1 > Registro de Visual Studio > Herramienta de configuración del SDK de Windows y seleccionando el botón Actualizar. También puede configurar manualmente las rutas de inclusión y biblioteca en VS, y el efecto es el mismo.

2. Cómo configurar el archivo del proyecto

1. Si se utiliza depot_tools, el proceso desde la descarga del código hasta la generación de archivos sln se completará automáticamente. Los pasos específicos son

(1) Descargar depot_tools al almacenamiento local, suponiendo que esté ubicado en d:/depot_tools.

(2) Agregue d:/depot_tools a las variables de entorno del sistema.

(3) Cree un directorio raíz del código fuente sin espacios (se supone que es d:/chrome).

(4) Cambie el directorio actual a d:/chrome en la línea de comando.

(5) Ejecute el comando gclient config http://src.chromium.org/svn/trunk/src, primero descargará svn y python en d:/depot_tools/svn_tools/svn_tools/svn_tools/ svn_tools /svn_tools/svn_tools/svn_tools.

(6) Ejecute el comando gclient sync. Este comando llamará a svn para sincronizar el código fuente. Este es un proceso largo. Cuando todo esté hecho, todo el código fuente se guardará en d:/chrome. El código sin compilar es sobre 4G y el proceso será muy largo. El código fuente obtenido de esta manera ya contiene todos los archivos del proyecto y se puede abrir directamente.

Me gustaría enfatizar que gclient es en realidad un archivo por lotes que hace principalmente las siguientes cosas: primero, establecer variables de entorno, como el directorio raíz del código, el directorio raíz de la herramienta, etc. En segundo lugar, llama a win_tools, que también es un archivo por lotes. En segundo lugar, llama a win_tools.bat para descargar svn y python del servidor y, finalmente, llama a python.exe para analizar Chrome.gyp y generar todos los archivos del proyecto.

Otro punto a tener en cuenta es que el proceso de sincronización de gclient es muy largo. Según la línea de comando, puede ver que se deben sincronizar un total de 67 proyectos (no proyectos). período, puede haber muchos problemas, causa un error y sale del proceso, debe continuar llamando a la sincronización. Por ejemplo, cuando hay una falla en la red, svn entrará en hibernación varias veces y luego intentará nuevamente. Si falla varias veces, informará un error y saldrá del proceso. Si falla varias veces, informará un error y saldrá. También existe una situación en la que algunos subdirectorios no se pueden sincronizar debido a problemas de atributos. En este caso, puede sincronizar según las indicaciones. También hay un nuevo problema, los siguientes dos directorios "src/webkit/data/layout_tests/LayoutTests" y "src/third_party/WebKit/LayoutTests" y "src/third_party/WebKit/LayoutTests". LayoutTests "El código fuente se extrajo de src.webkit.org, pero hay un problema con este sitio web y el código no se puede extraer. Necesitamos bloquear estos dos directorios porque son códigos de prueba. Incluso si se descartan, No afectarán la compilación de todo el proyecto. El método consiste en abrir el baúl en el archivo .gclient.

Agregue el siguiente contenido allí

"custom_deps": {

"src/webkit/data/layout_tests/LayoutTests":None,

"src/third_party/ WebKit/LayoutTests".None,

},

Esto permitirá que svn complete la sincronización del código. Finalmente, gclient llamará a depot_tools/python_bin/python.exe en src/build/gyp_

chromium para obtener todos los archivos sln y vcproject.

2. Si no hay un archivo sln en el directorio de códigos cuando descarga el paquete de compresión de código o verifica el código, debe llamar a la línea de comando para ingresar al directorio raíz del código fuente y luego ejecutar el comando gclient runhooks --force El comando analizará directamente Chrome.gyp y generará un archivo sln.

Durante el proceso de descarga real, al principio usé TortoiseSVN para verificar el código fuente de http://src.chromium.org/svn/trunk/src, pero el código que obtuve fue solo unos pocos. cien megabytes después de ejecutar gclient. El archivo sln no se puede encontrar incluso después de ejecutar el comando runhooks --force. Se desconoce el motivo y no se recomienda. No he intentado descargar el código directamente desde el paquete comprimido, así que no sé si es posible. Por lo tanto, la forma más segura es utilizar depot_tools para implementar y procesar el código fuente.

Tres proyectos de compilación

Inicie Visual Studio 2005 y abra src/chrome/browser/chrome.sln, o abra src/build/all.sln, si abre chrome.sln, donde Contiene 480 elementos, mientras que all.sln contiene 507 elementos. 507 proyectos y algunos comentarios de compilación de 2009 mencionaron alrededor de 300 proyectos, lo que indica que el código de Chrome ha cambiado mucho. La compilación de toda la solución tarda 2 horas, según el entorno de hardware. Cuanto mayor sea la memoria, más rápida será. Se recomienda utilizar memoria 4G o mayor, Core 2 o 4 núcleos. Una vez completada la compilación, se dice que ocupará 30G de espacio. Los archivos compilados se encuentran en el directorio d:/chorme/chrome/debug o en el directorio d:/chorme/chrome/release.