至少需要17GB的磁盤空間,不光有CEF源碼,還會下載chromium源碼。編譯master分支的話,如果編譯到chromium可能會需要windows sdk,windows sdk的版本可以參考下面提到的鏈接BranchesAndBuilding
,windows sdk的下載可以用Visual Studio Installer或者去微軟官網搜索下載。
步驟參考自MaterBuildQuickStart和BranchesAndBuilding,推薦使用第二種,第一種有不確定因素(主要是網絡問題),所以成為敢於爬高探頭的紅杏(抽象萬歲)是必要的。
需要用到自動腳本automate-git.py,這個腳本自動下載源碼+編譯,十分方便,但是還是事先准備好一些東西才是有備無患
PS:使用pyhton automate-git.py --help
可以查看這個腳本的命令行參數,十分有幫助
depot_tools
可以在chromium的編譯文檔中找到,也可以使用automate-git.py下載,但是automate-git.py有可能會因為網絡原因下載失敗,如果下載失敗(爆出IOERROR socket error類似的錯誤)時,需要手動完成以下步驟
下載depot tools,這個是個壓縮包,解壓到喜歡的位置,然后配置系統的環境變量,將depot_tools的路徑配置到系統PATH中去,並將優先級往前移。
打開cmd執行gclient
,這個操作會讓depot_tools變身成為完全版(下載相應工具例如python等)。
然后回到automate-git.py
,執行的時候需要告訴automate-git.py
depot_tools已經准備好了,用--depot-tools-dir=depot_tools_path
來告訴它depot_tools的路徑。這樣automate-git.py
就會跳過下載解壓depot_tools的環節,直接進入下一步驟(但是需要depot_tools是執行過gclient命令的,因為需要一些工具)。
下載源碼
因為我之前編譯過chromium,所以本地是有depot_tools,因此跳過下載depot_tools的環節,使用該命令下載源碼並編譯cefpython ./automate-git.py --depot-tools-dir=F:\depot_tools --download-dir=../ --no-release-build
,其中--no-release-build是因為默認automate-git.py會編譯一份debug版,一份release版,可以但可能沒必要,看自己的選擇,編譯兩個版本會占用大量的空間和時間(因為chromium太大了),這條命令使用后會進行長時間的下載,耐心等待即可(自動真爽)。拉取代碼需要花費的時間大概是6個小時(跟機器性能和下載速度有關)。
PS:注意!不管是切到遠程分支還是在本地倉庫的多個分支checkout都應該使用automate-git.py
和其參數(例如--branch或--checkout
)進行操作,不然可能會失敗。
生成工程文件和編譯
下載好源碼之后,在chromium\src\cef\
目錄下創建create.bat文件,文件內容如下,設置了增快編譯速度和生成vs用的解決方案的的gn參數
set GN_DEFINES=use_jumbo_build=true is_component_build=true
set GN_ARGUMENTS=--ide=vs2017 --sln=cef --filters=//cef/*
call cef_create_projects.bat
執行后,會生成項目文件cef.sln
,然后可以用VS打開,編譯。(但是不推薦使用VS編譯,卡,慢)
cef_create_projects.bat
其實是使用gn生成了.ninja文件,可以使用ninja編譯
進入chromium的src目錄下執行
ninja -C out\Debug_GN_x86 cef
進行編譯,可以得到庫文件和編譯好的測試程序。