Windows создает среду компиляции браузера Chrome

браузер Chrome

построить хром

После периода разведки и исследований я немного разобрался в новейшем методе изготовления хрома. В заключение, при сборке среды вы должны установить среду компиляции в строгом соответствии с требованиями к среде, установленными официальным Chromium.

Загрузка исходного кода должна решить проблему стены.Рекомендуется загружать исходный код, условно подключаясь к прокси-серверу, около 10G исходного кода.

Среда компилятора

  • Операционная система Win10 Enterprise 1709
  • Инструменты редактирования Visual Studio 2017 Community Free Edition
  • Память 16G
  • Размер диска 250G

Установить

Установить системные переменные среды

системная переменная ценность Примечание
PATH C:\src\depot_tools Каталог установки depot_tools перемещен на самый верх
DEPOT_TOOLS_WIN_TOOLCHAIN 0 Скажите depot_tools использовать вашу локально установленную версию Visual Studio (по умолчанию depot_tools попытается использовать сборку Google)
GYP_GENERATORS msvs-ninja,ninja Укажите инструмент сборки
GYP_MSVS_OVERRIDE_PATH E:\Program Files (x86)\MV2017 Каталог установки Visual Studio
GYP_DEFINES Chromium buildtype=Dev component=shared_library disable_nacl=1 полагаться

Процесс развертывания

Компания предоставляет выделенный VPN-канал, без необходимости решать проблему преодоления стены.

1. Установите инструменты Visual Studio 2017.

  • Настольная разработка с использованием C++
  • Разработка расширения Visalt Studio
  • [Один компонент] Windows 10 SDK (10.0.15063.0) для рабочего стола c++ [x86 и x64]
  • [Однокомпонентный] MFC и
  • Windows DriverKit (скачать и установить по ссылке)ссылка для скачивания

2. Получить код через инструмент depot_tools

  1. Выполните команду gclient для установки python + msysgit.
gclient

// 执行成功提示版本信息
python -v 
git
  1. Установить информацию о конфигурации git
git config --global user.name "My Name"
git config --global user.email "my-name@chromium.org"
git config --global core.autocrlf false
git config --global core.filemode false
git config --global branch.autosetuprebase always
  1. Создайте хром как каталог
mkdir chromium && cd chromium
  1. Запустите инструмент извлечения depot_tools, чтобы проверить код и его зависимости, и загрузите код (около 18 ГБ).
// 建议不要使用 fetch --no-history chromium 命令
// 获取全部代码包括git记录
fetch chromium

3. При необходимости измените версию тега ветки.

  1. получить теги
git fetch -t
git checkout -b <local-branch-name> tags/<tag name>

Пример:

https://chromium.googlesource.com/chromium/src.git/+refs 
git checkout -b <local-branch-name> tag的sha1值  
  1. Синхронизируйте подпроекты, извлеките зависимую библиотеку до требуемой версии в соответствии с конфигурацией в src\DEPS.Uri
gclient sync

обнаружен фатальный: ссылка не является деревом: webrtc при компиляции

// 用这个版本替换了DEPS文件中的版本
git checkout d68fcc42256f0f6483d562aa69531091560ff9f2 
gclient sync

4. Используйте инструмент сборки Gn для создания схемы компиляции

  1. Изменить схему компиляции
::启用official build  
::修改src\build\config\BUILDCONFIG.gn,将is_official_build的值改为true  
  
::去掉显示头文件的包含树  
::修改src\build\toolchain\win\BUILD.gn,将/showIncludes删除掉 
  1. Создать скрипт компиляции ниндзяGN конфигурация
cd src  
gn gen out/Default  
  1. Измените параметры компиляции ниндзя, такие как target_os="win", target_cpu="x64" и т. д.Ссылка на ссылку
gn args out/Default 


is_debug = false
symbol_level = 0
enable_nacl = false
target_cpu = "x64"
target_os = "win"
google_api_key = "AIzaSyBPsfyKutEqu_7liVtbYqrY7QKlYsd8xoU"
google_default_client_id = "1000406808719-ghvvdlf749dvc6cvvqpb9uqi9l66tg9d.apps.googleusercontent.com"
google_default_client_secret = "XWhKLxZGu1Q70PSB5ikSycTb"

5. Начать компиляцию

ninja -C out/Default chrome 

После примерно 10 часов компиляции, наконец, успешно скомпилирован первый браузер хрома.

Справочная документация