windows搭建chromium瀏覽器編譯環境

cjjmem發表於2017-12-29

構建chromium

經過一段時間探索研究,對chromium最新的構建方式稍有了解。總結得出,在搭建環境的時候,必須嚴格依照chromium官方給出的環境要求,安裝編譯環境。

原始碼下載必須解決牆的問題,建議有條件的通過連線代理伺服器下載,大概10G原始碼。

編譯環境

  • 作業系統 win10 企業版 1709
  • 編輯工具 Visual Studio 2017 社群免費版
  • 記憶體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通道,無需解決翻牆問題。

一.安裝Visual Studio 2017 工具

  • 使用C++的桌面開發
  • Visalt Studio 擴充套件開發
  • [單個元件]Windows 10 SDK (10.0.15063.0) for Desktop c++ [x86 and x64]
  • [單個組建] MFC 和
  • Windows DriverKit(通過連結下載安裝)下載地址

二.通過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. 建立chromium為目錄
mkdir chromium && cd chromium
複製程式碼
  1. 執行該fetch工具depot_tools檢查程式碼及其依賴關係,下載程式碼(大約18G左右)
// 建議不要使用 fetch --no-history chromium 命令
// 獲取全部程式碼包括git記錄
fetch chromium
複製程式碼

三.根據需要切換分支tag版本

  1. 獲取tags
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. 同步子projects,根據src\DEPS內的配置將依賴的庫checkout到需要的revision Uri
gclient sync
複製程式碼

在編譯時遇到fatal: reference is not a tree: webrtc

// 用這個版本替換了DEPS檔案中的版本
git checkout d68fcc42256f0f6483d562aa69531091560ff9f2 
gclient sync
複製程式碼

四.使用Gn構建工具生成編譯方案

  1. 修改編譯方案
::啟用official build  
::修改src\build\config\BUILDCONFIG.gn,將is_official_build的值改為true  
  
::去掉顯示標頭檔案的包含樹  
::修改src\build\toolchain\win\BUILD.gn,將/showIncludes刪除掉 
複製程式碼
  1. 生成ninja編譯指令碼 gn配置
cd src  
gn gen out/Default  
複製程式碼
  1. 修改ninja編譯引數,如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"

複製程式碼

五.開始編譯

ninja -C out/Default chrome 
複製程式碼

經過10小時左右的編譯,終於成功編譯出第一個chromium瀏覽器 up

參考文件

相關文章