已合并
Use FetchContent to reuse CANN engineering common cmake repo #988
shengxinchen创建于 5月26日
Use FetchContent to reuse CANN engineering common cmake repo #988
已合并
shengxinchen创建于 5月26日
shengxinchen成员
5月26日

描述

本 PR 将 PTO-ISA 组件仓的 cmake/version 接口与 run 包打包流程整体切换到
CANN 工程公共仓 cann/cmake,移除组件仓内重复的版本管理函数、打包脚本与
内置 makeself 集成。整个改造由两个 commit 组成。

主要变更

Commit 1:cmake/version 接入工程公共仓(e0530842)

  • 新增 cmake/fetch_cann_cmake.cmake,通过 FetchContent 拉取 cann-cmake
  • CMakeLists.txt 改调 init_cann_project / check_cann_pkg_build_deps
    / add_cann_version_info_targets
  • version.cmake 切到工程仓 API:set_cann_package / set_cann_run_dependencies
  • cmake/func.cmake 删除重复的 set_package / set_build_dependencies /
    set_run_dependencies / check_pkg_build_deps / add_version_info_targets
    / replace_cur_major_minor_ver
  • 删除 scripts/check_build_dependencies.pyscripts/generate_version_info.py
    (由工程仓 scripts/version/ 提供)

Commit 2:打包流程切到 set_cann_cpack_config(077d61e0)

  • cmake/package.cmake 改用工程仓提供的 set_cann_cpack_config(pto-isa …)
    install/cleanup/version 等帮助脚本统一从 ${CANN_CMAKE_DIR} 引用
  • cmake/fetch_cann_cmake.cmakeCANN_CMAKE_TAG 由 master-001 升到
    master-017(包含 set_cann_cpack_config 所需修复)
  • scripts/package/pto_isa/pto_isa.xml 新增 <share_info_name>pto_isa</share_info_name>
    保证生成的 share/info 目录布局正确
  • 删除组件仓内重复的打包资产:
    • cmake/makeself_built_in.cmakecmake/third_party/makeself-fetch.cmake
    • scripts/package/common/(py/sh 全部)
    • scripts/package/latest_manager/scripts/(含 manager_func.sh 等)
    • scripts/package/package.py
  • 同步更新 cmake/README*.mdscripts/package/README*.mdSECURITY*.md

Commit 3:公共编译选项切换到工程公共仓(200f23eb)

  • 顶层 CMakeLists.txtinit_cann_project() 之后新增调用 add_cann_target_options(),引入工程公共仓 cann-cmake 提供的 intf_pub INTERFACE target,封装 -fPIC / -Wall / -Wextra / -fstack-protector-strong、ASAN/TSAN/UBSAN/GCOV 开关、-Wl,-z,relro/now/noexecstack 等公共编译/链接选项
  • 组件仓未涉及 device 侧 cmake(无 cmake/device 目录、无 set(PRODUCT_SIDE device)),按"如果涉及 device 编译再追加"原则本 commit 不在 device 侧追加调用

合计:49 files changed, 95 insertions(+), 13841 deletions(-)
(commit 1:6 files / +53 / -348;commit 2:42 files / +41 / -13493;commit 3:1 file / +1 / -0)

测试

Commit 1

sh build.sh --pkg 修改前后 staging 产物字节级一致,仅 version.info
timestamp 行不同(符合预期)。

Commit 2

对 commit 1 staging 产物 (pre.run) 与 commit 2 staging 产物
(build_out/cann-pto-isa_9.1.0_linux-aarch64.run) 做了 run 包级别 diff 与
安装流程联调:

条件 1:修改前后仅工程脚本差异 — 通过

  • aarch64-linux/ 产品载荷 455 个文件字节级一致
  • version.info 仅 timestamp 行不同
  • 其余差异全部收敛在 share/info/pto_isa/script/(即工程仓提供的
    install helper),其中 common_interface.bashcommon_interface.sh
    为重命名,无外部引用

条件 2:安装 / 卸载 / 升级流程 — 通过(升级有既有 bug 已确认非本 PR 引入)

用例 结果
新包 --full 全新安装 通过,落盘 490 文件
旧包 --full 全新安装 通过,与新包仅差 common_interface.{bash↔sh}
--uninstall(新/旧包均测) 残留 0 文件 0 目录
同版本覆盖安装 通过,自动 uninstall→install
跨版本卸载(旧装新卸 / 新装旧卸) 残留均为 0
--upgrade(旧 → 新) 失败:ERR_NO:0x0002;ERR_DES:Empty paramters is invalid for install.
--upgrade 对照(新→新、旧→旧) 同样失败

--upgrade 失败可在未改动的 pre.run 上稳定复现,根因在工程仓
install.sh--upgrade 分支未给 IN_INSTALL_TYPE 回填值(详见
pto_install.sh 71-74 行空参拦截),属上游既有问题,不是本 PR 引入的回归
将另起单独修复。

Commit 3

对 commit 2 产物(baseline.run)与 commit 3 产物(changed.run)做 run 包级 diff 与安装流程联调:

条件 1:修改前后仅工程脚本差异 — 通过

  • 同一构建机相邻时刻分别构建 baseline.run / changed.run,解压后 diff -r 结果仅 share/info/pto_isa/version.info 的 timestamp 行不同,工程脚本与 aarch64-linux/ 产品载荷字节级一致
  • 由于 intf_pub 为 INTERFACE target 且当前无 target 链接它,包内容不变符合预期;后续业务 target 通过 target_link_libraries(<tgt> PRIVATE intf_pub) 即可继承公共选项

条件 2:安装 / 卸载 / 升级流程 — 通过(升级失败与 commit 2 同根因,非本 commit 引入)

用例 结果
--full 全新安装 通过,目录结构、version.infoascend_install.info 落盘正常
--uninstall 通过,share/info/pto_isa 清空,ascend_install.info 删除
--upgrade 失败:ERR_NO:0x0002;ERR_DES:Empty paramters is invalid for install.,在 baseline.run(未含本 commit)上同样稳定复现,与 commit 2 测试段已定位的上游 install.sh 既有问题同根因
likedislike
Pull Request已成功合入, 合并人@CANN-robot
(感谢 shengxinchen 的贡献)
Sshengxinchen成员
5月26日 创建了 pull request,commit 9038c958
CANN-robot
CANN-robot成员
5月26日 评论:

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/pto-isa csjlchen, Zhanghaijian (2/2) csjlchen (1/1)

💡 Tip:

  • Committer can comment /approve or /lgtm
  • Commenting /approve implies both code review (lgtm) and intent to merge (approve)

CLA Signature Pass

shengxinchen, thanks for your pull request. All authors of the commits have signed the CLA. 👍

likedislike
CANN-robotCANN-robot成员
5月26日 将csjlchen,bluesky901,changxianyu,Zhanghaijian,syfeng,yinjie27_,zhoubotcam,HuangXingYuan_777,linjiashu,WenboCodes,qukelin,ChanKaLok设为评审人
此处折叠了10条事件消息 查看更多
Sshengxinchen成员
5月26日 修改了pull request 的描述
shengxinchen成员
5月26日 评论:

compile

likedislike
CANN-robotCANN-robot成员
5月26日 添加了label:ci-pipeline-running
CANN-robot
CANN-robot成员
5月26日 评论:

流水线任务触发成功
任务链接 [f587e21fb8034bfba38914db319aed2b][流水线指导]

任务名称状态日志下载链接
codecheck ✅ SUCCESS >>>>>
SCA ✅ SUCCESS >>>>>
antipoison ✅ SUCCESS >>>>>
Check_Pr ✅ SUCCESS >>>>>
Compile_Ascend_X86 ✅ SUCCESS >>>>> >>>>>
Compile_Ascend_ARM ✅ SUCCESS >>>>> >>>>>
pto-isa_check ✅ SUCCESS
pre_comment ✅ SUCCESS >>>>>
Compile_Ascend_X86_ubuntu24 ✅ SUCCESS >>>>>
cocheck_codestyle ❌ FAILED
precommit ⚠️ WARNING >>>>> >>>>>
likedislike
CANN-robotCANN-robot成员
5月26日 删除了label:ci-pipeline-running
CANN-robotCANN-robot成员
5月26日 添加了label:ci-pipeline-failed
CANN-robot
CANN-robot成员
5月26日 评论:
流水线 PR-pipeline_cann_pto-isa#3428 [ commitID:200f23eb ] 运行失败
likedislike
shengxinchen成员
5月26日 评论:

compile

likedislike
CANN-robotCANN-robot成员
5月26日 删除了label:ci-pipeline-failed
CANN-robotCANN-robot成员
5月26日 添加了label:ci-pipeline-running
CANN-robot
CANN-robot成员
5月26日 评论:

流水线任务触发成功
任务链接 [f845d49d05f347ed91a3f1187c6ea83a][流水线指导]

任务名称状态日志下载链接
codecheck ✅ SUCCESS >>>>>
SCA ✅ SUCCESS >>>>>
antipoison ✅ SUCCESS >>>>>
Check_Pr ✅ SUCCESS >>>>>
Compile_Ascend_X86 ✅ SUCCESS >>>>> >>>>>
Compile_Ascend_ARM ✅ SUCCESS >>>>> >>>>>
pto-isa_check ✅ SUCCESS
pre_comment ✅ SUCCESS >>>>>
Compile_Ascend_X86_ubuntu24 ✅ SUCCESS >>>>>
cocheck_codestyle ✅ SUCCESS
precommit ⚠️ WARNING >>>>> >>>>>
Compile_Ascend_ARM_A5 ✅ SUCCESS >>>>>
Compile_Ascend_X86_A5_ubuntu24 ✅ SUCCESS >>>>>
UT_Test ✅ SUCCESS
UT_Test_automode_A3 ❌ FAILED
UT_Test_automode_A5 ✅ SUCCESS
PreSmoke_A3_npupool ✅ SUCCESS >>>>>
likedislike
CANN-robotCANN-robot成员
5月26日 删除了label:ci-pipeline-running
CANN-robotCANN-robot成员
5月26日 添加了label:ci-pipeline-failed
CANN-robot
CANN-robot成员
5月26日 评论:
流水线 PR-pipeline_cann_pto-isa#3429 [ commitID:200f23eb ] 运行失败
likedislike
shengxinchen成员
5月26日 评论:

compile

likedislike
CANN-robotCANN-robot成员
5月26日 删除了label:ci-pipeline-failed
CANN-robotCANN-robot成员
5月26日 添加了label:ci-pipeline-running
CANN-robot
CANN-robot成员
5月26日 评论:

流水线任务触发成功
任务链接 [b3d8f6a65e63419d8ff0a621cee92191][流水线指导]

任务名称状态日志下载链接
codecheck ✅ SUCCESS >>>>>
SCA ✅ SUCCESS >>>>>
antipoison ✅ SUCCESS >>>>>
Check_Pr ✅ SUCCESS >>>>>
Compile_Ascend_X86 ✅ SUCCESS >>>>> >>>>>
Compile_Ascend_ARM ✅ SUCCESS >>>>> >>>>>
pto-isa_check ✅ SUCCESS
pre_comment ✅ SUCCESS >>>>>
Compile_Ascend_X86_ubuntu24 ✅ SUCCESS >>>>>
cocheck_codestyle ✅ SUCCESS
precommit ⚠️ WARNING >>>>> >>>>>
Compile_Ascend_ARM_A5 ✅ SUCCESS >>>>>
Compile_Ascend_X86_A5_ubuntu24 ✅ SUCCESS >>>>>
UT_Test ✅ SUCCESS
UT_Test_automode_A3 ✅ SUCCESS
UT_Test_automode_A5 ✅ SUCCESS
PreSmoke_A3_npupool ✅ SUCCESS >>>>>

[2026-05-26 16:25:46]    CI执行结束

likedislike
CANN-robotCANN-robot成员
5月26日 删除了label:ci-pipeline-running
CANN-robotCANN-robot成员
5月26日 添加了label:ci-pipeline-passed
CANN-robot
CANN-robot成员
5月26日 评论:
流水线 PR-pipeline_cann_pto-isa#3430 [ commitID:200f23eb ] 已完成
likedislike
Zhanghaijian成员
5月27日 评论:

/lgtm

likedislike
csjlchen
csjlchen成员
5月27日 评论:

/approve

likedislike
CANN-robotCANN-robot成员
5月27日 添加了label:lgtmapproved
CANN-robot
CANN-robot成员
5月27日 评论:

Review Guide

This pull-request passes review.
Committers who wrote a comment of /approve are: csjlchen.
Reviewers who wrote a comment of /lgtm are: Zhanghaijian, csjlchen.

likedislike
CANN-robotCANN-robot成员
5月27日 合入了pull request