Her*_*man 1 build chromium ninja
尝试从 ubuntu 18.04 开始在 docker 容器中构建适用于 android 的 webview。
按照说明进行所有操作,最后一个版本可以使用命令构建:
autoninja -C out/Default system_webview_apk
Run Code Online (Sandbox Code Playgroud)
但我需要一个旧版本。所以我这样做:
git checkout 80.0.3987.99 -b 80-version
Run Code Online (Sandbox Code Playgroud)
之后运行同步:
gclient sync
Run Code Online (Sandbox Code Playgroud)
默认情况下,它也会在同步后运行钩子。然后我再次使用相同的 cmd 开始构建:
autoninja -C out/Default system_webview_apk
Run Code Online (Sandbox Code Playgroud)
但这一次在结账构建时它给了我错误,我几个小时都无法修复:
user@0bb1627b6f62:~/workdir/chromium/src$ autoninja -c out/Default/ system_webview_apk
depot_tools/ninja.py: Could not find Ninja in the third_party of the current project, nor in your PATH.
Please take a following action to install Ninja.
- If your project has DEPS, Add a CIPD Ninja dependency to DEPS.
- Otherwise, add Ninja to your PATH *after* depot_tools.
Run Code Online (Sandbox Code Playgroud)
但是当我再次切换到main分支时,进行同步,它构建得很好!
我做错了什么?gn args在两种情况下都运行正常。
树枝上main有src/third_party/ninja/。在结帐分支上gclient sync此文件夹消失后。在同步autoninja运行之前出现错误,unknown function因为 ninja 的版本与结帐版本不对应。
好吧,事实证明,由于某种原因,即使使用gclient sync --with_branch_heads命令,同步也不会为我的结账获取忍者。我很困惑
Ninja 包含在 depot_tools 中,因此无需安装任何内容。
来自铬文档。此外,我认为 ninja 版本应该与我的 chromium checkout 相对应,但据我发现它gn仅与工具有关。
所以,我的解决方案只是添加到我的 docker 文件中
apt install ninja-build
Run Code Online (Sandbox Code Playgroud)
每次结账都开始顺利进行。
| 归档时间: |
|
| 查看次数: |
3812 次 |
| 最近记录: |