Skia 流水线 编译问题小记
ohos sdk 目录错误
cp -Rf "${workspace}/skia/build/ohos-sdk/ohos-sdk/linux/*" "${workspace}/skia/build/ohos/linux-x86_64"
cp -Rf "${workspace}/skia/build/ohos-sdk/ohos-sdk/linux/"* "${workspace}/skia/build/ohos/linux-x86_64/"
这两行代码的区别
gn lru_cache error
2024-06-05 18:11:51]Traceback (most recent call last):
[2024-06-05 18:11:51] File "/data/__qci/root-workspaces/__qci-pipeline-10875810-1//depot_tools/gn.py", line 14, in <module>
[2024-06-05 18:11:51] import gclient_paths
[2024-06-05 18:11:51] File "/data/__qci/root-workspaces/__qci-pipeline-10875810-1/depot_tools/gclient_paths.py", line 24, in <module>
[2024-06-05 18:11:51] def FindGclientRoot(from_dir, filename='.gclient'):
[2024-06-05 18:11:51] File "/usr/lib64/python3.6/functools.py", line 477, in lru_cache
主要问题是python版本和depot_tools兼容性问题
cd "$workspace/depot_tools/"
git -c advice.detachedHead=false checkout 5decb175
git apply error
git apply ../patches/ohos_adapter_skia_chrome_121.patch
../patches/ohos_adapter_skia_chrome_121.patch:4236: trailing whitespace.
../patches/ohos_adapter_skia_chrome_121.patch:5237: trailing whitespace.
}
error: cannot apply binary patch to 'ninja' without full index line
error: ninja: patch does not apply
../patches/ohos_adapter_skia_chrome_121.patch:3421: new blank line at EOF.
主要问题是在补丁文件中存在尾随空格
首先,检查补丁文件中的尾随空格。你可以使用文本编辑器(如Notepad++、Visual Studio Code等)或者命令行工具(如sed)来删除尾随空格。例如,使用sed的命令如下:
sed -i 's/[[:blank:]]*$//' ../patches/ohos_adapter_skia_chrome_121.patch
#!/bin/bash
git diff --cached > ohos_adapter_skia_chrome_121.patch
if [[ "$(uname)" == "Darwin" ]]; then
echo "This is a macOS machine."
sed -i '' -E 's/[[:blank:]]+$//' ohos_adapter_skia_chrome_121.patch
elif [[ "$(uname)" == "MINGW"* ]] || [[ "$(uname)" == "CYGWIN"* ]]; then
echo "This is a Windows machine."
elif [[ "$(uname)" == "Linux" ]]; then
echo "This is a Linux machine."
sed -i 's/[[:blank:]]*$//' ohos_adapter_skia_chrome_121.patch
else
echo "This is an unknown operating system."
fi
architecture=$(uname -m)
if [[ "$architecture" == "arm"* ]]; then
echo "This is an ARM-based Linux machine."
elif [[ "$architecture" == "x86_64" ]]; then
echo "This is a 64-bit Linux machine."
elif [[ "$architecture" == "i386" ]] || [[ "$architecture" == "i686" ]]; then
echo "This is a 32-bit Linux machine."
else
echo "This is an unknown architecture."
fi