编译SKIA

huiyi
2024-05-12 / 0 评论 / 271 阅读 / 正在检测是否收录...

环境准备

编译前准备

以下命令需要确保网络通畅(科学上网)

git设置代理

git config --global https.proxy http://127.0.0.1:10809
git config --global http.proxy http://127.0.0.1:10809
git config --global http.sslVerify false

克隆代码

git clone https://skia.googlesource.com/skia.git
cd skia

初始化依赖库

python tools/git-sync-deps

下载 ninja

python bin/fetch-ninja

修改gn\BUILDCONFIG.gn(129行左右)

if (target_os == "win") {
  # By default we look for 2017 (Enterprise, Pro, and Community), then 2015. If MSVC is installed in a
  # non-default location, you can set win_vc to inform us where it is.

  if (win_vc == "") {
   # 找到你的vs安装目录对着填
    win_vc = "D:/Dev/VisualStudio/2022/Community/VC"
  }
  assert(win_vc != "")  # Could not find VC installation. Set win_vc to your VC
                        # directory.
}

if (target_os == "win") {
  if (win_toolchain_version == "") {
    # win_vc下Tools\MSVC内的文件夹名称,vs工具链版本
    win_toolchain_version = "14.39.33519"
  }
  if (win_sdk_version == "") {
    # win sdk安装目录下10/include下的文件名,sdk版本
    win_sdk_version = "10.0.22621.0"
  }
  if (clang_win != "" && clang_win_version == "") {
    # llvm安装路径下lib/clang下的文件名,clang版本
    clang_win_version = "18"
  }
}

如果下面编译有问题修改gn\toolchain\BUILD.gn 45行

dlsymutil_pool_depth=20 # 你的cpu核心数

编译

下面的clang_win换成自己的LLVM安装目录

Debug x64静态库

bin/gn gen out/debug_x64_static --args='clang_win=\"D:\SDK\LLVM\" cc=\"clang\" cxx=\"clang++\" extra_cflags=[\"/MTd\"] is_official_build=true is_debug=false skia_use_system_expat=false skia_use_system_libjpeg_turbo=false skia_use_system_libpng=false skia_use_system_libwebp=false skia_use_system_zlib=false skia_use_system_harfbuzz=false skia_use_icu=false'
ninja -C out/debug_x64_static

Release x64静态库

bin/gn gen out/release_x64_static --args='clang_win=\"D:\SDK\LLVM\" cc=\"clang\" cxx=\"clang++\" extra_cflags=[\"/MT\"] is_debug=false is_official_build=true skia_use_system_expat=false skia_use_system_libjpeg_turbo=false skia_use_system_libpng=false skia_use_system_libwebp=false skia_use_system_zlib=false skia_use_system_harfbuzz=false skia_use_icu=false skia_use_angle=true'
ninja -C out/release_x64_static

linux与mac下流程大体一致

ubuntu需要设置skia\_use\_system\_harfbuzz=false,skia_enable_fontmgr_empty=true

bin/gn gen out/debug_x64_static --args='skia\_use\_system\_harfbuzz=false skia_enable_fontmgr_empty=true'

如果是mac则使用下面的命名生成(is_trivial_abi设置false)
bin/gn gen out/debug_x64_static --args='is_debug=true is_trivial_abi=false'

0

评论 (0)

取消