已合并
适配ops-cv静态包构建 #1174
jialimin1创建于 7月27日
适配ops-cv静态包构建 #1174
已合并
Pull Request已成功合入, 合并人@CANN-robot
(感谢 jialimin1 的贡献)atomgit-bot
7月27日 评论:
7月27日 评论:
变更摘要
此 PR 主要针对 ops-cv 静态包的构建流程进行适配,核心改动包括:在 build.sh 和 cmake/static.cmake 中为静态库构建目标增加了前置存在性检查,避免在缺少相关 target 时构建失败;调整了 package_static 函数中对 static_library_files 目录不存在时的错误处理策略;并新增了 scripts/ci/merge_static_packages.sh 脚本,用于在 CI 流程中合并多个 cann-ops-cv-static 静态包。
主要改动
build_static_lib增加 CMake target 存在性检查: 在build.sh中,构建opapi_cv_static和cann_cv_static之前,先通过grep -wq检查all_targets中是否存在对应的 target,存在才执行cmake --build,防止因 target 缺失导致构建报错。package_static错误处理逻辑放宽: 当${BUILD_PATH}/static_library_files目录不存在时,不再报错退出,改为return 0正常返回,使打包流程对静态文件目录缺失具备容错能力。cmake/static.cmake添加前置守卫条件: 将add_custom_target(${OPSTATIC_NAME})及其后续的foreach循环整体包裹在if (TARGET ${OPHOST_NAME}_static OR TARGET ${OPAPI_NAME}_static)条件中,仅在 host 或 API 静态目标存在时才生成相应的静态资源合并逻辑。- 新增
scripts/ci/merge_static_packages.sh合并脚本: 该脚本支持解压多个cann-ops-cv-static的.tar.gz包,合并其include目录和lib64中的.o文件(对op_resource.cpp.o采用保留较大文件的去重策略,其余.o直接覆盖),最终重新打包为一个合并后的静态发布包。


atomgit-bot
7月27日 评论:
7月27日 评论:
代码审查
审查总结
本次审查涵盖了 3 个文件的全部变更:
| 文件 | 审查结果 |
|---|---|
build.sh |
发现 1 个 P3 问题(package_static 静默跳过缺少诊断提示) |
cmake/static.cmake |
发现 1 个 P2 问题(OR 守卫条件与内部 ar x 命令不一致) |
scripts/ci/merge_static_packages.sh |
发现 2 个 P3 问题(ls 解析脆弱、死变量) |
问题统计: P0: 0, P1: 0, P2: 1, P3: 3
总体风险判断: 中等偏低。核心功能逻辑正确,最值得关注的是 cmake/static.cmake 中 OR 条件与内部命令不一致的问题,虽然在 ops-cv 的典型配置下两个组件库通常会同时存在,但一旦触发将导致构建失败。其余三个 P3 问题属于健壮性和可维护性改进,不影响正常流程。
| 类型 | 数量 |
|---|---|
| 🔴 阻塞 | 0 |
| 🟡 建议 | 1 |
💬 仅评论


7月27日 添加了label:cann-cla/yes
CANN-robot
7月27日 评论:
7月27日 评论:
Thanks for your pull-request.
The full list of commands accepted by me can be found at here。
You can get sig-info at here
PR Approval Progress
✅ Congratulations! All modules have met the lgtm and approve requirements.
Module Approval Details
| module | lgtm status | approve status |
|---|---|---|
| repo-cann/ops-cv | ✅ 刘伟, 周奇龙 (2/2) | ✅ 刘伟, 周奇龙 (2/1) |
💡 Tip:
- Committer can comment
/approveor/lgtm- Commenting
/approveimplies both code review (lgtm) and intent to merge (approve)
CLA Signature Pass
jialimin1, thanks for your pull request. All authors of the commits have signed the CLA. 👍


此处折叠了42条消息 查看更多
7月31日 添加了label:lgtm
7月31日 关闭了关联的issue
7月31日 合入了pull request
描述
适配 ops-cv 静态包(static library package)构建流程,增强 target 存在性检查和多包合并能力。
变更文件
build.shstatic_library_files目录缺失时优雅跳过cmake/static.cmakeOPSTATIC_NAMEtarget 创建跟随OPHOST_NAME_static/OPAPI_NAME_static存在性scripts/ci/merge_static_packages.shcann-ops-cv-statictar.gz 包并合并静态库关键改动
opapi_cv_static和cann_cv_staticcmake target 在仅有 AICPU 算子时不存在,原代码无条件构建会报错。改为先grep -wq检查 target 存在再构建。package_static()中static_library_files目录不存在时改为return 0(非错误退出),适配无需打包静态库的场景。add_custom_target(${OPSTATIC_NAME})无条件创建,导致空 target 构建失败。改为仅在关联的 host/api 静态库 target 存在时才创建。关联的Issue
#676
测试
静态库相关编译安装打包测试
文档更新
类型标签