libAdblockPlus 与 cef 编译总结 ----Windows环境

为防止出现各种莫名其妙的问题,请在干净的 windows10 (x64)上 安装vs2019 及相应的sdk、模块。保持系统语言环境为 English(USA).

根据老外的习惯,最好将vs2019安装在系统盘符C盘下(默认安装即可.)

 

建议使用虚拟机 VMware,将准备好的环境打 快照 ,避免反复。

 

注意:网络通畅是前提条件。有条件的可购买一个vpn。

          以下涉及到的路径请自行修改。

一、libAdblockPlus.

libAdblockPlus 依赖  V8 引擎,首先要编译V8.

1) V8编译步骤

     .下载安装 google的 代码管理工具.depot_tools.

     . 配置系统环境变量

   

变量名 变量值
DEPOT_TOOLS_UPDATE  0
DEPOT_TOOLS_WIN_TOOLCHAIN 0
GYP_MSVS_VERSION 2019
   

       path 添加 C:\depot_tools; 

 

    .新建一个code 文件夹 c:\code.

命令

备注

cd code  
fetch v8 获取到的是master支,非稳定版本.
git checkout 8.8-lkgr 稳定版本

gclient sync -v

同步

gclient sync -D

删除非本分支的数据

     生成工程

    gn gen out.gn\x64.debug --sln=v8 --ide=vs2019 --args="is_component_build=false is_debug=true target_cpu=\"x64\" v8_enable_backtrace=true v8_enable_slow_dchecks=false v8_enable_i18n_support=false v8_monolithic=true v8_optimized_debug=true v8_static_library=true v8_use_external_startup_data=false is_clang=false"

  参数 可以根据自己需要修改。(is_clang=false 比较关键)

  编译:

     ninja -C out.gn/x64.debug v8_monolith

   到此,v8静态库准备好了。

2) 编译 libadblockplus

     git 代码:

       git clone -b 11.0-c0.3.0 --recursive https://gitlab.com/eyeo/adblockplus/libadblockplus

       生成工程: (参考 libadblockplus 目录下的createsolution.bat 里面的内容。)

      set "GYP_DEFINES=libv8_lib_dir=C:\code\v8\out.gn\x64.debug\obj  libv8_include_dir=C:\code\v8\include libv8_show_warnings=true"

      python msvs_gyp_wrapper.py --depth=build\x64 -f msvs -G msvs_version=2017 -I libadblockplus.gypi --generator-output=build\x64 -Dtarget_arch=x64 -Dhost_arch=x64 abpshell.gyp tests.gyp

    工程目录: C:\code\libadblockplus\build\x64

    打开对应工程.sln,修改 工程属性里面的c++ 相关路径, linker相关路径,完成编译。

    注意:v8_enable_pointer_compression = false;V8_31BIT_SMIS_ON_64BIT_ARCH   

             可能会用到微软的 vcpkg, 具体用法请在github 上查阅。

   参考网址:

                 https://blog.csdn.net/qi1993315/article/details/80734045

                 https://zhuanlan.zhihu.com/p/67190593

                 https://blog.csdn.net/qq_33958297/article/details/105331502

                https://issues.adblockplus.org/ticket/6981/

 

二 Cef 的编译

       .相关步骤

  步骤 说明
下载 depot_tools ,按前面v8 配置好环境变量,如已进行libadblockplus编译,此步可忽略。  

gitcheckout 切换 depot_tools到指定分支

下载cef,然后查看对应版本的chromium 分支号如:93.0.4577.25  
fetch chromium 代码 ,30G 左右  
git checkout 到指定分支 93.0.4577.25 git checkout -f  93.0.4577.25
gclient sync -v chromium  
拷由cef 到 src目录下  
执行create.bat生成工程

create.bat 内容参考 https://bitbucket.org/chromiumembedded/cef/wiki/MasterBuildQuickStart.md

[

set CEF_USE_GN=1
set GN_DEFINES=is_official_build=true

set GN_DEFINES=is_official_build=true  ffmpeg_branding=Chrome proprietary_codecs=true //支持h264 (同时要修改third_party里面相应的config.h 里面的 #define CONFIG_SIPR_PARSER 1

set GN_ARGUMENTS=--ide=vs2019 --sln=cef --filters=//cef/*
call cef_create_projects.bat

]

 

 

编译 :

cd c:\code\chromium_git\chromium\src
ninja -C out\Debug_GN_x86 cef

 

SandboxSetup:

https://bitbucket.org/chromiumembedded/cef/wiki/SandboxSetup

 

# Create a binary distribution for the cef_sandbox build:
cd c:\path\to\chromium\src\cef\tools
make_distrib.bat --allow-partial --sandbox --ninja-build --no-archive --no-symbols --no-docs --minimal

 

 

 

 

 

     

 

posted @ 2021-10-13 20:17  呆球球  阅读(325)  评论(2编辑  收藏  举报