Merged
统一CXX11_ABI计算逻辑,修复三方库构建配置问题 #289
zhaoyingdongAdd on Aug 19
统一CXX11_ABI计算逻辑,修复三方库构建配置问题 #289
Merged
Merged fromDeleted :masterintocann/cmakemaster
Total: 27 files changed+149-225
| @@ -48,7 +48,7 @@ pre-commit run --all-files # manual full-repo check | |||
| 48 | - **`CANN_TOP_DIR`** is resolved as the parent of this repo (`function/function.cmake:31`). Package dependency resolution reads `version.cmake` files from `${CANN_TOP_DIR}/${pkg_dir}` — `superbuild/config.cmake` maps both package→source dir (`CANN_PACKAGE_DIR_*`) and package→components (`CANN_PACKAGE_COMPONENTS_*`); update both when adding a package. | 48 | - **`CANN_TOP_DIR`** is resolved as the parent of this repo (`function/function.cmake:31`). Package dependency resolution reads `version.cmake` files from `${CANN_TOP_DIR}/${pkg_dir}` — `superbuild/config.cmake` maps both package→source dir (`CANN_PACKAGE_DIR_*`) and package→components (`CANN_PACKAGE_COMPONENTS_*`); update both when adding a package. |
| 49 | - **Device cross-compile** uses `toolchain/aarch64-hcc-toolchain.cmake` (aarch64 target via hcc; compiler is `${TOOLCHAIN_DIR}/bin/aarch64-target-linux-gnu-gcc`, where `TOOLCHAIN_DIR` defaults to `${ASCEND_INSTALL_PATH}/toolkit/toolchain/hcc`). Host builds compile in-process via `add_subdirectory` of each sibling repo under `CANN_TOP_DIR`; only device builds run as a separate `ExternalProject_Add` step. `PRODUCT_SIDE` (`host`/`device`) controls which source dirs are added — host adds `<pkg>`, device adds `<pkg>/cmake/device` (the `cmake/device` subdir arg passed to `get_package_dirs` at `superbuild/device/CMakeLists.txt:17`). Device cross-compile is auto-skipped when no selected package has a `cmake/device` subdir; `calc_device_packages` also excludes `ge-executor`/`ge-compiler` (pure host-side packages sharing the `ge` repo with `dflow-executor`) so they never trigger device build. `--build_host_only` forces it off via `ENABLE_BUILD_DEVICE=FALSE`; when `build.sh` is not used, `ENABLE_BUILD_DEVICE` defaults to `TRUE` (`superbuild/CMakeLists.txt:43-47`). | 49 | - **Device cross-compile** uses `toolchain/aarch64-hcc-toolchain.cmake` (aarch64 target via hcc; compiler is `${TOOLCHAIN_DIR}/bin/aarch64-target-linux-gnu-gcc`, where `TOOLCHAIN_DIR` defaults to `${ASCEND_INSTALL_PATH}/toolkit/toolchain/hcc`). Host builds compile in-process via `add_subdirectory` of each sibling repo under `CANN_TOP_DIR`; only device builds run as a separate `ExternalProject_Add` step. `PRODUCT_SIDE` (`host`/`device`) controls which source dirs are added — host adds `<pkg>`, device adds `<pkg>/cmake/device` (the `cmake/device` subdir arg passed to `get_package_dirs` at `superbuild/device/CMakeLists.txt:17`). Device cross-compile is auto-skipped when no selected package has a `cmake/device` subdir; `calc_device_packages` also excludes `ge-executor`/`ge-compiler` (pure host-side packages sharing the `ge` repo with `dflow-executor`) so they never trigger device build. `--build_host_only` forces it off via `ENABLE_BUILD_DEVICE=FALSE`; when `build.sh` is not used, `ENABLE_BUILD_DEVICE` defaults to `TRUE` (`superbuild/CMakeLists.txt:43-47`). |
| 50 | - **`__FILE__` macro rewriting:** Both `prepare.cmake` (non-Ninja) and the toolchain file override `CMAKE_C/CXX_COMPILE_OBJECT` to emit only the basename in `__FILE__`, plus `-Wno-builtin-macro-redefined`. Preserve this when touching compile rules. | 50 | - **`__FILE__` macro rewriting:** Both `prepare.cmake` (non-Ninja) and the toolchain file override `CMAKE_C/CXX_COMPILE_OBJECT` to emit only the basename in `__FILE__`, plus `-Wno-builtin-macro-redefined`. Preserve this when touching compile rules. |
| 51 | -- **ABI:** Host defaults to `_GLIBCXX_USE_CXX11_ABI=0` (old ABI); device leaves it unset. See `intf_pub/intf_pub_linux.cmake:38`. `USE_CXX11_ABI` overrides this. | 51 | +- **ABI:** `CANN_CXX11_ABI` is computed once in `init_cann_project()` (`function/prepare.cmake`) and consumed by `intf_pub` + all third-party scripts. Host defaults to `_GLIBCXX_USE_CXX11_ABI=0` (old ABI); device defaults to `1`. `USE_CXX11_ABI` overrides either. See `intf_pub/intf_pub_linux.cmake:57`. |
| 52 | - **ccache** is on by default (`ENABLE_CCACHE`). | 52 | - **ccache** is on by default (`ENABLE_CCACHE`). |
| 53 | - **Dependency pairs are stride-2 lists:** `set_cann_build_dependencies`/`set_cann_run_dependencies` append `pkg;version` pairs to `CANN_VERSION_*_BUILD_DEPS`/`_RUN_DEPS`. Consumers (`get_build_pkg_deps` in `function/function.cmake`, `scripts/version/generate_version_info.py`) walk the list 2 at a time, so changing the call format requires updating both (flagged in code comments). | 53 | - **Dependency pairs are stride-2 lists:** `set_cann_build_dependencies`/`set_cann_run_dependencies` append `pkg;version` pairs to `CANN_VERSION_*_BUILD_DEPS`/`_RUN_DEPS`. Consumers (`get_build_pkg_deps` in `function/function.cmake`, `scripts/version/generate_version_info.py`) walk the list 2 at a time, so changing the call format requires updating both (flagged in code comments). |
| 54 | - **Never set `EXCLUDE_FROM_ALL` on `add_subdirectory`** — CMake then skips that dir's `install()` rules, silently dropping components from packages. `set_cann_all_targets` (`function/function.cmake:182`) instead marks individual *targets* `EXCLUDE_FROM_ALL` and aggregates wanted ones under `cann_all_targets`; the `add_subdirectory` calls in `superbuild/CMakeLists.txt:67` deliberately omit it for the same reason. | 54 | - **Never set `EXCLUDE_FROM_ALL` on `add_subdirectory`** — CMake then skips that dir's `install()` rules, silently dropping components from packages. `set_cann_all_targets` (`function/function.cmake:182`) instead marks individual *targets* `EXCLUDE_FROM_ALL` and aggregates wanted ones under `cann_all_targets`; the `add_subdirectory` calls in `superbuild/CMakeLists.txt:67` deliberately omit it for the same reason. |
| @@ -143,7 +143,7 @@ get_pkg_dependencies("runtime") | |||
| 143 | - **安全加固**:`-fstack-protector-strong`、`-fPIC`、`-Wall -Wextra` | 143 | - **安全加固**:`-fstack-protector-strong`、`-fPIC`、`-Wall -Wextra` |
| 144 | - **Sanitizer**:ASan/TSan/UBSan,通过 `ENABLE_ASAN`/`ENABLE_TSAN`/`ENABLE_UBSAN` 控制 | 144 | - **Sanitizer**:ASan/TSan/UBSan,通过 `ENABLE_ASAN`/`ENABLE_TSAN`/`ENABLE_UBSAN` 控制 |
| 145 | - **严格告警**:`-Wformat=2`/`-Wduplicated-branches`/`-Wlogical-op` 等,通过 `ENABLE_STRICT_WARNINGS` 控制(默认关闭)。须在首次 include `intf_pub` 之前设置方可生效 | 145 | - **严格告警**:`-Wformat=2`/`-Wduplicated-branches`/`-Wlogical-op` 等,通过 `ENABLE_STRICT_WARNINGS` 控制(默认关闭)。须在首次 include `intf_pub` 之前设置方可生效 |
| 146 | -- **ABI**:host 默认 `_GLIBCXX_USE_CXX11_ABI=0`(旧 ABI),device 不设置,`USE_CXX11_ABI` 可覆盖 | 146 | +- **ABI**:`CANN_CXX11_ABI` 在 `init_cann_project()` 中统一计算(`function/prepare.cmake`),供 `intf_pub` 及三方库共用。host 默认 `_GLIBCXX_USE_CXX11_ABI=0`(旧 ABI),device 默认 `1`,`USE_CXX11_ABI` 可覆盖 |
| 147 | - **`__FILE__` 宏改写**:非 Ninja 模式下,编译规则被覆写为只输出文件名(不输出完整路径),同时添加 `-Wno-builtin-macro-redefined`。device 工具链文件中同样覆写 | 147 | - **`__FILE__` 宏改写**:非 Ninja 模式下,编译规则被覆写为只输出文件名(不输出完整路径),同时添加 `-Wno-builtin-macro-redefined`。device 工具链文件中同样覆写 |
| 148 | 148 | ||
| 149 | ### C++ 标准 | 149 | ### C++ 标准 |
| @@ -137,7 +137,7 @@ cmake -B build -DCMAKE_BUILD_TYPE=Debug ... | |||
| 137 | | `ENABLE_ASAN` | 启用 AddressSanitizer | `FALSE` | | 137 | | `ENABLE_ASAN` | 启用 AddressSanitizer | `FALSE` | |
| 138 | | `ENABLE_GCOV` | 启用代码覆盖率 | `FALSE` | | 138 | | `ENABLE_GCOV` | 启用代码覆盖率 | `FALSE` | |
| 139 | | `ENABLE_STRICT_WARNINGS` | 启用增强告警(须在首次 include `intf_pub` 前设置) | `FALSE` | | 139 | | `ENABLE_STRICT_WARNINGS` | 启用增强告警(须在首次 include `intf_pub` 前设置) | `FALSE` | |
| 140 | -| `USE_CXX11_ABI` | 覆盖 CXX11 ABI 设置(host 默认 `0`) | 自动 | | 140 | +| `USE_CXX11_ABI` | 覆盖 CXX11 ABI 设置(host 默认 `0`,device 默认 `1`) | 自动 | |
| 141 | | `CMAKE_BUILD_TYPE` | 构建类型 | `Release` | | 141 | | `CMAKE_BUILD_TYPE` | 构建类型 | `Release` | |
| 142 | 142 | ||
| 143 | ## host 侧与 device 侧构建 | 143 | ## host 侧与 device 侧构建 |
| @@ -167,7 +167,7 @@ cmake --build build -j8 | |||
| 167 | |------|------|--------| | 167 | |------|------|--------| |
| 168 | | 工具链 | 系统默认 GCC | hcc 交叉编译工具链 | | 168 | | 工具链 | 系统默认 GCC | hcc 交叉编译工具链 | |
| 169 | | `PRODUCT_SIDE` | `host`(或不设置) | `device` | | 169 | | `PRODUCT_SIDE` | `host`(或不设置) | `device` | |
| 170 | -| ABI | `_GLIBCXX_USE_CXX11_ABI=0` | 不设置 | | 170 | +| ABI | `_GLIBCXX_USE_CXX11_ABI=0` | `_GLIBCXX_USE_CXX11_ABI=1` | |
| 171 | | 源码目录 | `<pkg>/` | `<pkg>/cmake/device/` | | 171 | | 源码目录 | `<pkg>/` | `<pkg>/cmake/device/` | |
| 172 | 172 | ||
| 173 | ## 环境依赖 | 173 | ## 环境依赖 |
| @@ -130,6 +130,20 @@ macro(init_cann_project) | |||
| 130 | set(PRODUCT_SIDE "${CANN_PRODUCT_SIDE}") | 130 | set(PRODUCT_SIDE "${CANN_PRODUCT_SIDE}") |
| 131 | endif() | 131 | endif() |
| 132 | 132 | ||
| 133 | + # 统一计算 CXX11 ABI 值,供 intf_pub 和三方库共用 | ||
| 134 | + # USE_CXX11_ABI 支持 0/1/ON/OFF/TRUE/FALSE 等布尔写法,统一归一化为 0 或 1 | ||
| 135 | + if(DEFINED USE_CXX11_ABI) | ||
| 136 | + if(USE_CXX11_ABI) | ||
| 137 | + set(CANN_CXX11_ABI 1) | ||
| 138 | + else() | ||
| 139 | + set(CANN_CXX11_ABI 0) | ||
| 140 | + endif() | ||
| 141 | + elseif(NOT PRODUCT_SIDE STREQUAL "device") | ||
| 142 | + set(CANN_CXX11_ABI 0) | ||
| 143 | + else() | ||
| 144 | + set(CANN_CXX11_ABI 1) | ||
| 145 | + endif() | ||
| 146 | + | ||
| 133 | if(POLICY CMP0135) | 147 | if(POLICY CMP0135) |
| 134 | cmake_policy(SET CMP0135 NEW) | 148 | cmake_policy(SET CMP0135 NEW) |
| 135 | endif() | 149 | endif() |
| @@ -53,18 +53,22 @@ if(ENABLE_STRICT_WARNINGS) | |||
| 53 | ) | 53 | ) |
| 54 | endif() | 54 | endif() |
| 55 | 55 | ||
| 56 | -unset(CXX11_ABI_VALUE) | 56 | +# ABI 值由 init_cann_project() 统一计算,此处直接引用 |
| 57 | -if(DEFINED USE_CXX11_ABI) | 57 | +# 若未调用 init_cann_project()(如直接 include intf_pub),使用与 init_cann_project 一致的默认值 |
| 58 | - if(USE_CXX11_ABI) | 58 | +if(NOT DEFINED CANN_CXX11_ABI) |
| 59 | - set(CXX11_ABI_VALUE 1) | 59 | + if(DEFINED USE_CXX11_ABI) |
| 60 | + if(USE_CXX11_ABI) | ||
| 61 | + set(CANN_CXX11_ABI 1) | ||
| 62 | + else() | ||
| 63 | + set(CANN_CXX11_ABI 0) | ||
| 64 | + endif() | ||
| 65 | + elseif(NOT PRODUCT_SIDE STREQUAL "device") | ||
| 66 | + set(CANN_CXX11_ABI 0) | ||
| 60 | else() | 67 | else() |
| 61 | - set(CXX11_ABI_VALUE 0) | 68 | + set(CANN_CXX11_ABI 1) |
| 62 | endif() | 69 | endif() |
| 63 | -elseif(NOT PRODUCT_SIDE STREQUAL "device") | ||
| 64 | - set(CXX11_ABI_VALUE 0) | ||
| 65 | endif() | 70 | endif() |
| 66 | - | 71 | +if(DEFINED CANN_CXX11_ABI) |
| 67 | -if(DEFINED CXX11_ABI_VALUE) | ||
| 68 | # 支持target通设置CANN_GLIBCXX_USE_CXX11_ABI属性,配置_GLIBCXX_USE_CXX11_ABI编译宏的值 | 72 | # 支持target通设置CANN_GLIBCXX_USE_CXX11_ABI属性,配置_GLIBCXX_USE_CXX11_ABI编译宏的值 |
| 69 | string(CONCAT _GEN_EXPR | 73 | string(CONCAT _GEN_EXPR |
| 70 | "$<$<COMPILE_LANGUAGE:CXX>:" | 74 | "$<$<COMPILE_LANGUAGE:CXX>:" |
| @@ -73,7 +77,7 @@ if(DEFINED CXX11_ABI_VALUE) | |||
| 73 | "$<STREQUAL:$<TARGET_PROPERTY:CANN_GLIBCXX_USE_CXX11_ABI>,0>," | 77 | "$<STREQUAL:$<TARGET_PROPERTY:CANN_GLIBCXX_USE_CXX11_ABI>,0>," |
| 74 | "$<BOOL:$<TARGET_PROPERTY:CANN_GLIBCXX_USE_CXX11_ABI>>>," | 78 | "$<BOOL:$<TARGET_PROPERTY:CANN_GLIBCXX_USE_CXX11_ABI>>>," |
| 75 | "_GLIBCXX_USE_CXX11_ABI=$<TARGET_PROPERTY:CANN_GLIBCXX_USE_CXX11_ABI>," | 79 | "_GLIBCXX_USE_CXX11_ABI=$<TARGET_PROPERTY:CANN_GLIBCXX_USE_CXX11_ABI>," |
| 76 | - "_GLIBCXX_USE_CXX11_ABI=${CXX11_ABI_VALUE}>>" | 80 | + "_GLIBCXX_USE_CXX11_ABI=${CANN_CXX11_ABI}>>" |
| 77 | ) | 81 | ) |
| 78 | target_compile_definitions(intf_pub_base INTERFACE | 82 | target_compile_definitions(intf_pub_base INTERFACE |
| 79 | "${_GEN_EXPR}" | 83 | "${_GEN_EXPR}" |
| @@ -9,10 +9,6 @@ | |||
| 9 | # ---------------------------------------------------------------------------- | 9 | # ---------------------------------------------------------------------------- |
| 10 | include_guard(GLOBAL) | 10 | include_guard(GLOBAL) |
| 11 | 11 | ||
| 12 | -if(POLICY CMP0135) | ||
| 13 | - cmake_policy(SET CMP0135 NEW) | ||
| 14 | -endif() | ||
| 15 | - | ||
| 16 | unset(abseil-cpp_FOUND CACHE) | 12 | unset(abseil-cpp_FOUND CACHE) |
| 17 | unset(ABSL_SOURCE_DIR CACHE) | 13 | unset(ABSL_SOURCE_DIR CACHE) |
| 18 | 14 | ||
| @@ -61,11 +57,9 @@ else() | |||
| 61 | 57 | ||
| 62 | if(EXISTS ${CANN_3RD_LIB_PATH}/abseil-cpp/backport-CVE-2025-0838.patch) | 58 | if(EXISTS ${CANN_3RD_LIB_PATH}/abseil-cpp/backport-CVE-2025-0838.patch) |
| 63 | set(ABSL_CVE_PATCH_FILE ${CANN_3RD_LIB_PATH}/abseil-cpp/backport-CVE-2025-0838.patch) | 59 | set(ABSL_CVE_PATCH_FILE ${CANN_3RD_LIB_PATH}/abseil-cpp/backport-CVE-2025-0838.patch) |
| 64 | - message(STATUS "[ThirdParty][abseil-cpp] cve patch use cache: ${ABSL_CVE_PATCH_FILE}") | ||
| 65 | add_custom_target(abseil_cve_patch) | 60 | add_custom_target(abseil_cve_patch) |
| 66 | elseif(EXISTS ${ABS_PKG_DIR}/backport-CVE-2025-0838.patch) | 61 | elseif(EXISTS ${ABS_PKG_DIR}/backport-CVE-2025-0838.patch) |
| 67 | set(ABSL_CVE_PATCH_FILE ${ABS_PKG_DIR}/backport-CVE-2025-0838.patch) | 62 | set(ABSL_CVE_PATCH_FILE ${ABS_PKG_DIR}/backport-CVE-2025-0838.patch) |
| 68 | - message(STATUS "[ThirdParty][abseil-cpp] cve patch use cache: ${ABSL_CVE_PATCH_FILE}") | ||
| 69 | add_custom_target(abseil_cve_patch) | 63 | add_custom_target(abseil_cve_patch) |
| 70 | else() | 64 | else() |
| 71 | # 路径不能与 abseil 源码目录相同,构建时会清理 | 65 | # 路径不能与 abseil 源码目录相同,构建时会清理 |
| @@ -85,6 +79,9 @@ else() | |||
| 85 | ) | 79 | ) |
| 86 | message(STATUS "[ThirdParty][abseil-cpp] cve patch need download to: ${ABSL_CVE_PATCH_FILE}") | 80 | message(STATUS "[ThirdParty][abseil-cpp] cve patch need download to: ${ABSL_CVE_PATCH_FILE}") |
| 87 | endif() | 81 | endif() |
| 82 | + if(TARGET abseil_cve_patch) | ||
| 83 | + message(STATUS "[ThirdParty][abseil-cpp] cve patch use cache: ${ABSL_CVE_PATCH_FILE}") | ||
| 84 | + endif() | ||
| 88 | 85 | ||
| 89 | ExternalProject_Add(abseil_build | 86 | ExternalProject_Add(abseil_build |
| 90 | URL ${REQ_URL} | 87 | URL ${REQ_URL} |
| @@ -92,7 +89,7 @@ else() | |||
| 92 | DOWNLOAD_DIR ${ABS_PKG_DIR} | 89 | DOWNLOAD_DIR ${ABS_PKG_DIR} |
| 93 | SOURCE_DIR ${ABS_INSTALL_DIR} | 90 | SOURCE_DIR ${ABS_INSTALL_DIR} |
| 94 | TIMEOUT 300 | 91 | TIMEOUT 300 |
| 95 | - PATCH_COMMAND patch -p1 < ${CMAKE_CURRENT_LIST_DIR}/patch/protobuf-hide_absl_symbols.patch && patch -p1 < ${ABSL_CVE_PATCH_FILE} && patch -p1 < ${CMAKE_CURRENT_LIST_DIR}/patch/fix-gcc15-gcc16-container-memory-cstdint.patch | 92 | + PATCH_COMMAND patch --forward --batch --quiet -r - -p1 < ${CMAKE_CURRENT_LIST_DIR}/patch/protobuf-hide_absl_symbols.patch && patch --forward --batch --quiet -r - -p1 < ${ABSL_CVE_PATCH_FILE} && patch --forward --batch --quiet -r - -p1 < ${CMAKE_CURRENT_LIST_DIR}/patch/fix-gcc15-gcc16-container-memory-cstdint.patch |
| 96 | CONFIGURE_COMMAND "" | 93 | CONFIGURE_COMMAND "" |
| 97 | BUILD_COMMAND "" | 94 | BUILD_COMMAND "" |
| 98 | INSTALL_COMMAND "" | 95 | INSTALL_COMMAND "" |
| @@ -43,7 +43,7 @@ else() | |||
| 43 | endif() | 43 | endif() |
| 44 | 44 | ||
| 45 | include(ExternalProject) | 45 | include(ExternalProject) |
| 46 | -set(benchmark_CXXFLAGS "-D_GLIBCXX_USE_CXX11_ABI=${USE_CXX11_ABI} -D_FORTIFY_SOURCE=2 -O2 -fstack-protector-all -Wl,-z,relro,-z,now,-z,noexecstack") | 46 | +set(benchmark_CXXFLAGS "-D_GLIBCXX_USE_CXX11_ABI=${CANN_CXX11_ABI} -D_FORTIFY_SOURCE=2 -O2 -fstack-protector-all -Wl,-z,relro,-z,now,-z,noexecstack") |
| 47 | set(BENCHMARK_TOOLCHAIN_ARGS) | 47 | set(BENCHMARK_TOOLCHAIN_ARGS) |
| 48 | if(CMAKE_TOOLCHAIN_FILE) | 48 | if(CMAKE_TOOLCHAIN_FILE) |
| 49 | list(APPEND BENCHMARK_TOOLCHAIN_ARGS -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}) | 49 | list(APPEND BENCHMARK_TOOLCHAIN_ARGS -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}) |
| @@ -13,10 +13,6 @@ include(ExternalProject) | |||
| 13 | unset(boost_FOUND CACHE) | 13 | unset(boost_FOUND CACHE) |
| 14 | unset(BOOST_INCLUDE CACHE) | 14 | unset(BOOST_INCLUDE CACHE) |
| 15 | 15 | ||
| 16 | -if(NOT OPEN_PKG_PATH) | ||
| 17 | - set(OPEN_PKG_PATH ${CANN_3RD_LIB_PATH}/pkg) | ||
| 18 | -endif() | ||
| 19 | - | ||
| 20 | set(BOOST_DOWNLOAD_PATH ${CANN_3RD_LIB_PATH}/pkg) | 16 | set(BOOST_DOWNLOAD_PATH ${CANN_3RD_LIB_PATH}/pkg) |
| 21 | set(BOOST_SRC_PATH ${CANN_3RD_LIB_PATH}/boost) | 17 | set(BOOST_SRC_PATH ${CANN_3RD_LIB_PATH}/boost) |
| 22 | set(BOOST_INSTALL_PATH ${CANN_3RD_LIB_PATH}/lib_cache/boost) | 18 | set(BOOST_INSTALL_PATH ${CANN_3RD_LIB_PATH}/lib_cache/boost) |
| @@ -44,16 +40,17 @@ if(boost_FOUND AND NOT FORCE_REBUILD_CANN_3RD) | |||
| 44 | else() | 40 | else() |
| 45 | if(EXISTS ${CANN_3RD_LIB_PATH}/boost/${BOOST_FILE}) | 41 | if(EXISTS ${CANN_3RD_LIB_PATH}/boost/${BOOST_FILE}) |
| 46 | set(REQ_URL ${CANN_3RD_LIB_PATH}/boost/${BOOST_FILE}) | 42 | set(REQ_URL ${CANN_3RD_LIB_PATH}/boost/${BOOST_FILE}) |
| 47 | - message(STATUS "[ThirdParty][boost] Found local boost package: ${REQ_URL}") | ||
| 48 | elseif(EXISTS ${CANN_3RD_LIB_PATH}/${BOOST_FILE}) | 43 | elseif(EXISTS ${CANN_3RD_LIB_PATH}/${BOOST_FILE}) |
| 49 | # 离线编译场景,优先使用已下载的包 | 44 | # 离线编译场景,优先使用已下载的包 |
| 50 | set(REQ_URL ${CANN_3RD_LIB_PATH}/${BOOST_FILE}) | 45 | set(REQ_URL ${CANN_3RD_LIB_PATH}/${BOOST_FILE}) |
| 51 | - message(STATUS "[ThirdParty][boost] Found local boost package: ${REQ_URL}") | ||
| 52 | else() | 46 | else() |
| 53 | # 下载并解压 | 47 | # 下载并解压 |
| 54 | - message(STATUS "[ThirdParty][boost] Downloading ${BOOST_NAME} from ${DOWNLOAD_URL}") | 48 | + message(STATUS "[ThirdParty][boost] Downloading ${BOOST_FILE} from ${DOWNLOAD_URL}") |
| 55 | set(REQ_URL ${DOWNLOAD_URL}) | 49 | set(REQ_URL ${DOWNLOAD_URL}) |
| 56 | endif() | 50 | endif() |
| 51 | + if(EXISTS ${REQ_URL}) | ||
| 52 | + message(STATUS "[ThirdParty][boost] Found local boost package: ${REQ_URL}") | ||
| 53 | + endif() | ||
| 57 | 54 | ||
| 58 | ExternalProject_Add(third_party_boost | 55 | ExternalProject_Add(third_party_boost |
| 59 | URL ${REQ_URL} | 56 | URL ${REQ_URL} |
| @@ -64,6 +61,7 @@ else() | |||
| 64 | CONFIGURE_COMMAND "" # 无需编译,只需解压 | 61 | CONFIGURE_COMMAND "" # 无需编译,只需解压 |
| 65 | BUILD_COMMAND "" | 62 | BUILD_COMMAND "" |
| 66 | INSTALL_COMMAND "" | 63 | INSTALL_COMMAND "" |
| 64 | + EXCLUDE_FROM_ALL TRUE | ||
| 67 | ) | 65 | ) |
| 68 | endif() | 66 | endif() |
| 69 | 67 | ||
| @@ -87,7 +85,7 @@ ExternalProject_Add(third_party_boost_headers | |||
| 87 | runtime-link=shared | 85 | runtime-link=shared |
| 88 | threading=multi | 86 | threading=multi |
| 89 | cxxstd=17 | 87 | cxxstd=17 |
| 90 | - "cxxflags=-fPIC -fstack-protector-all -D_FORTIFY_SOURCE=2 -fvisibility=hidden -fvisibility-inlines-hidden -fno-common -D_GLIBCXX_USE_CXX11_ABI=0 -DBOOST_FILESYSTEM_NO_CXX20_ATOMIC_REF" | 88 | + "cxxflags=-fPIC -fstack-protector-all -D_FORTIFY_SOURCE=2 -fvisibility=hidden -fvisibility-inlines-hidden -fno-common -D_GLIBCXX_USE_CXX11_ABI=${CANN_CXX11_ABI} -DBOOST_FILESYSTEM_NO_CXX20_ATOMIC_REF" |
| 91 | install | 89 | install |
| 92 | INSTALL_COMMAND "" | 90 | INSTALL_COMMAND "" |
| 93 | BUILD_BYPRODUCTS ${BOOST_FILESYSTEM_LIBRARY} | 91 | BUILD_BYPRODUCTS ${BOOST_FILESYSTEM_LIBRARY} |
| @@ -106,9 +104,7 @@ add_library(Boost::filesystem ALIAS boost_filesystem) | |||
| 106 | 104 | ||
| 107 | # use for dvpp service | 105 | # use for dvpp service |
| 108 | add_library(boost INTERFACE) | 106 | add_library(boost INTERFACE) |
| 109 | -set_property(TARGET boost PROPERTY | 107 | +target_include_directories(boost SYSTEM INTERFACE ${BOOST_SRC_PATH}) |
| 110 | - INTERFACE_INCLUDE_DIRECTORIES ${BOOST_SRC_PATH} | ||
| 111 | -) | ||
| 112 | add_library(Boost::boost ALIAS boost) | 108 | add_library(Boost::boost ALIAS boost) |
| 113 | if(TARGET third_party_boost) | 109 | if(TARGET third_party_boost) |
| 114 | add_dependencies(third_party_boost_headers third_party_boost) | 110 | add_dependencies(third_party_boost_headers third_party_boost) |
| @@ -10,33 +10,30 @@ | |||
| 10 | 10 | ||
| 11 | include_guard(GLOBAL) | 11 | include_guard(GLOBAL) |
| 12 | 12 | ||
| 13 | -if(POLICY CMP0135) | ||
| 14 | - cmake_policy(SET CMP0135 NEW) | ||
| 15 | -endif() | ||
| 16 | - | ||
| 17 | if(PRODUCT_SIDE STREQUAL "device") | 13 | if(PRODUCT_SIDE STREQUAL "device") |
| 18 | - set(CARES_INTALL_PATH ${CANN_3RD_LIB_PATH}/lib_cache/device/c-ares) | 14 | + set(CARES_INSTALL_PATH ${CANN_3RD_LIB_PATH}/lib_cache/device/c-ares) |
| 19 | set(CARES_PKG_PATH ${CANN_3RD_LIB_PATH}/pkg/device) | 15 | set(CARES_PKG_PATH ${CANN_3RD_LIB_PATH}/pkg/device) |
| 20 | else() | 16 | else() |
| 21 | - set(CARES_INTALL_PATH ${CANN_3RD_LIB_PATH}/lib_cache/c-ares) | 17 | + set(CARES_INSTALL_PATH ${CANN_3RD_LIB_PATH}/lib_cache/c-ares) |
| 22 | set(CARES_PKG_PATH ${CANN_3RD_LIB_PATH}/pkg) | 18 | set(CARES_PKG_PATH ${CANN_3RD_LIB_PATH}/pkg) |
| 23 | endif() | 19 | endif() |
| 24 | 20 | ||
| 25 | -set(CARES_FILE ${CARES_INTALL_PATH}/include/ares.h) | 21 | +set(CARES_FILE ${CARES_INSTALL_PATH}/include/ares.h) |
| 26 | if (EXISTS ${CARES_FILE}) | 22 | if (EXISTS ${CARES_FILE}) |
| 27 | - message(STATUS "[ThirdPartyLib][c-ares] ${CARES_FILE} found.") | 23 | + message(STATUS "[ThirdParty][cares] ${CARES_FILE} found.") |
| 28 | add_custom_target(cares_build) | 24 | add_custom_target(cares_build) |
| 29 | else() | 25 | else() |
| 30 | 26 | ||
| 31 | if(EXISTS ${CANN_3RD_LIB_PATH}/c-ares/c-ares-1.19.1.tar.gz) | 27 | if(EXISTS ${CANN_3RD_LIB_PATH}/c-ares/c-ares-1.19.1.tar.gz) |
| 32 | set(REQ_URL "${CANN_3RD_LIB_PATH}/c-ares/c-ares-1.19.1.tar.gz") | 28 | set(REQ_URL "${CANN_3RD_LIB_PATH}/c-ares/c-ares-1.19.1.tar.gz") |
| 33 | - message(STATUS "[ThirdPartyLib][c-ares] ${REQ_URL} found.") | ||
| 34 | elseif(EXISTS ${CANN_3RD_LIB_PATH}/c-ares-1.19.1.tar.gz) | 29 | elseif(EXISTS ${CANN_3RD_LIB_PATH}/c-ares-1.19.1.tar.gz) |
| 35 | set(REQ_URL "${CANN_3RD_LIB_PATH}/c-ares-1.19.1.tar.gz") | 30 | set(REQ_URL "${CANN_3RD_LIB_PATH}/c-ares-1.19.1.tar.gz") |
| 36 | - message(STATUS "[ThirdPartyLib][c-ares] ${REQ_URL} found.") | ||
| 37 | else() | 31 | else() |
| 38 | set(REQ_URL "https://cann-3rd.obs.cn-north-4.myhuaweicloud.com/c-ares/c-ares-1.19.1.tar.gz") | 32 | set(REQ_URL "https://cann-3rd.obs.cn-north-4.myhuaweicloud.com/c-ares/c-ares-1.19.1.tar.gz") |
| 39 | - message(STATUS "[ThirdPartyLib][c-ares] ${REQ_URL} not found, need download.") | 33 | + message(STATUS "[ThirdParty][cares] ${REQ_URL} not found, need download.") |
| 34 | + endif() | ||
| 35 | + if(EXISTS ${REQ_URL}) | ||
| 36 | + message(STATUS "[ThirdParty][cares] ${REQ_URL} found.") | ||
| 40 | endif() | 37 | endif() |
| 41 | 38 | ||
| 42 | include(ExternalProject) | 39 | include(ExternalProject) |
| @@ -45,11 +42,11 @@ else() | |||
| 45 | URL_HASH SHA256=321700399b72ed0e037d0074c629e7741f6b2ec2dda92956abe3e9671d3e268e | 42 | URL_HASH SHA256=321700399b72ed0e037d0074c629e7741f6b2ec2dda92956abe3e9671d3e268e |
| 46 | TIMEOUT 300 | 43 | TIMEOUT 300 |
| 47 | DOWNLOAD_DIR ${CARES_PKG_PATH} | 44 | DOWNLOAD_DIR ${CARES_PKG_PATH} |
| 48 | - SOURCE_DIR ${CARES_INTALL_PATH} | 45 | + SOURCE_DIR ${CARES_INSTALL_PATH} |
| 49 | CONFIGURE_COMMAND "" | 46 | CONFIGURE_COMMAND "" |
| 50 | BUILD_COMMAND "" | 47 | BUILD_COMMAND "" |
| 51 | INSTALL_COMMAND "" | 48 | INSTALL_COMMAND "" |
| 52 | EXCLUDE_FROM_ALL TRUE | 49 | EXCLUDE_FROM_ALL TRUE |
| 53 | - DWONLOAD_NO_PROGRESS TRUE | 50 | + DOWNLOAD_NO_PROGRESS TRUE |
| 54 | ) | 51 | ) |
| 55 | endif() | 52 | endif() |
| @@ -9,10 +9,6 @@ | |||
| 9 | # ----------------------------------------------------------------------------------------------------------- | 9 | # ----------------------------------------------------------------------------------------------------------- |
| 10 | include_guard(GLOBAL) | 10 | include_guard(GLOBAL) |
| 11 | 11 | ||
| 12 | -if(POLICY CMP0135) | ||
| 13 | - cmake_policy(SET CMP0135 NEW) | ||
| 14 | -endif() | ||
| 15 | - | ||
| 16 | if(EXISTS "${CANN_3RD_LIB_PATH}/eigen-5.0.0.tar.gz") | 12 | if(EXISTS "${CANN_3RD_LIB_PATH}/eigen-5.0.0.tar.gz") |
| 17 | message(STATUS "[ThirdParty][eigen] tar.gz found in cache: ${CANN_3RD_LIB_PATH}/eigen-5.0.0.tar.gz") | 13 | message(STATUS "[ThirdParty][eigen] tar.gz found in cache: ${CANN_3RD_LIB_PATH}/eigen-5.0.0.tar.gz") |
| 18 | set(REQ_URL "${CANN_3RD_LIB_PATH}/eigen-5.0.0.tar.gz") | 14 | set(REQ_URL "${CANN_3RD_LIB_PATH}/eigen-5.0.0.tar.gz") |
| @@ -23,7 +19,7 @@ elseif(IS_DIRECTORY "${CANN_3RD_LIB_PATH}/eigen") | |||
| 23 | message(STATUS "[ThirdParty][eigen] path found in cache: ${CANN_3RD_LIB_PATH}/eigen") | 19 | message(STATUS "[ThirdParty][eigen] path found in cache: ${CANN_3RD_LIB_PATH}/eigen") |
| 24 | set(REQ_URL "${CANN_3RD_LIB_PATH}/eigen") | 20 | set(REQ_URL "${CANN_3RD_LIB_PATH}/eigen") |
| 25 | else() | 21 | else() |
| 26 | - message("[ThirdParty][eigen] package needs to be downloaded.") | 22 | + message(STATUS "[ThirdParty][eigen] package needs to be downloaded.") |
| 27 | set(REQ_URL "https://cann-3rd.obs.cn-north-4.myhuaweicloud.com/eigen/eigen-5.0.0.tar.gz") | 23 | set(REQ_URL "https://cann-3rd.obs.cn-north-4.myhuaweicloud.com/eigen/eigen-5.0.0.tar.gz") |
| 28 | endif() | 24 | endif() |
| 29 | 25 | ||
| @@ -36,17 +32,14 @@ ExternalProject_Add(external_eigen | |||
| 36 | PREFIX third_party | 32 | PREFIX third_party |
| 37 | INSTALL_COMMAND "" | 33 | INSTALL_COMMAND "" |
| 38 | BUILD_COMMAND "" | 34 | BUILD_COMMAND "" |
| 39 | - INSTALL_COMMAND "" | 35 | + EXCLUDE_FROM_ALL TRUE |
| 40 | ) | 36 | ) |
| 41 | 37 | ||
| 42 | ExternalProject_Get_Property(external_eigen SOURCE_DIR) | 38 | ExternalProject_Get_Property(external_eigen SOURCE_DIR) |
| 43 | 39 | ||
| 44 | add_library(Eigen INTERFACE) | 40 | add_library(Eigen INTERFACE) |
| 45 | target_compile_options(Eigen INTERFACE -w) | 41 | target_compile_options(Eigen INTERFACE -w) |
| 46 | - | 42 | +target_include_directories(Eigen SYSTEM INTERFACE "${SOURCE_DIR}") |
| 47 | -set_target_properties(Eigen PROPERTIES | ||
| 48 | - INTERFACE_INCLUDE_DIRECTORIES "${SOURCE_DIR}" | ||
| 49 | -) | ||
| 50 | add_dependencies(Eigen external_eigen) | 43 | add_dependencies(Eigen external_eigen) |
| 51 | 44 | ||
| 52 | add_library(Eigen3::Eigen ALIAS Eigen) | 45 | add_library(Eigen3::Eigen ALIAS Eigen) |
| @@ -9,9 +9,6 @@ | |||
| 9 | # ----------------------------------------------------------------------------------------------------------- | 9 | # ----------------------------------------------------------------------------------------------------------- |
| 10 | include_guard(GLOBAL) | 10 | include_guard(GLOBAL) |
| 11 | include(ExternalProject) | 11 | include(ExternalProject) |
| 12 | -if(POLICY CMP0135) | ||
| 13 | - cmake_policy(SET CMP0135 NEW) | ||
| 14 | -endif() | ||
| 15 | 12 | ||
| 16 | include(${CMAKE_CURRENT_LIST_DIR}/openssl.cmake) | 13 | include(${CMAKE_CURRENT_LIST_DIR}/openssl.cmake) |
| 17 | include(${CMAKE_CURRENT_LIST_DIR}/re2.cmake) | 14 | include(${CMAKE_CURRENT_LIST_DIR}/re2.cmake) |
| @@ -152,7 +149,7 @@ else() | |||
| 152 | ) | 149 | ) |
| 153 | endif() | 150 | endif() |
| 154 | 151 | ||
| 155 | - set(GRPC_CXX_FLAGS "-Wl,-z,relro,-z,now,-z,noexecstack -D_FORTIFY_SOURCE=2 -O2 -fstack-protector-all -s -D_GLIBCXX_USE_CXX11_ABI=${USE_CXX11_ABI}") | 152 | + set(GRPC_CXX_FLAGS "-Wl,-z,relro,-z,now,-z,noexecstack -D_FORTIFY_SOURCE=2 -O2 -fstack-protector-all -s -D_GLIBCXX_USE_CXX11_ABI=${CANN_CXX11_ABI}") |
| 156 | set(GRPC_TOOLCHAIN_ARGS) | 153 | set(GRPC_TOOLCHAIN_ARGS) |
| 157 | if(CMAKE_TOOLCHAIN_FILE) | 154 | if(CMAKE_TOOLCHAIN_FILE) |
| 158 | list(APPEND GRPC_TOOLCHAIN_ARGS -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}) | 155 | list(APPEND GRPC_TOOLCHAIN_ARGS -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}) |
| @@ -166,18 +163,18 @@ else() | |||
| 166 | TIMEOUT 300 | 163 | TIMEOUT 300 |
| 167 | ${GRPC_EXTRA_ARGS} | 164 | ${GRPC_EXTRA_ARGS} |
| 168 | PATCH_COMMAND ${CMAKE_COMMAND} -E make_directory <SOURCE_DIR>/third_party/opencensus-proto/src | 165 | PATCH_COMMAND ${CMAKE_COMMAND} -E make_directory <SOURCE_DIR>/third_party/opencensus-proto/src |
| 169 | - COMMAND patch -p1 < ${CMAKE_CURRENT_LIST_DIR}/patch/grpc-fix-compile-bug-in-device.patch | 166 | + COMMAND patch --forward --batch --quiet -r - -p1 < ${CMAKE_CURRENT_LIST_DIR}/patch/grpc-fix-compile-bug-in-device.patch |
| 170 | CONFIGURE_COMMAND ${CMAKE_COMMAND} | 167 | CONFIGURE_COMMAND ${CMAKE_COMMAND} |
| 171 | # zlib | 168 | # zlib |
| 172 | -DgRPC_ZLIB_PROVIDER=module | 169 | -DgRPC_ZLIB_PROVIDER=module |
| 173 | -DZLIB_ROOT_DIR=${ZLIB_SRC_DIR} | 170 | -DZLIB_ROOT_DIR=${ZLIB_SRC_DIR} |
| 174 | # cares | 171 | # cares |
| 175 | -DgRPC_CARES_PROVIDER=module | 172 | -DgRPC_CARES_PROVIDER=module |
| 176 | - -DCARES_ROOT_DIR=${CARES_INTALL_PATH} | 173 | + -DCARES_ROOT_DIR=${CARES_INSTALL_PATH} |
| 177 | -DCARES_BUILD_TOOLS=OFF | 174 | -DCARES_BUILD_TOOLS=OFF |
| 178 | # re2 | 175 | # re2 |
| 179 | -DgRPC_RE2_PROVIDER=module | 176 | -DgRPC_RE2_PROVIDER=module |
| 180 | - -DRE2_ROOT_DIR=${RE2_INTALL_PATH} | 177 | + -DRE2_ROOT_DIR=${RE2_INSTALL_PATH} |
| 181 | # absl | 178 | # absl |
| 182 | -DgRPC_ABSL_PROVIDER=module | 179 | -DgRPC_ABSL_PROVIDER=module |
| 183 | -DABSL_ROOT_DIR=${ABS_INSTALL_DIR} | 180 | -DABSL_ROOT_DIR=${ABS_INSTALL_DIR} |
| @@ -240,7 +237,7 @@ else() | |||
| 240 | ) | 237 | ) |
| 241 | endif() | 238 | endif() |
| 242 | 239 | ||
| 243 | - set(GRPC_CXX_FLAGS "-Wl,-z,relro,-z,now,-z,noexecstack -D_FORTIFY_SOURCE=2 -O2 -fstack-protector-all -s -D_GLIBCXX_USE_CXX11_ABI=${USE_CXX11_ABI}") | 240 | + set(GRPC_CXX_FLAGS "-Wl,-z,relro,-z,now,-z,noexecstack -D_FORTIFY_SOURCE=2 -O2 -fstack-protector-all -s -D_GLIBCXX_USE_CXX11_ABI=${CANN_CXX11_ABI}") |
| 244 | 241 | ||
| 245 | ExternalProject_Add(protoc_grpc_build | 242 | ExternalProject_Add(protoc_grpc_build |
| 246 | URL ${REQ_URL} | 243 | URL ${REQ_URL} |
| @@ -248,16 +245,16 @@ else() | |||
| 248 | TIMEOUT 300 | 245 | TIMEOUT 300 |
| 249 | ${GRPC_EXTRA_ARGS} | 246 | ${GRPC_EXTRA_ARGS} |
| 250 | PATCH_COMMAND ${CMAKE_COMMAND} -E make_directory <SOURCE_DIR>/third_party/opencensus-proto/src | 247 | PATCH_COMMAND ${CMAKE_COMMAND} -E make_directory <SOURCE_DIR>/third_party/opencensus-proto/src |
| 251 | - COMMAND patch -p1 < ${CMAKE_CURRENT_LIST_DIR}/patch/grpc-fix-compile-bug-in-device.patch | 248 | + COMMAND patch --forward --batch --quiet -r - -p1 < ${CMAKE_CURRENT_LIST_DIR}/patch/grpc-fix-compile-bug-in-device.patch |
| 252 | CONFIGURE_COMMAND ${CMAKE_COMMAND} | 249 | CONFIGURE_COMMAND ${CMAKE_COMMAND} |
| 253 | # zlib | 250 | # zlib |
| 254 | -DgRPC_ZLIB_PROVIDER=none | 251 | -DgRPC_ZLIB_PROVIDER=none |
| 255 | # cares | 252 | # cares |
| 256 | -DgRPC_CARES_PROVIDER=module | 253 | -DgRPC_CARES_PROVIDER=module |
| 257 | - -DCARES_ROOT_DIR=${CARES_INTALL_PATH} | 254 | + -DCARES_ROOT_DIR=${CARES_INSTALL_PATH} |
| 258 | # re2 | 255 | # re2 |
| 259 | -DgRPC_RE2_PROVIDER=module | 256 | -DgRPC_RE2_PROVIDER=module |
| 260 | - -DRE2_ROOT_DIR=${RE2_INTALL_PATH} | 257 | + -DRE2_ROOT_DIR=${RE2_INSTALL_PATH} |
| 261 | # absl | 258 | # absl |
| 262 | -DgRPC_ABSL_PROVIDER=module | 259 | -DgRPC_ABSL_PROVIDER=module |
| 263 | -DABSL_ROOT_DIR=${ABS_INSTALL_DIR} | 260 | -DABSL_ROOT_DIR=${ABS_INSTALL_DIR} |
| @@ -19,8 +19,6 @@ unset(GMOCK_MAIN_STATIC_LIBRARY CACHE) | |||
| 19 | 19 | ||
| 20 | set(GTEST_INSTALL_PATH ${CANN_3RD_LIB_PATH}/lib_cache/gtest) | 20 | set(GTEST_INSTALL_PATH ${CANN_3RD_LIB_PATH}/lib_cache/gtest) |
| 21 | set(GTEST_DOWNLOAD_PATH ${CANN_3RD_LIB_PATH}/pkg) | 21 | set(GTEST_DOWNLOAD_PATH ${CANN_3RD_LIB_PATH}/pkg) |
| 22 | -message(STATUS "[ThirdParty][gtest] GTEST_INSTALL_PATH=${GTEST_INSTALL_PATH}") | ||
| 23 | -message(STATUS "[ThirdParty][gtest] GTEST_DOWNLOAD_PATH=${GTEST_DOWNLOAD_PATH}") | ||
| 24 | 22 | ||
| 25 | find_path(GTEST_INCLUDE | 23 | find_path(GTEST_INCLUDE |
| 26 | NAMES gtest/gtest.h | 24 | NAMES gtest/gtest.h |
| @@ -69,8 +67,6 @@ find_package_handle_standard_args(gtest | |||
| 69 | GMOCK_MAIN_STATIC_LIBRARY | 67 | GMOCK_MAIN_STATIC_LIBRARY |
| 70 | ) | 68 | ) |
| 71 | 69 | ||
| 72 | -message(STATUS "[ThirdParty][gtest] Found GTest: ${gtest_FOUND}") | ||
| 73 | - | ||
| 74 | if(gtest_FOUND AND NOT FORCE_REBUILD_CANN_3RD) | 70 | if(gtest_FOUND AND NOT FORCE_REBUILD_CANN_3RD) |
| 75 | message(STATUS "[ThirdParty][gtest] GTest found in ${GTEST_INSTALL_PATH}, and not force rebuild") | 71 | message(STATUS "[ThirdParty][gtest] GTest found in ${GTEST_INSTALL_PATH}, and not force rebuild") |
| 76 | else() | 72 | else() |
| @@ -95,12 +91,8 @@ else() | |||
| 95 | set(GTEST_PROJECT_URL "https://cann-3rd.obs.cn-north-4.myhuaweicloud.com/googletest/googletest-1.14.0.tar.gz") | 91 | set(GTEST_PROJECT_URL "https://cann-3rd.obs.cn-north-4.myhuaweicloud.com/googletest/googletest-1.14.0.tar.gz") |
| 96 | endif() | 92 | endif() |
| 97 | 93 | ||
| 98 | - if(NOT DEFINED USE_CXX11_ABI) | 94 | + set(GTEST_CXXFLAGS "-D_GLIBCXX_USE_CXX11_ABI=${CANN_CXX11_ABI} -O2 -D_FORTIFY_SOURCE=2 -fPIC -fstack-protector-all -Wl,-z,relro,-z,now,-z,noexecstack") |
| 99 | - set(USE_CXX11_ABI 0) | 95 | + set(GTEST_CFLAGS "-O2 -D_FORTIFY_SOURCE=2 -fPIC -fstack-protector-all -Wl,-z,relro,-z,now,-z,noexecstack") |
| 100 | - endif() | ||
| 101 | - | ||
| 102 | - set(GTEST_CXXFLAGS "-D_GLIBCXX_USE_CXX11_ABI=${USE_CXX11_ABI} -O2 -D_FORTIFY_SOURCE=2 -fPIC -fstack-protector-all -Wl,-z,relro,-z,now,-z,noexecstack") | ||
| 103 | - set(GTEST_CFLAGS "-D_GLIBCXX_USE_CXX11_ABI=${USE_CXX11_ABI} -O2 -D_FORTIFY_SOURCE=2 -fPIC -fstack-protector-all -Wl,-z,relro,-z,now,-z,noexecstack") | ||
| 104 | 96 | ||
| 105 | include(ExternalProject) | 97 | include(ExternalProject) |
| 106 | # adaptive the gtest upgrade scenario, reset the installation path. | 98 | # adaptive the gtest upgrade scenario, reset the installation path. |
| @@ -150,5 +142,3 @@ set_target_properties(GTest::gmock PROPERTIES | |||
| 150 | INTERFACE_INCLUDE_DIRECTORIES ${GTEST_INCLUDE} | 142 | INTERFACE_INCLUDE_DIRECTORIES ${GTEST_INCLUDE} |
| 151 | IMPORTED_LOCATION ${GTEST_INSTALL_PATH}/lib/libgmock.a | 143 | IMPORTED_LOCATION ${GTEST_INSTALL_PATH}/lib/libgmock.a |
| 152 | ) | 144 | ) |
| 153 | - | ||
| 154 | -message(STATUS "[ThirdParty][gtest] configured successfully.") | ||
| @@ -9,9 +9,6 @@ | |||
| 9 | # the software repository for the full text of the License. | 9 | # the software repository for the full text of the License. |
| 10 | # ---------------------------------------------------------------------------- | 10 | # ---------------------------------------------------------------------------- |
| 11 | include_guard(GLOBAL) | 11 | include_guard(GLOBAL) |
| 12 | -if(POLICY CMP0135) | ||
| 13 | - cmake_policy(SET CMP0135 NEW) | ||
| 14 | -endif() | ||
| 15 | 12 | ||
| 16 | set(JPEG_TAR_PKG_PATH ${CANN_3RD_LIB_PATH}/libjpeg-turbo/libjpeg-turbo-3.0.1.tar.gz) | 13 | set(JPEG_TAR_PKG_PATH ${CANN_3RD_LIB_PATH}/libjpeg-turbo/libjpeg-turbo-3.0.1.tar.gz) |
| 17 | if(EXISTS "${JPEG_TAR_PKG_PATH}") | 14 | if(EXISTS "${JPEG_TAR_PKG_PATH}") |
| @@ -19,7 +16,7 @@ if(EXISTS "${JPEG_TAR_PKG_PATH}") | |||
| 19 | else() | 16 | else() |
| 20 | set(REQ_URL "https://cann-3rd.obs.cn-north-4.myhuaweicloud.com/libjpeg-turbo/libjpeg-turbo-3.0.1.tar.gz") | 17 | set(REQ_URL "https://cann-3rd.obs.cn-north-4.myhuaweicloud.com/libjpeg-turbo/libjpeg-turbo-3.0.1.tar.gz") |
| 21 | endif() | 18 | endif() |
| 22 | -message("[ThirdParty][libjpeg-turbo] valued url path: ${REQ_URL}.") | 19 | +message(STATUS "[ThirdParty][libjpeg-turbo] valued url path: ${REQ_URL}.") |
| 23 | 20 | ||
| 24 | set(JPEG_C_FLAGS "-fPIC -fexceptions -D_FORTIFY_SOURCE=2 -O2 -fvisibility=hidden -DCONFIG_MASK_JWARN") | 21 | set(JPEG_C_FLAGS "-fPIC -fexceptions -D_FORTIFY_SOURCE=2 -O2 -fvisibility=hidden -DCONFIG_MASK_JWARN") |
| 25 | set(JPEG_INSTALL_PATH ${CMAKE_CURRENT_BINARY_DIR}/libjpeg-turbo) | 22 | set(JPEG_INSTALL_PATH ${CMAKE_CURRENT_BINARY_DIR}/libjpeg-turbo) |
| @@ -39,7 +36,7 @@ ExternalProject_Add(third_party_jpeg | |||
| 39 | URL_HASH SHA256=22429507714ae147b3acacd299e82099fce5d9f456882fc28e252e4579ba2a75 | 36 | URL_HASH SHA256=22429507714ae147b3acacd299e82099fce5d9f456882fc28e252e4579ba2a75 |
| 40 | TIMEOUT 300 | 37 | TIMEOUT 300 |
| 41 | CONFIGURE_COMMAND ${CMAKE_COMMAND} | 38 | CONFIGURE_COMMAND ${CMAKE_COMMAND} |
| 42 | - -DCMAKE_C_COMPILER_LAUNCHER=${CCACHE_PROGRAM} | 39 | + -DCMAKE_C_COMPILER_LAUNCHER=${CMAKE_C_COMPILER_LAUNCHER} |
| 43 | -DCMAKE_C_FLAGS=${JPEG_C_FLAGS} | 40 | -DCMAKE_C_FLAGS=${JPEG_C_FLAGS} |
| 44 | -DCMAKE_INSTALL_PREFIX=${JPEG_INSTALL_PATH} | 41 | -DCMAKE_INSTALL_PREFIX=${JPEG_INSTALL_PATH} |
| 45 | -DCMAKE_INSTALL_DEFAULT_LIBDIR=lib | 42 | -DCMAKE_INSTALL_DEFAULT_LIBDIR=lib |
| @@ -64,7 +61,7 @@ set_target_properties(jpeg PROPERTIES | |||
| 64 | add_dependencies(jpeg third_party_jpeg) | 61 | add_dependencies(jpeg third_party_jpeg) |
| 65 | 62 | ||
| 66 | add_library(jpeg_headers INTERFACE) | 63 | add_library(jpeg_headers INTERFACE) |
| 67 | -target_include_directories(jpeg_headers INTERFACE ${JPEG_INSTALL_PATH}/include) | 64 | +target_include_directories(jpeg_headers SYSTEM INTERFACE ${JPEG_INSTALL_PATH}/include) |
| 68 | add_dependencies(jpeg_headers third_party_jpeg) | 65 | add_dependencies(jpeg_headers third_party_jpeg) |
| 69 | 66 | ||
| 70 | add_library(static_turbojpeg STATIC IMPORTED) | 67 | add_library(static_turbojpeg STATIC IMPORTED) |
| @@ -15,9 +15,6 @@ endif() | |||
| 15 | 15 | ||
| 16 | unset(json_FOUND CACHE) | 16 | unset(json_FOUND CACHE) |
| 17 | unset(JSON_SOURCE CACHE) | 17 | unset(JSON_SOURCE CACHE) |
| 18 | -if(NOT OPEN_PKG_PATH) | ||
| 19 | - set(OPEN_PKG_PATH ${CANN_3RD_LIB_PATH}/pkg) | ||
| 20 | -endif() | ||
| 21 | 18 | ||
| 22 | set(JSON_DOWNLOAD_PATH ${CANN_3RD_LIB_PATH}/pkg) | 19 | set(JSON_DOWNLOAD_PATH ${CANN_3RD_LIB_PATH}/pkg) |
| 23 | 20 | ||
| @@ -76,7 +73,7 @@ if(NOT json_FOUND OR FORCE_REBUILD_CANN_3RD) | |||
| 76 | ExternalProject_Add(third_party_json | 73 | ExternalProject_Add(third_party_json |
| 77 | ${JSON_URL_ARGS} | 74 | ${JSON_URL_ARGS} |
| 78 | ${JSON_DOWNLOAD_ARGS} | 75 | ${JSON_DOWNLOAD_ARGS} |
| 79 | - PATCH_COMMAND patch -N --batch --quiet -r - -p1 < ${CMAKE_CURRENT_LIST_DIR}/patch/json_3.12.0_change_version.patch | 76 | + PATCH_COMMAND patch --forward --batch --quiet -r - -p1 < ${CMAKE_CURRENT_LIST_DIR}/patch/json_3.12.0_change_version.patch |
| 80 | SOURCE_DIR ${JSON_SOURCE_PATH} | 77 | SOURCE_DIR ${JSON_SOURCE_PATH} |
| 81 | CONFIGURE_COMMAND "" | 78 | CONFIGURE_COMMAND "" |
| 82 | BUILD_COMMAND "" | 79 | BUILD_COMMAND "" |
| @@ -85,13 +82,12 @@ if(NOT json_FOUND OR FORCE_REBUILD_CANN_3RD) | |||
| 85 | ) | 82 | ) |
| 86 | endif() | 83 | endif() |
| 87 | 84 | ||
| 88 | -message(STATUS "[ThirdParty][json] build json end, JSON_SOURCE_PATH: ${JSON_SOURCE_PATH}.") | ||
| 89 | if(NOT TARGET json) | 85 | if(NOT TARGET json) |
| 90 | add_library(json INTERFACE) | 86 | add_library(json INTERFACE) |
| 91 | add_dependencies(json third_party_json) | 87 | add_dependencies(json third_party_json) |
| 92 | # use for transformer service's reference path | 88 | # use for transformer service's reference path |
| 93 | set(JSON_INCLUDE_DIR ${JSON_SOURCE_PATH}/include) | 89 | set(JSON_INCLUDE_DIR ${JSON_SOURCE_PATH}/include) |
| 94 | - target_include_directories(json INTERFACE ${JSON_SOURCE_PATH}/include) | 90 | + target_include_directories(json SYSTEM INTERFACE ${JSON_SOURCE_PATH}/include) |
| 95 | target_compile_definitions(json INTERFACE | 91 | target_compile_definitions(json INTERFACE |
| 96 | nlohmann=ascend_nlohmann # 如果需要命名空间重映射 | 92 | nlohmann=ascend_nlohmann # 如果需要命名空间重映射 |
| 97 | ) | 93 | ) |
| @@ -37,10 +37,6 @@ set(LLVM_INSTALL_PATH ${CANN_3RD_LIB_PATH}/lib_cache/llvm_${LLVM_PROJECT_VERSION | |||
| 37 | set(LLVM_DOWNLOAD_PATH ${CANN_3RD_LIB_PATH}/pkg) | 37 | set(LLVM_DOWNLOAD_PATH ${CANN_3RD_LIB_PATH}/pkg) |
| 38 | set(LLVM_ARCHIVE ${LLVM_DOWNLOAD_PATH}/llvm-project-${LLVM_PROJECT_TAG}.tar.gz) | 38 | set(LLVM_ARCHIVE ${LLVM_DOWNLOAD_PATH}/llvm-project-${LLVM_PROJECT_TAG}.tar.gz) |
| 39 | 39 | ||
| 40 | -message(STATUS "[ThirdParty][llvm] LLVM_SOURCE_PATH=${LLVM_SOURCE_PATH}") | ||
| 41 | -message(STATUS "[ThirdParty][llvm] LLVM_INSTALL_PATH=${LLVM_INSTALL_PATH}") | ||
| 42 | -message(STATUS "[ThirdParty][llvm] LLVM_DOWNLOAD_PATH=${LLVM_DOWNLOAD_PATH}") | ||
| 43 | - | ||
| 44 | if(NOT CMAKE_FIND_LIBRARY_PREFIXES) | 40 | if(NOT CMAKE_FIND_LIBRARY_PREFIXES) |
| 45 | set(CMAKE_FIND_LIBRARY_PREFIXES "lib") | 41 | set(CMAKE_FIND_LIBRARY_PREFIXES "lib") |
| 46 | endif() | 42 | endif() |
| @@ -86,9 +82,6 @@ find_package_handle_standard_args(llvm | |||
| 86 | MLIR_SUPPORT_LIBRARY | 82 | MLIR_SUPPORT_LIBRARY |
| 87 | ) | 83 | ) |
| 88 | 84 | ||
| 89 | -message(STATUS "[ThirdParty][llvm] Found LLVM/MLIR install cache: ${llvm_FOUND}") | ||
| 90 | -message(STATUS "[ThirdParty][llvm] LLVM_REQUIRE_SOURCE=${LLVM_REQUIRE_SOURCE}") | ||
| 91 | - | ||
| 92 | if(llvm_FOUND AND NOT FORCE_REBUILD_CANN_3RD AND NOT LLVM_REQUIRE_SOURCE) | 85 | if(llvm_FOUND AND NOT FORCE_REBUILD_CANN_3RD AND NOT LLVM_REQUIRE_SOURCE) |
| 93 | message(STATUS "[ThirdParty][llvm] LLVM/MLIR found in ${LLVM_INSTALL_PATH}, and not force rebuild") | 86 | message(STATUS "[ThirdParty][llvm] LLVM/MLIR found in ${LLVM_INSTALL_PATH}, and not force rebuild") |
| 94 | return() | 87 | return() |
| @@ -103,7 +96,6 @@ else() | |||
| 103 | message(STATUS "[ThirdParty][llvm] Downloading LLVM from ${LLVM_PROJECT_URL}") | 96 | message(STATUS "[ThirdParty][llvm] Downloading LLVM from ${LLVM_PROJECT_URL}") |
| 104 | set(REQ_URL ${LLVM_PROJECT_URL}) | 97 | set(REQ_URL ${LLVM_PROJECT_URL}) |
| 105 | endif() | 98 | endif() |
| 106 | -message("[ThirdParty][llvm] valued url path: ${REQ_URL}.") | ||
| 107 | 99 | ||
| 108 | include(ExternalProject) | 100 | include(ExternalProject) |
| 109 | ExternalProject_Add(third_party_llvm | 101 | ExternalProject_Add(third_party_llvm |
| @@ -117,5 +109,3 @@ ExternalProject_Add(third_party_llvm | |||
| 117 | INSTALL_COMMAND "" | 109 | INSTALL_COMMAND "" |
| 118 | EXCLUDE_FROM_ALL TRUE | 110 | EXCLUDE_FROM_ALL TRUE |
| 119 | ) | 111 | ) |
| 120 | - | ||
| 121 | -message(STATUS "[ThirdParty][llvm] configured successfully.") | ||
| @@ -13,10 +13,6 @@ set(MAKESELF_NAME "makeself") | |||
| 13 | set(MAKESELF_PATH "${CANN_3RD_LIB_PATH}/${MAKESELF_NAME}") | 13 | set(MAKESELF_PATH "${CANN_3RD_LIB_PATH}/${MAKESELF_NAME}") |
| 14 | set(MAKESELF_TAR_PATH "${CANN_3RD_LIB_PATH}/makeself-release-2.5.0-patch1.tar.gz") | 14 | set(MAKESELF_TAR_PATH "${CANN_3RD_LIB_PATH}/makeself-release-2.5.0-patch1.tar.gz") |
| 15 | 15 | ||
| 16 | -if(POLICY CMP0135) | ||
| 17 | - cmake_policy(SET CMP0135 NEW) | ||
| 18 | -endif() | ||
| 19 | - | ||
| 20 | # 新增:检查本地 tar.gz 包是否存在 | 16 | # 新增:检查本地 tar.gz 包是否存在 |
| 21 | if (EXISTS "${MAKESELF_TAR_PATH}") | 17 | if (EXISTS "${MAKESELF_TAR_PATH}") |
| 22 | message(STATUS "[ThirdParty][makeself] found local tar.gz package: ${MAKESELF_TAR_PATH}, extracting...") | 18 | message(STATUS "[ThirdParty][makeself] found local tar.gz package: ${MAKESELF_TAR_PATH}, extracting...") |
| @@ -9,8 +9,6 @@ | |||
| 9 | # ----------------------------------------------------------------------------------------------------------- | 9 | # ----------------------------------------------------------------------------------------------------------- |
| 10 | include_guard(GLOBAL) | 10 | include_guard(GLOBAL) |
| 11 | 11 | ||
| 12 | -set(open_source_target_name mockcpp) | ||
| 13 | - | ||
| 14 | if(CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL "aarch64") | 12 | if(CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL "aarch64") |
| 15 | set(mockcpp_CXXFLAGS "-fPIC") | 13 | set(mockcpp_CXXFLAGS "-fPIC") |
| 16 | else() | 14 | else() |
| @@ -19,11 +17,7 @@ endif() | |||
| 19 | set(mockcpp_FLAGS "-fPIC") | 17 | set(mockcpp_FLAGS "-fPIC") |
| 20 | set(mockcpp_LINKER_FLAGS "") | 18 | set(mockcpp_LINKER_FLAGS "") |
| 21 | 19 | ||
| 22 | -if(NOT DEFINED USE_CXX11_ABI) | 20 | +set(mockcpp_CXXFLAGS "${mockcpp_CXXFLAGS} -D_GLIBCXX_USE_CXX11_ABI=${CANN_CXX11_ABI}") |
| 23 | - set(USE_CXX11_ABI 0) | ||
| 24 | -endif() | ||
| 25 | -set(mockcpp_CXXFLAGS "${mockcpp_CXXFLAGS} -D_GLIBCXX_USE_CXX11_ABI=${USE_CXX11_ABI}") | ||
| 26 | -set(mockcpp_FLAGS "${mockcpp_FLAGS} -D_GLIBCXX_USE_CXX11_ABI=${USE_CXX11_ABI}") | ||
| 27 | 21 | ||
| 28 | #依赖蓝区二进制仓mockcpp | 22 | #依赖蓝区二进制仓mockcpp |
| 29 | set(FILE_NAME mockcpp-2.7.tar.gz) | 23 | set(FILE_NAME mockcpp-2.7.tar.gz) |
| @@ -32,16 +26,13 @@ set(MOCKCPP_DOWNLOAD_PATH ${CANN_3RD_LIB_PATH}/pkg) | |||
| 32 | set(MOCKCPP_SOURCE_PATH ${CANN_3RD_LIB_PATH}/mockcpp) | 26 | set(MOCKCPP_SOURCE_PATH ${CANN_3RD_LIB_PATH}/mockcpp) |
| 33 | set(MOCK_INSTALL_PATH ${CANN_3RD_LIB_PATH}/lib_cache/mockcpp) | 27 | set(MOCK_INSTALL_PATH ${CANN_3RD_LIB_PATH}/lib_cache/mockcpp) |
| 34 | 28 | ||
| 35 | -message(STATUS "[ThirdParty][mockcpp] cmake install prefix ${CMAKE_INSTALL_PREFIX}") | ||
| 36 | include(ExternalProject) | 29 | include(ExternalProject) |
| 37 | 30 | ||
| 38 | if(EXISTS ${CANN_3RD_LIB_PATH}/mockcpp-2.7-h5.patch) | 31 | if(EXISTS ${CANN_3RD_LIB_PATH}/mockcpp-2.7-h5.patch) |
| 39 | set(PATCH_FILE "${CANN_3RD_LIB_PATH}/mockcpp-2.7-h5.patch") | 32 | set(PATCH_FILE "${CANN_3RD_LIB_PATH}/mockcpp-2.7-h5.patch") |
| 40 | - message(STATUS "[ThirdParty][mockcpp] patch use cache: ${PATCH_FILE}") | ||
| 41 | add_custom_target(mockcpp_patch) | 33 | add_custom_target(mockcpp_patch) |
| 42 | elseif(EXISTS ${MOCKCPP_DOWNLOAD_PATH}/mockcpp-2.7-h5.patch) | 34 | elseif(EXISTS ${MOCKCPP_DOWNLOAD_PATH}/mockcpp-2.7-h5.patch) |
| 43 | set(PATCH_FILE ${MOCKCPP_DOWNLOAD_PATH}/mockcpp-2.7-h5.patch) | 35 | set(PATCH_FILE ${MOCKCPP_DOWNLOAD_PATH}/mockcpp-2.7-h5.patch) |
| 44 | - message(STATUS "[ThirdParty][mockcpp] patch use cache: ${PATCH_FILE}") | ||
| 45 | add_custom_target(mockcpp_patch) | 36 | add_custom_target(mockcpp_patch) |
| 46 | else() | 37 | else() |
| 47 | set(PATCH_FILE ${MOCKCPP_DOWNLOAD_PATH}/mockcpp-2.7-h5.patch) | 38 | set(PATCH_FILE ${MOCKCPP_DOWNLOAD_PATH}/mockcpp-2.7-h5.patch) |
| @@ -60,8 +51,10 @@ else() | |||
| 60 | ) | 51 | ) |
| 61 | message(STATUS "[ThirdParty][mockcpp] patch need download to: ${PATCH_FILE}") | 52 | message(STATUS "[ThirdParty][mockcpp] patch need download to: ${PATCH_FILE}") |
| 62 | endif() | 53 | endif() |
| 54 | +if(TARGET mockcpp_patch) | ||
| 55 | + message(STATUS "[ThirdParty][mockcpp] patch use cache: ${PATCH_FILE}") | ||
| 56 | +endif() | ||
| 63 | 57 | ||
| 64 | -message(STATUS "[ThirdParty][mockcpp] CMAKE_COMMAND is ${CMAKE_COMMAND}") | ||
| 65 | if(EXISTS ${CANN_3RD_LIB_PATH}/mockcpp/${FILE_NAME}) | 58 | if(EXISTS ${CANN_3RD_LIB_PATH}/mockcpp/${FILE_NAME}) |
| 66 | set(REQ_URL ${CANN_3RD_LIB_PATH}/mockcpp/${FILE_NAME}) | 59 | set(REQ_URL ${CANN_3RD_LIB_PATH}/mockcpp/${FILE_NAME}) |
| 67 | message(STATUS "[ThirdParty][mockcpp] use cache file: ${REQ_URL}") | 60 | message(STATUS "[ThirdParty][mockcpp] use cache file: ${REQ_URL}") |
| @@ -80,7 +73,7 @@ ExternalProject_Add(mockcpp_static_build | |||
| 80 | DEPENDS third_party_boost mockcpp_patch | 73 | DEPENDS third_party_boost mockcpp_patch |
| 81 | DOWNLOAD_DIR ${MOCKCPP_DOWNLOAD_PATH} | 74 | DOWNLOAD_DIR ${MOCKCPP_DOWNLOAD_PATH} |
| 82 | SOURCE_DIR ${MOCKCPP_SOURCE_PATH} | 75 | SOURCE_DIR ${MOCKCPP_SOURCE_PATH} |
| 83 | - PATCH_COMMAND patch -p1 < ${PATCH_FILE} | 76 | + PATCH_COMMAND patch --forward --batch --quiet -r - -p1 < ${PATCH_FILE} |
| 84 | CONFIGURE_COMMAND ${CMAKE_COMMAND} -G ${CMAKE_GENERATOR} | 77 | CONFIGURE_COMMAND ${CMAKE_COMMAND} -G ${CMAKE_GENERATOR} |
| 85 | -DCMAKE_CXX_FLAGS=${mockcpp_CXXFLAGS} | 78 | -DCMAKE_CXX_FLAGS=${mockcpp_CXXFLAGS} |
| 86 | -DCMAKE_C_FLAGS=${mockcpp_FLAGS} | 79 | -DCMAKE_C_FLAGS=${mockcpp_FLAGS} |
| @@ -84,10 +84,11 @@ else() | |||
| 84 | # ========== 编译选项 ========== | 84 | # ========== 编译选项 ========== |
| 85 | set(OPENSSL_OPTION "-fstack-protector-all -D_FORTIFY_SOURCE=2 -fvisibility=hidden -O2 -Wl,-z,relro,-z,now,-z,noexecstack -Wl,--build-id=none -s") | 85 | set(OPENSSL_OPTION "-fstack-protector-all -D_FORTIFY_SOURCE=2 -fvisibility=hidden -O2 -Wl,-z,relro,-z,now,-z,noexecstack -Wl,--build-id=none -s") |
| 86 | 86 | ||
| 87 | - find_program(CCACHE_PROGRAM ccache) | 87 | + # ccache 由 init_cann_project() 统一探测并设置到 CMAKE_*_COMPILER_LAUNCHER; |
| 88 | - if(CCACHE_PROGRAM) | 88 | + # OpenSSL 非 CMake 构建(Configure+make),不支持 launcher 语义,需前缀拼接。 |
| 89 | - set(OPENSSL_CC "${CCACHE_PROGRAM} ${CMAKE_C_COMPILER}") | 89 | + if(CMAKE_C_COMPILER_LAUNCHER) |
| 90 | - set(OPENSSL_CXX "${CCACHE_PROGRAM} ${CMAKE_CXX_COMPILER}") | 90 | + set(OPENSSL_CC "${CMAKE_C_COMPILER_LAUNCHER} ${CMAKE_C_COMPILER}") |
| 91 | + set(OPENSSL_CXX "${CMAKE_CXX_COMPILER_LAUNCHER} ${CMAKE_CXX_COMPILER}") | ||
| 91 | else() | 92 | else() |
| 92 | set(OPENSSL_CC "${CMAKE_C_COMPILER}") | 93 | set(OPENSSL_CC "${CMAKE_C_COMPILER}") |
| 93 | set(OPENSSL_CXX "${CMAKE_CXX_COMPILER}") | 94 | set(OPENSSL_CXX "${CMAKE_CXX_COMPILER}") |
| @@ -144,7 +145,6 @@ else() | |||
| 144 | endif() | 145 | endif() |
| 145 | endif() | 146 | endif() |
| 146 | 147 | ||
| 147 | -message(STATUS "[ThirdParty][openssl] libcrypto: ${CRYPTO_LIB_PATH} libssl: ${SSL_LIB_PATH} include: ${OPENSSL_INCLUDE}") | ||
| 148 | if(NOT TARGET crypto_static) | 148 | if(NOT TARGET crypto_static) |
| 149 | add_library(crypto_static STATIC IMPORTED GLOBAL) | 149 | add_library(crypto_static STATIC IMPORTED GLOBAL) |
| 150 | add_dependencies(crypto_static openssl_project) | 150 | add_dependencies(crypto_static openssl_project) |
| @@ -9,10 +9,6 @@ | |||
| 9 | # ----------------------------------------------------------------------------------------------------------- | 9 | # ----------------------------------------------------------------------------------------------------------- |
| 10 | include_guard(GLOBAL) | 10 | include_guard(GLOBAL) |
| 11 | 11 | ||
| 12 | -if(POLICY CMP0135) | ||
| 13 | - cmake_policy(SET CMP0135 NEW) | ||
| 14 | -endif() | ||
| 15 | - | ||
| 16 | include(ExternalProject) | 12 | include(ExternalProject) |
| 17 | include(GNUInstallDirs) | 13 | include(GNUInstallDirs) |
| 18 | include(${CMAKE_CURRENT_LIST_DIR}/abseil-cpp.cmake) | 14 | include(${CMAKE_CURRENT_LIST_DIR}/abseil-cpp.cmake) |
| @@ -32,7 +28,7 @@ if(PRODUCT_SIDE STREQUAL "device") | |||
| 32 | set(LIB_SUB_DIR "lib64/device/lib64") | 28 | set(LIB_SUB_DIR "lib64/device/lib64") |
| 33 | 29 | ||
| 34 | # in device mode, need another path to save lib. | 30 | # in device mode, need another path to save lib. |
| 35 | - message("[ThirdParty][protobuf] device mode set protobuf lib path") | 31 | + message(STATUS "[ThirdParty][protobuf] device mode set protobuf lib path") |
| 36 | set(PROTOBUF_STATIC_PKG_DIR ${CANN_3RD_LIB_PATH}/lib_cache/device/protobuf_static) | 32 | set(PROTOBUF_STATIC_PKG_DIR ${CANN_3RD_LIB_PATH}/lib_cache/device/protobuf_static) |
| 37 | set(PROTOBUF_SHARED_PKG_DIR ${CANN_3RD_LIB_PATH}/lib_cache/device/protobuf_shared) | 33 | set(PROTOBUF_SHARED_PKG_DIR ${CANN_3RD_LIB_PATH}/lib_cache/device/protobuf_shared) |
| 38 | set(PROTOBUF_HOST_STATIC_PKG_DIR ${CANN_3RD_LIB_PATH}/lib_cache/device/protobuf_host_static) | 34 | set(PROTOBUF_HOST_STATIC_PKG_DIR ${CANN_3RD_LIB_PATH}/lib_cache/device/protobuf_host_static) |
| @@ -47,18 +43,11 @@ endif() | |||
| 47 | # ========================================================================================================== | 43 | # ========================================================================================================== |
| 48 | # 2. Compile Flags & Optimization | 44 | # 2. Compile Flags & Optimization |
| 49 | # ========================================================================================================== | 45 | # ========================================================================================================== |
| 46 | +include(${CMAKE_CURRENT_LIST_DIR}/protobuf_sym_rename.cmake) | ||
| 50 | set(SECURITY_COMPILE_OPT "-Wl,-z,relro,-z,now,-z,noexecstack -s -Wl,-Bsymbolic") | 47 | set(SECURITY_COMPILE_OPT "-Wl,-z,relro,-z,now,-z,noexecstack -s -Wl,-Bsymbolic") |
| 51 | -set(DEV_PROTOBUF_SHARED_CXXFLAGS "${SECURITY_COMPILE_OPT} -Wno-maybe-uninitialized -Wno-unused-parameter -fPIC -fstack-protector-all -D_FORTIFY_SOURCE=2 -D_GLIBCXX_USE_CXX11_ABI=1 -O2 -Dgoogle=ascend_private") | 48 | +set(PROTOBUF_SHARED_CXXFLAGS "${SECURITY_COMPILE_OPT} -Wno-maybe-uninitialized -Wno-unused-parameter -fPIC -fstack-protector-all -D_FORTIFY_SOURCE=2 -D_GLIBCXX_USE_CXX11_ABI=${CANN_CXX11_ABI} -O2 -Dgoogle=ascend_private ${PROTOBUF_SYM_RENAME}") |
| 52 | -set(HOST_PROTOBUF_SHARED_CXXFLAGS "${SECURITY_COMPILE_OPT} -Wno-maybe-uninitialized -Wno-unused-parameter -fPIC -fstack-protector-all -D_FORTIFY_SOURCE=2 -D_GLIBCXX_USE_CXX11_ABI=0 -O2 -Dgoogle=ascend_private") | 49 | +set(PROTOBUF_STATIC_CXXFLAGS "-fvisibility=hidden -fvisibility-inlines-hidden -Wno-maybe-uninitialized -Wno-unused-parameter -fPIC -fstack-protector-all -D_FORTIFY_SOURCE=2 -D_GLIBCXX_USE_CXX11_ABI=${CANN_CXX11_ABI} -O2 -Dgoogle=ascend_private ${PROTOBUF_SYM_RENAME}") |
| 53 | -set(DEV_PROTOBUF_STATIC_CXXFLAGS "-fvisibility=hidden -fvisibility-inlines-hidden -Wno-maybe-uninitialized -Wno-unused-parameter -fPIC -fstack-protector-all -D_FORTIFY_SOURCE=2 -D_GLIBCXX_USE_CXX11_ABI=1 -O2 -Dgoogle=ascend_private") | ||
| 54 | -set(HOST_PROTOBUF_STATIC_CXXFLAGS "-fvisibility=hidden -fvisibility-inlines-hidden -Wno-maybe-uninitialized -Wno-unused-parameter -fPIC -fstack-protector-all -D_FORTIFY_SOURCE=2 -D_GLIBCXX_USE_CXX11_ABI=0 -O2 -Dgoogle=ascend_private") | ||
| 55 | 50 | ||
| 56 | -message("[ThirdParty][protobuf] PRODUCT_SIDE: ${PRODUCT_SIDE}") | ||
| 57 | -message("[ThirdParty][protobuf] CMAKE_TOOLCHAIN_FILE: ${CMAKE_TOOLCHAIN_FILE}") | ||
| 58 | -if(PRODUCT_SIDE STREQUAL "device") | ||
| 59 | - set(HOST_PROTOBUF_SHARED_CXXFLAGS ${DEV_PROTOBUF_SHARED_CXXFLAGS}) | ||
| 60 | - set(HOST_PROTOBUF_STATIC_CXXFLAGS ${DEV_PROTOBUF_STATIC_CXXFLAGS}) | ||
| 61 | -endif() | ||
| 62 | set(PROTOBUF_TOOLCHAIN_ARGS) | 51 | set(PROTOBUF_TOOLCHAIN_ARGS) |
| 63 | if(CMAKE_TOOLCHAIN_FILE) | 52 | if(CMAKE_TOOLCHAIN_FILE) |
| 64 | list(APPEND PROTOBUF_TOOLCHAIN_ARGS -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}) | 53 | list(APPEND PROTOBUF_TOOLCHAIN_ARGS -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}) |
| @@ -70,10 +59,6 @@ if(CMAKE_TOOLCHAIN_FILE AND NOT PRODUCT_SIDE STREQUAL "device") | |||
| 70 | list(APPEND PROTOBUF_TOOLCHAIN_ARGS -DLLVM_PATH=${LLVM_PATH}) | 59 | list(APPEND PROTOBUF_TOOLCHAIN_ARGS -DLLVM_PATH=${LLVM_PATH}) |
| 71 | endif() | 60 | endif() |
| 72 | 61 | ||
| 73 | -include(${CMAKE_CURRENT_LIST_DIR}/protobuf_sym_rename.cmake) | ||
| 74 | -set(HOST_PROTOBUF_SHARED_CXXFLAGS "${HOST_PROTOBUF_SHARED_CXXFLAGS} ${PROTOBUF_SYM_RENAME}") | ||
| 75 | -set(HOST_PROTOBUF_STATIC_CXXFLAGS "${HOST_PROTOBUF_STATIC_CXXFLAGS} ${PROTOBUF_SYM_RENAME}") | ||
| 76 | - | ||
| 77 | # ========================================================================================================== | 62 | # ========================================================================================================== |
| 78 | # 3. Find Existing Libraries & Protoc | 63 | # 3. Find Existing Libraries & Protoc |
| 79 | # ========================================================================================================== | 64 | # ========================================================================================================== |
| @@ -125,11 +110,6 @@ find_path(ASCEND_PROTOBUF_SHARED_INCLUDE | |||
| 125 | NO_DEFAULT_PATH | 110 | NO_DEFAULT_PATH |
| 126 | ) | 111 | ) |
| 127 | 112 | ||
| 128 | -message("[ThirdParty][protobuf] PROTOC_PROGRAM : ${PROTOC_PROGRAM}.") | ||
| 129 | -message("[ThirdParty][protobuf] ASCEND_PROTOBUF_STATIC_LIB : ${ASCEND_PROTOBUF_STATIC_LIB}.") | ||
| 130 | -message("[ThirdParty][protobuf] HOST_PROTOBUF_STATIC_LIB : ${HOST_PROTOBUF_STATIC_LIB}.") | ||
| 131 | -message("[ThirdParty][protobuf] ASCEND_PROTOBUF_SHARED_LIB : ${ASCEND_PROTOBUF_SHARED_LIB}.") | ||
| 132 | - | ||
| 133 | # 解析 protobuf 源码包路径 | 113 | # 解析 protobuf 源码包路径 |
| 134 | if (EXISTS ${CANN_3RD_LIB_PATH}/protobuf-all-25.1.tar.gz) | 114 | if (EXISTS ${CANN_3RD_LIB_PATH}/protobuf-all-25.1.tar.gz) |
| 135 | set(REQ_URL ${CANN_3RD_LIB_PATH}/protobuf-all-25.1.tar.gz) | 115 | set(REQ_URL ${CANN_3RD_LIB_PATH}/protobuf-all-25.1.tar.gz) |
| @@ -142,7 +122,7 @@ else() | |||
| 142 | endif() | 122 | endif() |
| 143 | 123 | ||
| 144 | if(NOT EXISTS ${REQ_URL}) | 124 | if(NOT EXISTS ${REQ_URL}) |
| 145 | - message("[ThirdParty][protobuf] ${REQ_URL} not found, need download.") | 125 | + message(STATUS "[ThirdParty][protobuf] ${REQ_URL} not found, need download.") |
| 146 | set(REQ_URL "https://cann-3rd.obs.cn-north-4.myhuaweicloud.com/protobuf/protobuf-25.1.tar.gz") | 126 | set(REQ_URL "https://cann-3rd.obs.cn-north-4.myhuaweicloud.com/protobuf/protobuf-25.1.tar.gz") |
| 147 | endif() | 127 | endif() |
| 148 | 128 | ||
| @@ -158,7 +138,7 @@ ExternalProject_Add(protobuf_src | |||
| 158 | URL_HASH SHA256=9bd87b8280ef720d3240514f884e56a712f2218f0d693b48050c836028940a42 | 138 | URL_HASH SHA256=9bd87b8280ef720d3240514f884e56a712f2218f0d693b48050c836028940a42 |
| 159 | TIMEOUT 300 | 139 | TIMEOUT 300 |
| 160 | DOWNLOAD_DIR ${PROTOBUF_DOWNLOAD_DIR} | 140 | DOWNLOAD_DIR ${PROTOBUF_DOWNLOAD_DIR} |
| 161 | - PATCH_COMMAND patch --forward --batch -p1 < ${CMAKE_CURRENT_LIST_DIR}/patch/protobuf_25.1_change_version.patch | 141 | + PATCH_COMMAND patch --forward --batch --quiet -r - -p1 < ${CMAKE_CURRENT_LIST_DIR}/patch/protobuf_25.1_change_version.patch |
| 162 | CONFIGURE_COMMAND "" | 142 | CONFIGURE_COMMAND "" |
| 163 | BUILD_COMMAND "" | 143 | BUILD_COMMAND "" |
| 164 | INSTALL_COMMAND "" | 144 | INSTALL_COMMAND "" |
| @@ -175,14 +155,14 @@ set(PROTOBUF_SRC_DIR ${SOURCE_DIR} CACHE INTERNAL "protobuf src dir") | |||
| 175 | add_library(ascend_protobuf SHARED IMPORTED GLOBAL) | 155 | add_library(ascend_protobuf SHARED IMPORTED GLOBAL) |
| 176 | add_library(ascend_protobuf_shared_headers INTERFACE IMPORTED GLOBAL) | 156 | add_library(ascend_protobuf_shared_headers INTERFACE IMPORTED GLOBAL) |
| 177 | if(ASCEND_PROTOBUF_SHARED_INCLUDE AND ASCEND_PROTOBUF_SHARED_LIB) | 157 | if(ASCEND_PROTOBUF_SHARED_INCLUDE AND ASCEND_PROTOBUF_SHARED_LIB) |
| 178 | - message("[ThirdParty][protobuf] protobuf_shared use cache.") | 158 | + message(STATUS "[ThirdParty][protobuf] protobuf_shared use cache.") |
| 179 | set_target_properties(ascend_protobuf PROPERTIES | 159 | set_target_properties(ascend_protobuf PROPERTIES |
| 180 | IMPORTED_LOCATION ${ASCEND_PROTOBUF_SHARED_LIB} | 160 | IMPORTED_LOCATION ${ASCEND_PROTOBUF_SHARED_LIB} |
| 181 | INTERFACE_INCLUDE_DIRECTORIES ${ASCEND_PROTOBUF_SHARED_INCLUDE} | 161 | INTERFACE_INCLUDE_DIRECTORIES ${ASCEND_PROTOBUF_SHARED_INCLUDE} |
| 182 | ) | 162 | ) |
| 183 | set(_ASCEND_PROTOBUF_SHARED_INCLUDE ${ASCEND_PROTOBUF_SHARED_INCLUDE}) | 163 | set(_ASCEND_PROTOBUF_SHARED_INCLUDE ${ASCEND_PROTOBUF_SHARED_INCLUDE}) |
| 184 | else() | 164 | else() |
| 185 | - message("[ThirdParty][protobuf] protobuf_shared build.") | 165 | + message(STATUS "[ThirdParty][protobuf] protobuf_shared build.") |
| 186 | ExternalProject_Add(protobuf_shared_build | 166 | ExternalProject_Add(protobuf_shared_build |
| 187 | DEPENDS protobuf_src | 167 | DEPENDS protobuf_src |
| 188 | SOURCE_DIR ${PROTOBUF_SRC_DIR} | 168 | SOURCE_DIR ${PROTOBUF_SRC_DIR} |
| @@ -201,7 +181,7 @@ else() | |||
| 201 | -DLIB_PREFIX=ascend_ | 181 | -DLIB_PREFIX=ascend_ |
| 202 | -DCMAKE_SKIP_RPATH=TRUE | 182 | -DCMAKE_SKIP_RPATH=TRUE |
| 203 | -Dprotobuf_BUILD_TESTS=OFF | 183 | -Dprotobuf_BUILD_TESTS=OFF |
| 204 | - -DCMAKE_CXX_FLAGS=${HOST_PROTOBUF_SHARED_CXXFLAGS} | 184 | + -DCMAKE_CXX_FLAGS=${PROTOBUF_SHARED_CXXFLAGS} |
| 205 | -DCMAKE_INSTALL_PREFIX=${PROTOBUF_SHARED_PKG_DIR} | 185 | -DCMAKE_INSTALL_PREFIX=${PROTOBUF_SHARED_PKG_DIR} |
| 206 | -Dprotobuf_BUILD_PROTOC_BINARIES=OFF | 186 | -Dprotobuf_BUILD_PROTOC_BINARIES=OFF |
| 207 | -DABSL_ROOT_DIR=${ABS_INSTALL_DIR} | 187 | -DABSL_ROOT_DIR=${ABS_INSTALL_DIR} |
| @@ -218,7 +198,7 @@ else() | |||
| 218 | add_dependencies(ascend_protobuf protobuf_shared_build) | 198 | add_dependencies(ascend_protobuf protobuf_shared_build) |
| 219 | add_dependencies(ascend_protobuf_shared_headers protobuf_shared_build) | 199 | add_dependencies(ascend_protobuf_shared_headers protobuf_shared_build) |
| 220 | endif() | 200 | endif() |
| 221 | -target_include_directories(ascend_protobuf_shared_headers INTERFACE ${PROTOBUF_SHARED_PKG_DIR}/include) | 201 | +target_include_directories(ascend_protobuf_shared_headers SYSTEM INTERFACE ${PROTOBUF_SHARED_PKG_DIR}/include) |
| 222 | create_imported_interface_include_directories(ascend_protobuf) | 202 | create_imported_interface_include_directories(ascend_protobuf) |
| 223 | 203 | ||
| 224 | # use for runtime: PROTOBUF_SHARED_LIB_DIR | 204 | # use for runtime: PROTOBUF_SHARED_LIB_DIR |
| @@ -229,10 +209,10 @@ set(PROTOBUF_SHARED_LIB_DIR "${PROTOBUF_SHARED_PKG_DIR}/lib") | |||
| 229 | # --------------------------------------------------------- | 209 | # --------------------------------------------------------- |
| 230 | add_executable(host_protoc IMPORTED GLOBAL) | 210 | add_executable(host_protoc IMPORTED GLOBAL) |
| 231 | if(PROTOC_PROGRAM) | 211 | if(PROTOC_PROGRAM) |
| 232 | - message("[ThirdParty][protobuf] protoc use cache.") | 212 | + message(STATUS "[ThirdParty][protobuf] protoc use cache.") |
| 233 | set_target_properties(host_protoc PROPERTIES IMPORTED_LOCATION ${PROTOC_PROGRAM}) | 213 | set_target_properties(host_protoc PROPERTIES IMPORTED_LOCATION ${PROTOC_PROGRAM}) |
| 234 | else() | 214 | else() |
| 235 | - message("[ThirdParty][protobuf] protoc build.") | 215 | + message(STATUS "[ThirdParty][protobuf] protoc build.") |
| 236 | ExternalProject_Add(protobuf_host_build | 216 | ExternalProject_Add(protobuf_host_build |
| 237 | DEPENDS protobuf_src | 217 | DEPENDS protobuf_src |
| 238 | SOURCE_DIR ${PROTOBUF_SRC_DIR} | 218 | SOURCE_DIR ${PROTOBUF_SRC_DIR} |
| @@ -265,7 +245,7 @@ add_custom_target(protoc DEPENDS host_protoc) | |||
| 265 | add_library(ascend_protobuf_static STATIC IMPORTED GLOBAL) | 245 | add_library(ascend_protobuf_static STATIC IMPORTED GLOBAL) |
| 266 | add_library(ascend_protobuf_static_headers INTERFACE IMPORTED GLOBAL) | 246 | add_library(ascend_protobuf_static_headers INTERFACE IMPORTED GLOBAL) |
| 267 | if(ASCEND_PROTOBUF_STATIC_INCLUDE AND ASCEND_PROTOBUF_STATIC_LIB) | 247 | if(ASCEND_PROTOBUF_STATIC_INCLUDE AND ASCEND_PROTOBUF_STATIC_LIB) |
| 268 | - message("[ThirdParty][protobuf] protobuf_static use cache.") | 248 | + message(STATUS "[ThirdParty][protobuf] protobuf_static use cache.") |
| 269 | set_target_properties(ascend_protobuf_static PROPERTIES | 249 | set_target_properties(ascend_protobuf_static PROPERTIES |
| 270 | IMPORTED_LOCATION ${ASCEND_PROTOBUF_STATIC_LIB} | 250 | IMPORTED_LOCATION ${ASCEND_PROTOBUF_STATIC_LIB} |
| 271 | INTERFACE_INCLUDE_DIRECTORIES ${ASCEND_PROTOBUF_STATIC_INCLUDE} | 251 | INTERFACE_INCLUDE_DIRECTORIES ${ASCEND_PROTOBUF_STATIC_INCLUDE} |
| @@ -273,7 +253,7 @@ if(ASCEND_PROTOBUF_STATIC_INCLUDE AND ASCEND_PROTOBUF_STATIC_LIB) | |||
| 273 | set(_ASCEND_PROTOBUF_STATIC_INCLUDE ${ASCEND_PROTOBUF_STATIC_INCLUDE}) | 253 | set(_ASCEND_PROTOBUF_STATIC_INCLUDE ${ASCEND_PROTOBUF_STATIC_INCLUDE}) |
| 274 | set(PROTOBUF_STATIC_FINAL_PATH ${ASCEND_PROTOBUF_STATIC_LIB}) | 254 | set(PROTOBUF_STATIC_FINAL_PATH ${ASCEND_PROTOBUF_STATIC_LIB}) |
| 275 | else() | 255 | else() |
| 276 | - message("[ThirdParty][protobuf] protobuf_static build.") | 256 | + message(STATUS "[ThirdParty][protobuf] protobuf_static build.") |
| 277 | ExternalProject_Add(protobuf_static_build | 257 | ExternalProject_Add(protobuf_static_build |
| 278 | DEPENDS protobuf_src | 258 | DEPENDS protobuf_src |
| 279 | SOURCE_DIR ${PROTOBUF_SRC_DIR} | 259 | SOURCE_DIR ${PROTOBUF_SRC_DIR} |
| @@ -292,7 +272,7 @@ else() | |||
| 292 | -DLIB_PREFIX=ascend_ | 272 | -DLIB_PREFIX=ascend_ |
| 293 | -DCMAKE_SKIP_RPATH=TRUE | 273 | -DCMAKE_SKIP_RPATH=TRUE |
| 294 | -Dprotobuf_BUILD_TESTS=OFF | 274 | -Dprotobuf_BUILD_TESTS=OFF |
| 295 | - -DCMAKE_CXX_FLAGS=${HOST_PROTOBUF_STATIC_CXXFLAGS} | 275 | + -DCMAKE_CXX_FLAGS=${PROTOBUF_STATIC_CXXFLAGS} |
| 296 | -DCMAKE_INSTALL_PREFIX=${PROTOBUF_STATIC_PKG_DIR} | 276 | -DCMAKE_INSTALL_PREFIX=${PROTOBUF_STATIC_PKG_DIR} |
| 297 | -Dprotobuf_BUILD_PROTOC_BINARIES=OFF | 277 | -Dprotobuf_BUILD_PROTOC_BINARIES=OFF |
| 298 | -DABSL_COMPILE_OBJ=TRUE | 278 | -DABSL_COMPILE_OBJ=TRUE |
| @@ -311,7 +291,7 @@ else() | |||
| 311 | add_dependencies(ascend_protobuf_static_headers protobuf_static_build) | 291 | add_dependencies(ascend_protobuf_static_headers protobuf_static_build) |
| 312 | set(PROTOBUF_STATIC_FINAL_PATH ${PROTOBUF_STATIC_PKG_DIR}/lib/libascend_protobuf.a) | 292 | set(PROTOBUF_STATIC_FINAL_PATH ${PROTOBUF_STATIC_PKG_DIR}/lib/libascend_protobuf.a) |
| 313 | endif() | 293 | endif() |
| 314 | -target_include_directories(ascend_protobuf_static_headers INTERFACE ${_ASCEND_PROTOBUF_STATIC_INCLUDE}) | 294 | +target_include_directories(ascend_protobuf_static_headers SYSTEM INTERFACE ${_ASCEND_PROTOBUF_STATIC_INCLUDE}) |
| 315 | create_imported_interface_include_directories(ascend_protobuf_static) | 295 | create_imported_interface_include_directories(ascend_protobuf_static) |
| 316 | 296 | ||
| 317 | # --------------------------------------------------------- | 297 | # --------------------------------------------------------- |
| @@ -319,14 +299,14 @@ create_imported_interface_include_directories(ascend_protobuf_static) | |||
| 319 | # --------------------------------------------------------- | 299 | # --------------------------------------------------------- |
| 320 | add_library(protobuf_static STATIC IMPORTED GLOBAL) | 300 | add_library(protobuf_static STATIC IMPORTED GLOBAL) |
| 321 | if(HOST_PROTOBUF_STATIC_INCLUDE AND HOST_PROTOBUF_STATIC_LIB) | 301 | if(HOST_PROTOBUF_STATIC_INCLUDE AND HOST_PROTOBUF_STATIC_LIB) |
| 322 | - message("[ThirdParty][protobuf] protobuf_host_static use cache.") | 302 | + message(STATUS "[ThirdParty][protobuf] protobuf_host_static use cache.") |
| 323 | set_target_properties(protobuf_static PROPERTIES | 303 | set_target_properties(protobuf_static PROPERTIES |
| 324 | IMPORTED_LOCATION ${HOST_PROTOBUF_STATIC_LIB} | 304 | IMPORTED_LOCATION ${HOST_PROTOBUF_STATIC_LIB} |
| 325 | INTERFACE_INCLUDE_DIRECTORIES "${HOST_PROTOBUF_STATIC_INCLUDE}" | 305 | INTERFACE_INCLUDE_DIRECTORIES "${HOST_PROTOBUF_STATIC_INCLUDE}" |
| 326 | ) | 306 | ) |
| 327 | set(PROTOBUF_HOST_STATIC_FINAL_PATH ${HOST_PROTOBUF_STATIC_LIB}) | 307 | set(PROTOBUF_HOST_STATIC_FINAL_PATH ${HOST_PROTOBUF_STATIC_LIB}) |
| 328 | else() | 308 | else() |
| 329 | - message("[ThirdParty][protobuf] protobuf_host_static build.") | 309 | + message(STATUS "[ThirdParty][protobuf] protobuf_host_static build.") |
| 330 | ExternalProject_Add(protobuf_host_static_build | 310 | ExternalProject_Add(protobuf_host_static_build |
| 331 | DEPENDS protobuf_src | 311 | DEPENDS protobuf_src |
| 332 | SOURCE_DIR ${PROTOBUF_SRC_DIR} | 312 | SOURCE_DIR ${PROTOBUF_SRC_DIR} |
| @@ -344,7 +324,7 @@ else() | |||
| 344 | -DLIB_PREFIX=host_ascend_ | 324 | -DLIB_PREFIX=host_ascend_ |
| 345 | -DCMAKE_SKIP_RPATH=TRUE | 325 | -DCMAKE_SKIP_RPATH=TRUE |
| 346 | -Dprotobuf_BUILD_TESTS=OFF | 326 | -Dprotobuf_BUILD_TESTS=OFF |
| 347 | - -DCMAKE_CXX_FLAGS=${HOST_PROTOBUF_STATIC_CXXFLAGS} | 327 | + -DCMAKE_CXX_FLAGS=${PROTOBUF_STATIC_CXXFLAGS} |
| 348 | -DCMAKE_INSTALL_PREFIX=${PROTOBUF_HOST_STATIC_PKG_DIR} | 328 | -DCMAKE_INSTALL_PREFIX=${PROTOBUF_HOST_STATIC_PKG_DIR} |
| 349 | -Dprotobuf_BUILD_PROTOC_BINARIES=OFF | 329 | -Dprotobuf_BUILD_PROTOC_BINARIES=OFF |
| 350 | -DABSL_COMPILE_OBJ=TRUE | 330 | -DABSL_COMPILE_OBJ=TRUE |
| @@ -8,11 +8,11 @@ | |||
| 8 | # See LICENSE in the root of the software repository for the full text of the License. | 8 | # See LICENSE in the root of the software repository for the full text of the License. |
| 9 | # ----------------------------------------------------------------------------------------------------------- | 9 | # ----------------------------------------------------------------------------------------------------------- |
| 10 | # NOTICE !! PROTOBUF VERSION CHANGE MAY REDEFINED THESE GLOBAL VARIABLES | 10 | # NOTICE !! PROTOBUF VERSION CHANGE MAY REDEFINED THESE GLOBAL VARIABLES |
| 11 | -# The content of `PROTOBUF_SYM_RENAME` is auto generated by the step: | 11 | +# The context of `PROTOBUF_SYM_RENAME` is auto generated by the step: |
| 12 | # 1. goto the code root | 12 | # 1. goto the code root |
| 13 | # 2. cd open_source/protobuf && mkdir objects && cd objects && cmake ../cmake/ -Dprotobuf_BUILD_TESTS=OFF -Dprotobuf_BUILD_SHARED_LIBS=1 && make -j16 | 13 | # 2. cd open_source/protobuf && mkdir objects && cd objects && cmake ../cmake/ -Dprotobuf_BUILD_TESTS=OFF -Dprotobuf_BUILD_SHARED_LIBS=1 && make -j16 |
| 14 | -# 3. readelf --dyn-syms -W libascend_protobuf.so.3.13.0.0 |grep GLOBAL |grep DEFAULT |grep OBJECT |grep -v _ZN | grep -v UND | awk '{print "-D"$8"="$8"_25_1_0 \\"}' | 14 | +# 3. readelf --dyn-syms -W libascend_protobuf.so.25.1.0.0 |grep GLOBAL |grep DEFAULT |grep OBJECT |grep -v _ZN | grep -v UND | awk '{print "-D"$8"="$8"_25_1_0 \\"}' |
| 15 | -# 4. notes, please change protobuf version 3.13.0.0 and 25_1_0 in the command parameter of readelf | 15 | +# 4. notes, please change protobuf version 25.1.0.0 and 25_1_0 in the command parameter of readelf |
| 16 | # need help : wangkai86@huawei.com | 16 | # need help : wangkai86@huawei.com |
| 17 | set(PROTOBUF_SYM_RENAME " \ | 17 | set(PROTOBUF_SYM_RENAME " \ |
| 18 | -Ddescriptor_table_google_2fprotobuf_2fsource_5fcontext_2eproto=descriptor_table_google_2fprotobuf_2fsource_5fcontext_2eproto_25_1_0 \ | 18 | -Ddescriptor_table_google_2fprotobuf_2fsource_5fcontext_2eproto=descriptor_table_google_2fprotobuf_2fsource_5fcontext_2eproto_25_1_0 \ |
| @@ -66,9 +66,7 @@ else() | |||
| 66 | endif() | 66 | endif() |
| 67 | 67 | ||
| 68 | add_library(pybind11 INTERFACE) | 68 | add_library(pybind11 INTERFACE) |
| 69 | -set_target_properties(pybind11 PROPERTIES | 69 | +target_include_directories(pybind11 SYSTEM INTERFACE "${pybind11_INCLUDE_DIR}") |
| 70 | - INTERFACE_INCLUDE_DIRECTORIES "${pybind11_INCLUDE_DIR}" | ||
| 71 | -) | ||
| 72 | if(TARGET pybind11_build) | 70 | if(TARGET pybind11_build) |
| 73 | add_dependencies(pybind11 pybind11_build) | 71 | add_dependencies(pybind11 pybind11_build) |
| 74 | endif() | 72 | endif() |
| @@ -13,10 +13,6 @@ check_cann_build_tool(pkg-config) | |||
| 13 | unset(rdma_core_FOUND CACHE) | 13 | unset(rdma_core_FOUND CACHE) |
| 14 | unset(RDMA_CORE_INCLUDE CACHE) | 14 | unset(RDMA_CORE_INCLUDE CACHE) |
| 15 | 15 | ||
| 16 | -if(POLICY CMP0135) | ||
| 17 | - cmake_policy(SET CMP0135 NEW) | ||
| 18 | -endif() | ||
| 19 | - | ||
| 20 | if(PRODUCT_SIDE STREQUAL "device") | 16 | if(PRODUCT_SIDE STREQUAL "device") |
| 21 | set(RDMA_CORE_SRC_DIR ${CANN_3RD_LIB_PATH}/lib_cache/device/rdma_core_src) | 17 | set(RDMA_CORE_SRC_DIR ${CANN_3RD_LIB_PATH}/lib_cache/device/rdma_core_src) |
| 22 | set(RDMA_CORE_BUILD_DIR ${CANN_3RD_LIB_PATH}/lib_cache/device/rdma_core_build) | 18 | set(RDMA_CORE_BUILD_DIR ${CANN_3RD_LIB_PATH}/lib_cache/device/rdma_core_build) |
| @@ -53,7 +49,7 @@ add_library(rdma_core_headers INTERFACE) | |||
| 53 | 49 | ||
| 54 | if(rdma_core_FOUND AND NOT FORCE_REBUILD_CANN_3RD) | 50 | if(rdma_core_FOUND AND NOT FORCE_REBUILD_CANN_3RD) |
| 55 | set(RDMA_CORE_INCLUDE_DIR "${RDMA_CORE_INCLUDE}") | 51 | set(RDMA_CORE_INCLUDE_DIR "${RDMA_CORE_INCLUDE}") |
| 56 | - message(STATUS "[ThirdParty][rdma-core] rdma-core found in ${RDMA_CORE_BUILD_PATH}, and not force rebuild cann third_party") | 52 | + message(STATUS "[ThirdParty][rdma-core] rdma-core found in ${RDMA_CORE_BUILD_DIR}, and not force rebuild cann third_party") |
| 57 | else() | 53 | else() |
| 58 | if(EXISTS "${RDMA_CORE_PKG_DIR}/${RDMA_CORE_PATCH_FILE}") | 54 | if(EXISTS "${RDMA_CORE_PKG_DIR}/${RDMA_CORE_PATCH_FILE}") |
| 59 | set(RDMA_CORE_PATCH "${RDMA_CORE_PKG_DIR}/${RDMA_CORE_PATCH_FILE}") | 55 | set(RDMA_CORE_PATCH "${RDMA_CORE_PKG_DIR}/${RDMA_CORE_PATCH_FILE}") |
| @@ -105,7 +101,7 @@ else() | |||
| 105 | TIMEOUT 300 | 101 | TIMEOUT 300 |
| 106 | SOURCE_DIR ${RDMA_CORE_SRC_DIR} | 102 | SOURCE_DIR ${RDMA_CORE_SRC_DIR} |
| 107 | DOWNLOAD_DIR ${RDMA_CORE_PKG_DIR} | 103 | DOWNLOAD_DIR ${RDMA_CORE_PKG_DIR} |
| 108 | - PATCH_COMMAND patch -p1 -i "${RDMA_CORE_PATCH}" | 104 | + PATCH_COMMAND patch --forward --batch --quiet -r - -p1 -i "${RDMA_CORE_PATCH}" |
| 109 | CONFIGURE_COMMAND "" | 105 | CONFIGURE_COMMAND "" |
| 110 | BUILD_COMMAND "" | 106 | BUILD_COMMAND "" |
| 111 | INSTALL_COMMAND "" | 107 | INSTALL_COMMAND "" |
| @@ -10,19 +10,15 @@ | |||
| 10 | 10 | ||
| 11 | include_guard(GLOBAL) | 11 | include_guard(GLOBAL) |
| 12 | 12 | ||
| 13 | -if(POLICY CMP0135) | ||
| 14 | - cmake_policy(SET CMP0135 NEW) | ||
| 15 | -endif() | ||
| 16 | - | ||
| 17 | if(PRODUCT_SIDE STREQUAL "device") | 13 | if(PRODUCT_SIDE STREQUAL "device") |
| 18 | - set(RE2_INTALL_PATH ${CANN_3RD_LIB_PATH}/lib_cache/device/re2) | 14 | + set(RE2_INSTALL_PATH ${CANN_3RD_LIB_PATH}/lib_cache/device/re2) |
| 19 | set(RE2_PKG_PATH ${CANN_3RD_LIB_PATH}/pkg/device) | 15 | set(RE2_PKG_PATH ${CANN_3RD_LIB_PATH}/pkg/device) |
| 20 | else() | 16 | else() |
| 21 | - set(RE2_INTALL_PATH ${CANN_3RD_LIB_PATH}/lib_cache/re2) | 17 | + set(RE2_INSTALL_PATH ${CANN_3RD_LIB_PATH}/lib_cache/re2) |
| 22 | set(RE2_PKG_PATH ${CANN_3RD_LIB_PATH}/pkg) | 18 | set(RE2_PKG_PATH ${CANN_3RD_LIB_PATH}/pkg) |
| 23 | endif() | 19 | endif() |
| 24 | 20 | ||
| 25 | -set(RE2_FILE ${RE2_INTALL_PATH}/re2.h) | 21 | +set(RE2_FILE ${RE2_INSTALL_PATH}/re2.h) |
| 26 | if (EXISTS ${RE2_FILE}) | 22 | if (EXISTS ${RE2_FILE}) |
| 27 | message(STATUS "[ThirdParty][re2] re2.h found.") | 23 | message(STATUS "[ThirdParty][re2] re2.h found.") |
| 28 | add_custom_target(re2_build) | 24 | add_custom_target(re2_build) |
| @@ -45,12 +41,12 @@ else() | |||
| 45 | URL_HASH SHA256=cd191a311b84fcf37310e5cd876845b4bf5aee76fdd755008eef3b6478ce07bb | 41 | URL_HASH SHA256=cd191a311b84fcf37310e5cd876845b4bf5aee76fdd755008eef3b6478ce07bb |
| 46 | TIMEOUT 300 | 42 | TIMEOUT 300 |
| 47 | DOWNLOAD_DIR ${RE2_PKG_PATH} | 43 | DOWNLOAD_DIR ${RE2_PKG_PATH} |
| 48 | - SOURCE_DIR ${RE2_INTALL_PATH} | 44 | + SOURCE_DIR ${RE2_INSTALL_PATH} |
| 49 | - PATCH_COMMAND patch -N --batch --quiet -r - -p1 < ${CMAKE_CURRENT_LIST_DIR}/patch/re2-add_compatible_functions.patch | 45 | + PATCH_COMMAND patch --forward --batch --quiet -r - -p1 < ${CMAKE_CURRENT_LIST_DIR}/patch/re2-add_compatible_functions.patch |
| 50 | CONFIGURE_COMMAND "" | 46 | CONFIGURE_COMMAND "" |
| 51 | BUILD_COMMAND "" | 47 | BUILD_COMMAND "" |
| 52 | INSTALL_COMMAND "" | 48 | INSTALL_COMMAND "" |
| 53 | EXCLUDE_FROM_ALL TRUE | 49 | EXCLUDE_FROM_ALL TRUE |
| 54 | - DWONLOAD_NO_PROGRESS TRUE | 50 | + DOWNLOAD_NO_PROGRESS TRUE |
| 55 | ) | 51 | ) |
| 56 | endif() | 52 | endif() |
| @@ -9,28 +9,25 @@ | |||
| 9 | # ----------------------------------------------------------------------------------------------------------- | 9 | # ----------------------------------------------------------------------------------------------------------- |
| 10 | include_guard(GLOBAL) | 10 | include_guard(GLOBAL) |
| 11 | 11 | ||
| 12 | -if(POLICY CMP0135) | ||
| 13 | - cmake_policy(SET CMP0135 NEW) | ||
| 14 | -endif() | ||
| 15 | - | ||
| 16 | set(seccomp_download_dependent FALSE) | 12 | set(seccomp_download_dependent FALSE) |
| 17 | if(IS_DIRECTORY "${CANN_3RD_LIB_PATH}/../tools/minios/arm64/include/libseccomp") | 13 | if(IS_DIRECTORY "${CANN_3RD_LIB_PATH}/../tools/minios/arm64/include/libseccomp") |
| 18 | - message("[ThirdParty][seccomp] use tools cache.") | 14 | + message(STATUS "[ThirdParty][seccomp] use tools cache.") |
| 19 | set(LIB_SECCOMP_INCLUDE_PATH "${CANN_3RD_LIB_PATH}/../tools/minios/arm64/include/libseccomp") | 15 | set(LIB_SECCOMP_INCLUDE_PATH "${CANN_3RD_LIB_PATH}/../tools/minios/arm64/include/libseccomp") |
| 20 | elseif (EXISTS "${CANN_3RD_LIB_PATH}/lib_cache/libseccomp-2.5.4/include/seccomp.h") | 16 | elseif (EXISTS "${CANN_3RD_LIB_PATH}/lib_cache/libseccomp-2.5.4/include/seccomp.h") |
| 21 | - message("[ThirdParty][seccomp] use opensource cache.") | 17 | + message(STATUS "[ThirdParty][seccomp] use opensource cache.") |
| 22 | set(LIB_SECCOMP_INCLUDE_PATH "${CANN_3RD_LIB_PATH}/lib_cache/libseccomp-2.5.4/include") | 18 | set(LIB_SECCOMP_INCLUDE_PATH "${CANN_3RD_LIB_PATH}/lib_cache/libseccomp-2.5.4/include") |
| 23 | else() | 19 | else() |
| 24 | if(EXISTS "${CANN_3RD_LIB_PATH}/libseccomp-2.5.4.tar.gz") | 20 | if(EXISTS "${CANN_3RD_LIB_PATH}/libseccomp-2.5.4.tar.gz") |
| 25 | - message("[ThirdParty][seccomp] use cache.") | ||
| 26 | set(REQ_URL "${CANN_3RD_LIB_PATH}/libseccomp-2.5.4.tar.gz") | 21 | set(REQ_URL "${CANN_3RD_LIB_PATH}/libseccomp-2.5.4.tar.gz") |
| 27 | elseif(NOT EXISTS "${CANN_3RD_LIB_PATH}/libseccomp-2.5.4/") | 22 | elseif(NOT EXISTS "${CANN_3RD_LIB_PATH}/libseccomp-2.5.4/") |
| 28 | - message("[ThirdParty][seccomp] not use cache in ${CANN_3RD_LIB_PATH}, download seccomp.") | 23 | + message(STATUS "[ThirdParty][seccomp] not use cache in ${CANN_3RD_LIB_PATH}, download seccomp.") |
| 29 | set(REQ_URL "https://cann-3rd.obs.cn-north-4.myhuaweicloud.com/libseccomp/libseccomp-2.5.4.tar.gz") | 24 | set(REQ_URL "https://cann-3rd.obs.cn-north-4.myhuaweicloud.com/libseccomp/libseccomp-2.5.4.tar.gz") |
| 30 | else() | 25 | else() |
| 31 | - message("[ThirdParty][seccomp] use cache.") | ||
| 32 | set(REQ_URL "${CANN_3RD_LIB_PATH}/libseccomp-2.5.4/") | 26 | set(REQ_URL "${CANN_3RD_LIB_PATH}/libseccomp-2.5.4/") |
| 33 | endif() | 27 | endif() |
| 28 | + if(EXISTS "${REQ_URL}") | ||
| 29 | + message(STATUS "[ThirdParty][seccomp] use cache.") | ||
| 30 | + endif() | ||
| 34 | include(ExternalProject) | 31 | include(ExternalProject) |
| 35 | ExternalProject_Add(external_seccomp | 32 | ExternalProject_Add(external_seccomp |
| 36 | URL ${REQ_URL} | 33 | URL ${REQ_URL} |
| @@ -41,6 +38,7 @@ else() | |||
| 41 | CONFIGURE_COMMAND cd <SOURCE_DIR> && ./autogen.sh && ./configure --prefix=<INSTALL_DIR> | 38 | CONFIGURE_COMMAND cd <SOURCE_DIR> && ./autogen.sh && ./configure --prefix=<INSTALL_DIR> |
| 42 | INSTALL_COMMAND "" | 39 | INSTALL_COMMAND "" |
| 43 | BUILD_COMMAND "" | 40 | BUILD_COMMAND "" |
| 41 | + EXCLUDE_FROM_ALL TRUE | ||
| 44 | ) | 42 | ) |
| 45 | 43 | ||
| 46 | ExternalProject_Get_Property(external_seccomp SOURCE_DIR) | 44 | ExternalProject_Get_Property(external_seccomp SOURCE_DIR) |
| @@ -49,9 +47,7 @@ else() | |||
| 49 | endif() | 47 | endif() |
| 50 | 48 | ||
| 51 | add_library(seccomp_headers INTERFACE) | 49 | add_library(seccomp_headers INTERFACE) |
| 52 | -set_target_properties(seccomp_headers PROPERTIES | 50 | +target_include_directories(seccomp_headers SYSTEM INTERFACE "${LIB_SECCOMP_INCLUDE_PATH}") |
| 53 | - INTERFACE_INCLUDE_DIRECTORIES "${LIB_SECCOMP_INCLUDE_PATH}" | ||
| 54 | -) | ||
| 55 | if(seccomp_download_dependent) | 51 | if(seccomp_download_dependent) |
| 56 | add_dependencies(seccomp_headers external_seccomp) | 52 | add_dependencies(seccomp_headers external_seccomp) |
| 57 | endif() | 53 | endif() |
| @@ -34,13 +34,13 @@ else() | |||
| 34 | elseif(EXISTS ${CMAKE_FILE}) | 34 | elseif(EXISTS ${CMAKE_FILE}) |
| 35 | message(STATUS "[ThirdParty][symengine] ${CMAKE_FILE} found, symengine is ready without patch installed.") | 35 | message(STATUS "[ThirdParty][symengine] ${CMAKE_FILE} found, symengine is ready without patch installed.") |
| 36 | list(APPEND SYMENGINE_EXTRA_ARGS | 36 | list(APPEND SYMENGINE_EXTRA_ARGS |
| 37 | - PATCH_COMMAND patch -p1 < ${CMAKE_CURRENT_LIST_DIR}/patch/symengine_add_mod.patch | 37 | + PATCH_COMMAND patch --forward --batch --quiet -r - -p1 < ${CMAKE_CURRENT_LIST_DIR}/patch/symengine_add_mod.patch |
| 38 | ) | 38 | ) |
| 39 | elseif(EXISTS ${REQ_URL}) | 39 | elseif(EXISTS ${REQ_URL}) |
| 40 | message(STATUS "[ThirdParty][symengine] ${REQ_URL} found.") | 40 | message(STATUS "[ThirdParty][symengine] ${REQ_URL} found.") |
| 41 | list(APPEND SYMENGINE_EXTRA_ARGS | 41 | list(APPEND SYMENGINE_EXTRA_ARGS |
| 42 | URL ${REQ_URL} | 42 | URL ${REQ_URL} |
| 43 | - PATCH_COMMAND patch -p1 < ${CMAKE_CURRENT_LIST_DIR}/patch/symengine_add_mod.patch | 43 | + PATCH_COMMAND patch --forward --batch --quiet -r - -p1 < ${CMAKE_CURRENT_LIST_DIR}/patch/symengine_add_mod.patch |
| 44 | ) | 44 | ) |
| 45 | else() | 45 | else() |
| 46 | message(STATUS "[ThirdParty][symengine] symengine not found, need download.") | 46 | message(STATUS "[ThirdParty][symengine] symengine not found, need download.") |
| @@ -50,10 +50,10 @@ else() | |||
| 50 | URL_HASH SHA256=1b5c3b0bc6a9f187635f93585649f24a18e9c7f2167cebcd885edeaaf211d956 | 50 | URL_HASH SHA256=1b5c3b0bc6a9f187635f93585649f24a18e9c7f2167cebcd885edeaaf211d956 |
| 51 | TIMEOUT 300 | 51 | TIMEOUT 300 |
| 52 | DOWNLOAD_DIR ${CANN_3RD_LIB_PATH}/symengine | 52 | DOWNLOAD_DIR ${CANN_3RD_LIB_PATH}/symengine |
| 53 | - PATCH_COMMAND patch -p1 < ${CMAKE_CURRENT_LIST_DIR}/patch/symengine_add_mod.patch | 53 | + PATCH_COMMAND patch --forward --batch --quiet -r - -p1 < ${CMAKE_CURRENT_LIST_DIR}/patch/symengine_add_mod.patch |
| 54 | ) | 54 | ) |
| 55 | endif() | 55 | endif() |
| 56 | - set(SYMENGINE_CXXFLAGS "-fPIC -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++17") | 56 | + set(SYMENGINE_CXXFLAGS "-fPIC -D_GLIBCXX_USE_CXX11_ABI=${CANN_CXX11_ABI} -std=c++17") |
| 57 | include(ExternalProject) | 57 | include(ExternalProject) |
| 58 | ExternalProject_Add(symengine_build | 58 | ExternalProject_Add(symengine_build |
| 59 | SOURCE_DIR ${CANN_3RD_LIB_PATH}/symengine | 59 | SOURCE_DIR ${CANN_3RD_LIB_PATH}/symengine |
| @@ -8,9 +8,6 @@ | |||
| 8 | # See LICENSE in the root of the software repository for the full text of the License. | 8 | # See LICENSE in the root of the software repository for the full text of the License. |
| 9 | # ----------------------------------------------------------------------------------------------------------- | 9 | # ----------------------------------------------------------------------------------------------------------- |
| 10 | include_guard(GLOBAL) | 10 | include_guard(GLOBAL) |
| 11 | -if(POLICY CMP0135) | ||
| 12 | - cmake_policy(SET CMP0135 NEW) | ||
| 13 | -endif() | ||
| 14 | include(ExternalProject) | 11 | include(ExternalProject) |
| 15 | 12 | ||
| 16 | set(ZLIB_INSTALL_DIR ${CANN_3RD_LIB_PATH}/lib_cache/zlib) | 13 | set(ZLIB_INSTALL_DIR ${CANN_3RD_LIB_PATH}/lib_cache/zlib) |
| @@ -35,21 +32,31 @@ set_target_properties(minizip_static PROPERTIES | |||
| 35 | INTERFACE_LINK_LIBRARIES ${ZLIB_LIBRARY} | 32 | INTERFACE_LINK_LIBRARIES ${ZLIB_LIBRARY} |
| 36 | ) | 33 | ) |
| 37 | 34 | ||
| 38 | -set(REQ_URL "${CANN_3RD_LIB_PATH}/zlib/zlib-1.2.13.tar.xz") | 35 | +set(ZLIB_GZ_HASH SHA256=1525952a0a567581792613a9723333d7f8cc20b87a81f920fb8bc7e3f2251428) |
| 39 | -set(REQ_URL_BACK "${CANN_3RD_LIB_PATH}/zlib/zlib-1.2.13.tar.gz") | 36 | +set(ZLIB_XZ_HASH SHA256=d14c38e313afc35a9a8760dadf26042f51ea0f5d154b0630a31da0540107fb98) |
| 40 | -if(EXISTS ${REQ_URL}) | 37 | + |
| 41 | - message(STATUS "[ThirdParty][zlib] ${REQ_URL} found.") | 38 | +if(EXISTS "${CANN_3RD_LIB_PATH}/zlib/zlib-1.2.13.tar.xz") |
| 42 | -elseif(EXISTS ${REQ_URL_BACK}) | 39 | + set(REQ_URL "${CANN_3RD_LIB_PATH}/zlib/zlib-1.2.13.tar.xz") |
| 43 | - message(STATUS "[ThirdParty][zlib] ${REQ_URL_BACK} found.") | 40 | + set(ZLIB_URL_HASH ${ZLIB_XZ_HASH}) |
| 44 | - set(REQ_URL ${REQ_URL_BACK}) | 41 | +elseif(EXISTS "${CANN_3RD_LIB_PATH}/zlib/zlib-1.2.13.tar.gz") |
| 42 | + set(REQ_URL "${CANN_3RD_LIB_PATH}/zlib/zlib-1.2.13.tar.gz") | ||
| 43 | + set(ZLIB_URL_HASH ${ZLIB_GZ_HASH}) | ||
| 44 | +elseif(EXISTS "${CANN_3RD_LIB_PATH}/zlib-1.2.13.tar.gz") | ||
| 45 | + set(REQ_URL "${CANN_3RD_LIB_PATH}/zlib-1.2.13.tar.gz") | ||
| 46 | + set(ZLIB_URL_HASH ${ZLIB_GZ_HASH}) | ||
| 45 | else() | 47 | else() |
| 46 | - message(STATUS "[ThirdParty][zlib] ${REQ_URL} not found, need download.") | ||
| 47 | set(REQ_URL "https://cann-3rd.obs.cn-north-4.myhuaweicloud.com/zlib/zlib-1.2.13.tar.gz") | 48 | set(REQ_URL "https://cann-3rd.obs.cn-north-4.myhuaweicloud.com/zlib/zlib-1.2.13.tar.gz") |
| 49 | + set(ZLIB_URL_HASH ${ZLIB_GZ_HASH}) | ||
| 50 | + message(STATUS "[ThirdParty][zlib] ${REQ_URL} not found, need download.") | ||
| 51 | +endif() | ||
| 52 | +if(EXISTS "${REQ_URL}") | ||
| 53 | + message(STATUS "[ThirdParty][zlib] ${REQ_URL} found.") | ||
| 48 | endif() | 54 | endif() |
| 49 | ExternalProject_Add(zlib_src | 55 | ExternalProject_Add(zlib_src |
| 50 | URL ${REQ_URL} | 56 | URL ${REQ_URL} |
| 57 | + URL_HASH ${ZLIB_URL_HASH} | ||
| 51 | TIMEOUT 300 | 58 | TIMEOUT 300 |
| 52 | - PATCH_COMMAND patch -p1 < ${CMAKE_CURRENT_LIST_DIR}/patch/zlib_add_minizip_static_lib.patch | 59 | + PATCH_COMMAND patch --forward --batch --quiet -r - -p1 < ${CMAKE_CURRENT_LIST_DIR}/patch/zlib_add_minizip_static_lib.patch |
| 53 | CONFIGURE_COMMAND "" | 60 | CONFIGURE_COMMAND "" |
| 54 | BUILD_COMMAND "" | 61 | BUILD_COMMAND "" |
| 55 | INSTALL_COMMAND "" | 62 | INSTALL_COMMAND "" |
| @@ -59,7 +66,7 @@ ExternalProject_Get_Property(zlib_src SOURCE_DIR) | |||
| 59 | set(ZLIB_SRC_DIR ${SOURCE_DIR}) | 66 | set(ZLIB_SRC_DIR ${SOURCE_DIR}) |
| 60 | 67 | ||
| 61 | if(EXISTS ${ZLIB_LIBRARY} AND EXISTS ${MINIZIP_LIBRARY}) | 68 | if(EXISTS ${ZLIB_LIBRARY} AND EXISTS ${MINIZIP_LIBRARY}) |
| 62 | - message(STATUS "zlib lib found in ${ZLIB_LIBRARY}.") | 69 | + message(STATUS "[ThirdParty][zlib] lib found in ${ZLIB_LIBRARY}.") |
| 63 | else() | 70 | else() |
| 64 | set(ZLIB_C_FLAGS "-fPIC -fexceptions -O2") | 71 | set(ZLIB_C_FLAGS "-fPIC -fexceptions -O2") |
| 65 | set(ZLIB_TOOLCHAIN_ARGS) | 72 | set(ZLIB_TOOLCHAIN_ARGS) |