已合并
[refactor] 升级cann-cmake至master-044,迁移device构建与签名至cann-cmake公共函数 #4176
zhaoyingdong创建于 29 天前
[refactor] 升级cann-cmake至master-044,迁移device构建与签名至cann-cmake公共函数 #4176
已合并
zhaoyingdong创建于 29 天前
8 个文件变更+9-108
MCMakeLists.txt+1-31
@@ -37,7 +37,6 @@ set(HCOMM_DIR "${CMAKE_CURRENT_SOURCE_DIR}")
37set(HCC_TOOLCHAIN_DIR "${ASCEND_CANN_PACKAGE_PATH}/toolkit/toolchain/hcc")37set(HCC_TOOLCHAIN_DIR "${ASCEND_CANN_PACKAGE_PATH}/toolkit/toolchain/hcc")
38set(HCC_CXX_COMPILER "${HCC_TOOLCHAIN_DIR}/bin/aarch64-target-linux-gnu-g++")38set(HCC_CXX_COMPILER "${HCC_TOOLCHAIN_DIR}/bin/aarch64-target-linux-gnu-g++")
39set(HCC_C_COMPILER "${HCC_TOOLCHAIN_DIR}/bin/aarch64-target-linux-gnu-gcc")39set(HCC_C_COMPILER "${HCC_TOOLCHAIN_DIR}/bin/aarch64-target-linux-gnu-gcc")
40-set(HCC_C_AR "${HCC_TOOLCHAIN_DIR}/bin/aarch64-target-linux-gnu-ar")
41 40 
42# 交叉编译场景(x86机器上编译arm包)41# 交叉编译场景(x86机器上编译arm包)
43if(ENABLE_BUILD_AARCH)42if(ENABLE_BUILD_AARCH)
@@ -140,36 +139,7 @@ elseif(BUILD_OPEN_PROJECT)
140 139 
141 # Device 侧编译构建140 # Device 侧编译构建
142 if(ENABLE_DEVICE)141 if(ENABLE_DEVICE)
143- include(ExternalProject)142+ add_cann_device_project(hcomm)
144- ExternalProject_Add(hcomm_device
145- SOURCE_DIR ${HCOMM_DIR}/cmake/device
146- BINARY_DIR ${HCOMM_DEVICE_BUILD_PATH}
147- CMAKE_ARGS
148- -DTOOLCHAIN_DIR=${HCC_TOOLCHAIN_DIR}
149- -DCMAKE_TOOLCHAIN_FILE=${HCOMM_DIR}/cmake/aarch64-hcc-toolchain.cmake
150- -DCMAKE_C_COMPILER=${HCC_C_COMPILER}
151- -DCMAKE_CXX_COMPILER=${HCC_CXX_COMPILER}
152- -DCMAKE_C_COMPILER_LAUNCHER=${CMAKE_C_COMPILER_LAUNCHER}
153- -DCMAKE_CXX_COMPILER_LAUNCHER=${CMAKE_CXX_COMPILER_LAUNCHER}
154- -DCMAKE_C_AR=${HCC_C_AR}
155- -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
156- -DCMAKE_INSTALL_PREFIX=${HCOMM_DEVICE_INSTALL_PATH}
157- -DASCEND_INSTALL_PATH=${ASCEND_INSTALL_PATH}
158- -DBUILD_OPEN_PROJECT=${BUILD_OPEN_PROJECT}
159- -DCANN_3RD_LIB_PATH=${CANN_3RD_LIB_PATH}
160- -DENABLE_SIGN=${ENABLE_SIGN}
161- -DCUSTOM_SIGN_SCRIPT=${CUSTOM_SIGN_SCRIPT}
162- -DVERSION_INFO=${VERSION_INFO}
163- INSTALL_COMMAND ${CMAKE_CPACK_COMMAND}
164- BUILD_ALWAYS TRUE
165- )
166- 
167- # 安装 device 侧编译产物
168- install(FILES
169- ${HCOMM_DEVICE_BUILD_PATH}/device-hcomm.tar.gz
170- DESTINATION .
171- COMPONENT hcomm
172- )
173 endif()143 endif()
174 144 
175 set(HCCL_HEAD145 set(HCCL_HEAD
Mbuild.sh+1-9
@@ -26,7 +26,6 @@ ENABLE_EXPERIMENTAL="OFF"
26CANN_3RD_LIB_PATH="${CURRENT_DIR}/third_party"26CANN_3RD_LIB_PATH="${CURRENT_DIR}/third_party"
27CUSTOM_SIGN_SCRIPT=""27CUSTOM_SIGN_SCRIPT=""
28ENABLE_SIGN="false"28ENABLE_SIGN="false"
29-VERSION_INFO="8.5.0"
30 29 
31MOCK_FWK_HLT="0"30MOCK_FWK_HLT="0"
32 31 
@@ -272,7 +271,7 @@ function usage() {
272 echo " sh build.sh --pkg [-h | --help] [-j<N>]"271 echo " sh build.sh --pkg [-h | --help] [-j<N>]"
273 echo " [--cann_3rd_lib_path=<PATH>] [-p|--package-path <PATH>]"272 echo " [--cann_3rd_lib_path=<PATH>] [-p|--package-path <PATH>]"
274 echo " [--asan]"273 echo " [--asan]"
275- echo " [--sign-script <PATH>] [--enable-sign] [--version <VERSION>]"274+ echo " [--sign-script <PATH>] [--enable-sign]"
276 echo ""275 echo ""
277 echo "Options:"276 echo "Options:"
278 echo " -h, --help Print usage"277 echo " -h, --help Print usage"
@@ -288,8 +287,6 @@ function usage() {
288 echo " Set sign-script's path to <PATH>"287 echo " Set sign-script's path to <PATH>"
289 echo " --enable-sign"288 echo " --enable-sign"
290 echo " Enable to sign"289 echo " Enable to sign"
291- echo " --version <VERSION>"
292- echo " Set sign version to <VERSION>"
293 echo " -u, --ut Run all unit tests (UT)"290 echo " -u, --ut Run all unit tests (UT)"
294 echo " -s, --st Run all system tests (ST)"291 echo " -s, --st Run all system tests (ST)"
295 echo " --noexec Run build and skip executing tests"292 echo " --noexec Run build and skip executing tests"
@@ -468,10 +465,6 @@ while [[ $# -gt 0 ]]; do
468 CUSTOM_SIGN_SCRIPT="$(realpath $2)"465 CUSTOM_SIGN_SCRIPT="$(realpath $2)"
469 shift 2466 shift 2
470 ;;467 ;;
471- --version)
472- VERSION_INFO="$2"
473- shift 2
474- ;;
475 *)468 *)
476 log "Error: Undefined option: $1"469 log "Error: Undefined option: $1"
477 usage470 usage
@@ -514,7 +507,6 @@ CUSTOM_OPTION="${CUSTOM_OPTION} -DENABLE_EXPERIMENTAL=${ENABLE_EXPERIMENTAL}"
514 507 
515CUSTOM_OPTION="${CUSTOM_OPTION} -DCUSTOM_SIGN_SCRIPT=${CUSTOM_SIGN_SCRIPT}"508CUSTOM_OPTION="${CUSTOM_OPTION} -DCUSTOM_SIGN_SCRIPT=${CUSTOM_SIGN_SCRIPT}"
516CUSTOM_OPTION="${CUSTOM_OPTION} -DENABLE_SIGN=${ENABLE_SIGN}"509CUSTOM_OPTION="${CUSTOM_OPTION} -DENABLE_SIGN=${ENABLE_SIGN}"
517-CUSTOM_OPTION="${CUSTOM_OPTION} -DVERSION_INFO=${VERSION_INFO}"
518CUSTOM_OPTION="${CUSTOM_OPTION} -DPRODUCT=ascend"510CUSTOM_OPTION="${CUSTOM_OPTION} -DPRODUCT=ascend"
519 511 
520CUSTOM_OPTION="${CUSTOM_OPTION} -DENABLE_TEST=${ENABLE_TEST}"512CUSTOM_OPTION="${CUSTOM_OPTION} -DENABLE_TEST=${ENABLE_TEST}"
Dcmake/aarch64-hcc-toolchain.cmake+0-60
@@ -1,60 +0,0 @@
1-# -----------------------------------------------------------------------------------------------------------
2-# Copyright (c) 2025 Huawei Technologies Co., Ltd.
3-# This program is free software, you can redistribute it and/or modify it under the terms and conditions of
4-# CANN Open Software License Agreement Version 2.0 (the "License").
5-# Please refer to the License for details. You may not use this file except in compliance with the License.
6-# THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED,
7-# INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE.
8-# See LICENSE in the root of the software repository for the full text of the License.
9-# -----------------------------------------------------------------------------------------------------------
10- 
11-set(CMAKE_SYSTEM_NAME Linux)
12-set(CMAKE_SYSTEM_PROCESSOR aarch64)
13- 
14-set(TARGET_LINUX_DISTRIBUTOR_ID euleros)
15-set(TARGET_LINUX_DISTRIBUTOR_RELEASE 2.8)
16- 
17-if(NOT TOOLCHAIN_DIR)
18- if(DEFINED ENV{TOOLCHAIN_DIR})
19- set(TOOLCHAIN_DIR "$ENV{TOOLCHAIN_DIR}")
20- else()
21- message(FATAL_ERROR "TOOLCHAIN_DIR is not set")
22- endif()
23-endif()
24- 
25-set(CPU_TYPE aarch64)
26-set(CMAKE_C_COMPILER "${TOOLCHAIN_DIR}/bin/aarch64-target-linux-gnu-gcc" CACHE PATH "C Compiler")
27-set(CMAKE_CXX_COMPILER "${TOOLCHAIN_DIR}/bin/aarch64-target-linux-gnu-g++" CACHE PATH "C++ Compiler")
28-set(CMAKE_LINKER "${TOOLCHAIN_DIR}/bin/aarch64-target-linux-gnu-g++" CACHE PATH "LINKER")
29-set(CMAKE_AR "${TOOLCHAIN_DIR}/bin/aarch64-target-linux-gnu-ar" CACHE PATH "AR")
30-set(CMAKE_RANLIB "${TOOLCHAIN_DIR}/bin/aarch64-target-linux-gnu-ranlib" CACHE PATH "RANLIB")
31-set(CMAKE_STRIP "${TOOLCHAIN_DIR}/bin/aarch64-target-linux-gnu-strip" CACHE PATH "STRIP")
32-set(CMAKE_LD "${TOOLCHAIN_DIR}/bin/aarch64-target-linux-gnu-ld" CACHE PATH "LD")
33-set(CMAKE_NM "${TOOLCHAIN_DIR}/bin/aarch64-target-linux-gnu-nm" CACHE PATH "NM")
34-set(CMAKE_OBJCOPY "${TOOLCHAIN_DIR}/bin/aarch64-target-linux-gnu-objcopy" CACHE PATH "OBJCOPY")
35- 
36-set(CMAKE_C_COMPILE_OBJECT "<CMAKE_C_COMPILER> <DEFINES> -D__FILE__='\"$(notdir $(abspath <SOURCE>))\"' -Wno-builtin-macro-redefined <INCLUDES> <FLAGS> -o <OBJECT> -c <SOURCE>")
37-set(CMAKE_CXX_COMPILE_OBJECT "<CMAKE_CXX_COMPILER> <DEFINES> -D__FILE__='\"$(notdir $(abspath <SOURCE>))\"' -Wno-builtin-macro-redefined <INCLUDES> <FLAGS> -o <OBJECT> -c <SOURCE>")
38- 
39-# remove default options from cmake
40-set(CMAKE_C_FLAGS_DEBUG "" CACHE STRING "c debug flag" FORCE)
41-set(CMAKE_C_FLAGS_RELEASE "" CACHE STRING "c release flag" FORCE)
42- 
43-set(CMAKE_CXX_FLAGS_DEBUG "" CACHE STRING "cxx debug flag" FORCE)
44-set(CMAKE_CXX_FLAGS_RELEASE "" CACHE STRING "cxx release flag" FORCE)
45- 
46-set(CMAKE_ASM_FLAGS_DEBUG "" CACHE STRING "asm debug flag" FORCE)
47-set(CMAKE_ASM_FLAGS_RELEASE "" CACHE STRING "asm release flag" FORCE)
48- 
49-# 删除静态库中的时间戳
50-set(CMAKE_C_ARCHIVE_CREATE "<CMAKE_AR> qcD <TARGET> <LINK_FLAGS> <OBJECTS>")
51-set(CMAKE_C_ARCHIVE_APPEND "<CMAKE_AR> qD <TARGET> <LINK_FLAGS> <OBJECTS>")
52-set(CMAKE_C_ARCHIVE_FINISH "<CMAKE_RANLIB> -D <TARGET>")
53- 
54-set(CMAKE_CXX_ARCHIVE_CREATE "<CMAKE_AR> qcD <TARGET> <LINK_FLAGS> <OBJECTS>")
55-set(CMAKE_CXX_ARCHIVE_APPEND "<CMAKE_AR> qD <TARGET> <LINK_FLAGS> <OBJECTS>")
56-set(CMAKE_CXX_ARCHIVE_FINISH "<CMAKE_RANLIB> -D <TARGET>")
57- 
58-set(CMAKE_SKIP_RPATH TRUE)
59- 
60-set(CMAKE_SKIP_INSTALL_ALL_DEPENDENCY TRUE)
Mcmake/config.cmake+0-4
@@ -34,10 +34,6 @@ set(HI_PYTHON "python3" CACHE STRING
34message(STATUS "config.cmake BUILD_OPEN_PROJECT=${BUILD_OPEN_PROJECT}")34message(STATUS "config.cmake BUILD_OPEN_PROJECT=${BUILD_OPEN_PROJECT}")
35message(STATUS "config.cmake PRODUCT=${PRODUCT} PRODUCT_SIDE=${PRODUCT_SIDE}")35message(STATUS "config.cmake PRODUCT=${PRODUCT} PRODUCT_SIDE=${PRODUCT_SIDE}")
36 36 
37-# Device 构建、安装目录
38-set(HCOMM_DEVICE_BUILD_PATH ${CMAKE_BINARY_DIR}/device_build)
39-set(HCOMM_DEVICE_INSTALL_PATH ${CMAKE_BINARY_DIR}/device_install)
40- 
41set(INSTALL_LIBRARY_DIR ${CMAKE_SYSTEM_PROCESSOR}-linux/lib64)37set(INSTALL_LIBRARY_DIR ${CMAKE_SYSTEM_PROCESSOR}-linux/lib64)
42set(INSTALL_INCLUDE_DIR ${CMAKE_SYSTEM_PROCESSOR}-linux/include)38set(INSTALL_INCLUDE_DIR ${CMAKE_SYSTEM_PROCESSOR}-linux/include)
43set(INSTALL_PKG_INCLUDE_DIR ${CMAKE_SYSTEM_PROCESSOR}-linux/pkg_inc)39set(INSTALL_PKG_INCLUDE_DIR ${CMAKE_SYSTEM_PROCESSOR}-linux/pkg_inc)
Mcmake/device/CMakeLists.txt+3-0
@@ -69,6 +69,7 @@ add_cann_sign_file(
69 INPUT "cann-hcomm-compat.tar.gz"69 INPUT "cann-hcomm-compat.tar.gz"
70 CONFIG "${HCOMM_DIR}/scripts/package/sign.xml"70 CONFIG "${HCOMM_DIR}/scripts/package/sign.xml"
71 RESULT_VAR "cann_hcomm_compat_signed_file"71 RESULT_VAR "cann_hcomm_compat_signed_file"
72+ VERSION "${CANN_VERSION_hcomm_VERSION}"
72 DEPENDS pack_cann_hcomm_compat73 DEPENDS pack_cann_hcomm_compat
73)74)
74 75 
@@ -85,6 +86,7 @@ add_cann_sign_file(
85 INPUT "cann-hccd-compat.tar.gz"86 INPUT "cann-hccd-compat.tar.gz"
86 CONFIG "${HCOMM_DIR}/scripts/package/sign.xml"87 CONFIG "${HCOMM_DIR}/scripts/package/sign.xml"
87 RESULT_VAR "cann_hccd_compat_signed_file"88 RESULT_VAR "cann_hccd_compat_signed_file"
89+ VERSION "${CANN_VERSION_hcomm_VERSION}"
88 DEPENDS pack_cann_hccd_compat sign_cann_hcomm_compat90 DEPENDS pack_cann_hccd_compat sign_cann_hcomm_compat
89)91)
90 92 
@@ -101,6 +103,7 @@ add_cann_sign_file(
101 INPUT "aicpu_hcomm.tar.gz"103 INPUT "aicpu_hcomm.tar.gz"
102 CONFIG "${HCOMM_DIR}/scripts/package/sign.xml"104 CONFIG "${HCOMM_DIR}/scripts/package/sign.xml"
103 RESULT_VAR "aicpu_hcomm_signed_file"105 RESULT_VAR "aicpu_hcomm_signed_file"
106+ VERSION "${CANN_VERSION_hcomm_VERSION}"
104 DEPENDS pack_aicpu_hcomm sign_cann_hccd_compat107 DEPENDS pack_aicpu_hcomm sign_cann_hccd_compat
105)108)
106 109 
Mcmake/fetch_cann_cmake.cmake+2-2
@@ -15,12 +15,12 @@ if(NOT PROJECT_SOURCE_DIR)
15 else()15 else()
16 include(FetchContent)16 include(FetchContent)
17 17 
18- set(CANN_CMAKE_TAG "master-042")18+ set(CANN_CMAKE_TAG "master-044")
19 if(CANN_3RD_LIB_PATH AND EXISTS "${CANN_3RD_LIB_PATH}/cmake-${CANN_CMAKE_TAG}.tar.gz")19 if(CANN_3RD_LIB_PATH AND EXISTS "${CANN_3RD_LIB_PATH}/cmake-${CANN_CMAKE_TAG}.tar.gz")
20 FetchContent_Declare(20 FetchContent_Declare(
21 cann-cmake21 cann-cmake
22 URL "${CANN_3RD_LIB_PATH}/cmake-${CANN_CMAKE_TAG}.tar.gz"22 URL "${CANN_3RD_LIB_PATH}/cmake-${CANN_CMAKE_TAG}.tar.gz"
23- URL_HASH SHA256=8482467199ba9667b3eb74f38275773944c84c9e5a37ecde1863e5ee4182fe8723+ URL_HASH SHA256=2d8827b33327978c7b49d09e3b1cfbd891b41b7b5123c290d41534d29a625056
24 )24 )
25 else()25 else()
26 FetchContent_Declare(26 FetchContent_Declare(
Mdocs/en/build/build.md+1-1
@@ -231,4 +231,4 @@ When compiling this project, the following third-party open source software depe
231| protobuf | 25.1 | [protobuf-25.1.tar.gz](https://gitcode.com/cann-src-third-party/protobuf/releases/download/v25.1/protobuf-25.1.tar.gz) |231| protobuf | 25.1 | [protobuf-25.1.tar.gz](https://gitcode.com/cann-src-third-party/protobuf/releases/download/v25.1/protobuf-25.1.tar.gz) |
232| rdma-core | v42.7-h1 | [rdma-core-42.7.tar.gz](https://gitcode.com/cann-src-third-party/rdma-core/releases/download/v42.7-h1/rdma-core-42.7.tar.gz) |232| rdma-core | v42.7-h1 | [rdma-core-42.7.tar.gz](https://gitcode.com/cann-src-third-party/rdma-core/releases/download/v42.7-h1/rdma-core-42.7.tar.gz) |
233| rdma-core-patch | v42.7-h1 | [rdma-core-42.7.patch](https://gitcode.com/cann-src-third-party/rdma-core/releases/download/v42.7-h1/rdma-core-42.7.patch) |233| rdma-core-patch | v42.7-h1 | [rdma-core-42.7.patch](https://gitcode.com/cann-src-third-party/rdma-core/releases/download/v42.7-h1/rdma-core-42.7.patch) |
234-| cann-cmake | master-040 | [cmake-master-040.tar.gz](https://cann-3rd.obs.cn-north-4.myhuaweicloud.com/cmake/cmake-master-040.tar.gz) |234+| cann-cmake | master-044 | [cmake-master-044.tar.gz](https://raw.gitcode.com/cann/cmake/archive/refs/heads/master-044.tar.gz) |
Mdocs/zh/build/build.md+1-1
@@ -231,4 +231,4 @@ bash build.sh --ut
231| protobuf | 25.1 | [protobuf-25.1.tar.gz](https://gitcode.com/cann-src-third-party/protobuf/releases/download/v25.1/protobuf-25.1.tar.gz) |231| protobuf | 25.1 | [protobuf-25.1.tar.gz](https://gitcode.com/cann-src-third-party/protobuf/releases/download/v25.1/protobuf-25.1.tar.gz) |
232| rdma-core | v42.7-h1 | [rdma-core-42.7.tar.gz](https://gitcode.com/cann-src-third-party/rdma-core/releases/download/v42.7-h1/rdma-core-42.7.tar.gz) |232| rdma-core | v42.7-h1 | [rdma-core-42.7.tar.gz](https://gitcode.com/cann-src-third-party/rdma-core/releases/download/v42.7-h1/rdma-core-42.7.tar.gz) |
233| rdma-core-patch | v42.7-h1 | [rdma-core-42.7.patch](https://gitcode.com/cann-src-third-party/rdma-core/releases/download/v42.7-h1/rdma-core-42.7.patch)|233| rdma-core-patch | v42.7-h1 | [rdma-core-42.7.patch](https://gitcode.com/cann-src-third-party/rdma-core/releases/download/v42.7-h1/rdma-core-42.7.patch)|
234-| cann-cmake | master-040 | [cmake-master-040.tar.gz](https://cann-3rd.obs.cn-north-4.myhuaweicloud.com/cmake/cmake-master-040.tar.gz) |234+| cann-cmake | master-044 | [cmake-master-044.tar.gz](https://raw.gitcode.com/cann/cmake/archive/refs/heads/master-044.tar.gz) |