43
csrc/cmake/third_party/protobuf.cmake
vendored
Normal file
43
csrc/cmake/third_party/protobuf.cmake
vendored
Normal file
@@ -0,0 +1,43 @@
|
||||
# -----------------------------------------------------------------------------------------------------------
|
||||
# Copyright (c) 2025 Huawei Technologies Co., Ltd.
|
||||
# This program is free software, you can redistribute it and/or modify it under the terms and conditions of
|
||||
# CANN Open Software License Agreement Version 2.0 (the "License").
|
||||
# Please refer to the License for details. You may not use this file except in compliance with the License.
|
||||
# THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED,
|
||||
# INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See LICENSE in the root of the software repository for the full text of the License.
|
||||
# -----------------------------------------------------------------------------------------------------------
|
||||
set(_protobuf_url "")
|
||||
if(CANN_PKG_SERVER)
|
||||
set(_protobuf_url "${CANN_PKG_SERVER}/libs/protobuf/v25.1.tar.gz")
|
||||
endif()
|
||||
include(ExternalProject)
|
||||
ExternalProject_Add(external_protobuf
|
||||
URL ${_protobuf_url}
|
||||
https://gitcode.com/cann-src-third-party/protobuf/releases/download/v25.1/protobuf-25.1.tar.gz
|
||||
DOWNLOAD_DIR download/protobuf
|
||||
PREFIX third_party
|
||||
SOURCE_SUBDIR cmake
|
||||
CMAKE_CACHE_ARGS
|
||||
-DProtobuf_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
|
||||
-Dprotobuf_BUILD_TESTS:BOOL=OFF
|
||||
-Dprotobuf_BUILD_EXAMPLES:BOOL=OFF
|
||||
-Dprotobuf_BUILD_SHARED_LIBS:BOOL=OFF
|
||||
-DProtobuf_CXX_COMPILER:STRING=${CMAKE_CXX_COMPILER}
|
||||
INSTALL_COMMAND ""
|
||||
)
|
||||
|
||||
ExternalProject_Get_Property(external_protobuf SOURCE_DIR)
|
||||
ExternalProject_Get_Property(external_protobuf BINARY_DIR)
|
||||
|
||||
set(Protobuf_INCLUDE ${SOURCE_DIR}/src)
|
||||
set(Protobuf_PATH ${BINARY_DIR})
|
||||
set(Protobuf_PROTOC_EXECUTABLE ${Protobuf_PATH}/protoc)
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT ${Protobuf_PROTOC_EXECUTABLE}
|
||||
DEPENDS external_protobuf
|
||||
)
|
||||
add_custom_target(
|
||||
protoc ALL DEPENDS ${Protobuf_PROTOC_EXECUTABLE}
|
||||
)
|
||||
Reference in New Issue
Block a user