построить хром
После периода разведки и исследований я немного разобрался в новейшем методе изготовления хрома. В заключение, при сборке среды вы должны установить среду компиляции в строгом соответствии с требованиями к среде, установленными официальным Chromium.
Загрузка исходного кода должна решить проблему стены.Рекомендуется загружать исходный код, условно подключаясь к прокси-серверу, около 10G исходного кода.
Среда компилятора
- Операционная система Win10 Enterprise 1709
- Инструменты редактирования Visual Studio 2017 Community Free Edition
- Память 16G
- Размер диска 250G
Установить
- Инструменты редактирования Visual Studio 2017
- WINDOWS SDK 10
- Комплект драйверов Windows для комплекта драйверов Windows 10 (1709)
- инструменты depot_toolsссылка для скачивания
Установить системные переменные среды
системная переменная | ценность | Примечание |
---|---|---|
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
- Выполните команду gclient для установки python + msysgit.
gclient
// 执行成功提示版本信息
python -v
git
- Установить информацию о конфигурации 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
- Создайте хром как каталог
mkdir chromium && cd chromium
- Запустите инструмент извлечения depot_tools, чтобы проверить код и его зависимости, и загрузите код (около 18 ГБ).
// 建议不要使用 fetch --no-history chromium 命令
// 获取全部代码包括git记录
fetch chromium
3. При необходимости измените версию тега ветки.
- получить теги
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值
- Синхронизируйте подпроекты, извлеките зависимую библиотеку до требуемой версии в соответствии с конфигурацией в src\DEPS.Uri
gclient sync
обнаружен фатальный: ссылка не является деревом: webrtc при компиляции
// 用这个版本替换了DEPS文件中的版本
git checkout d68fcc42256f0f6483d562aa69531091560ff9f2
gclient sync
4. Используйте инструмент сборки Gn для создания схемы компиляции
- Изменить схему компиляции
::启用official build
::修改src\build\config\BUILDCONFIG.gn,将is_official_build的值改为true
::去掉显示头文件的包含树
::修改src\build\toolchain\win\BUILD.gn,将/showIncludes删除掉
- Создать скрипт компиляции ниндзяGN конфигурация
cd src
gn gen out/Default
- Измените параметры компиляции ниндзя, такие как 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 часов компиляции, наконец, успешно скомпилирован первый браузер хрома.