1set(protobuf_arm_USE_STATIC_LIBS ON) 2if(BUILD_LITE) 3 if(MSVC) 4 set(protobuf_arm_CXXFLAGS "${CMAKE_CXX_FLAGS}") 5 set(protobuf_arm_CFLAGS "${CMAKE_C_FLAGS}") 6 set(protobuf_arm_LDFLAGS "${CMAKE_SHARED_LINKER_FLAGS}") 7 set(_ms_tmp_CMAKE_STATIC_LIBRARY_PREFIX ${CMAKE_STATIC_LIBRARY_PREFIX}) 8 set(CMAKE_STATIC_LIBRARY_PREFIX "lib") 9 else() 10 set(protobuf_arm_CXXFLAGS "-fstack-protector-all -Wno-maybe-uninitialized -Wno-unused-parameter \ 11 -fPIC -fvisibility=hidden -D_FORTIFY_SOURCE=2 -O2") 12 if(NOT ENABLE_GLIBCXX) 13 set(protobuf_arm_CXXFLAGS "${protobuf_arm_CXXFLAGS} -D_GLIBCXX_USE_CXX11_ABI=0") 14 endif() 15 set(protobuf_arm_LDFLAGS "-Wl,-z,relro,-z,now,-z,noexecstack") 16 endif() 17else() 18 if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") 19 set(protobuf_arm_CXXFLAGS "-fstack-protector-all -Wno-uninitialized -Wno-unused-parameter -fPIC \ 20 -fvisibility=hidden -D_FORTIFY_SOURCE=2 -O2") 21 elseif(${CMAKE_SYSTEM_NAME} MATCHES "Windows") 22 set(protobuf_arm_CXXFLAGS "-fstack-protector-all -Wno-maybe-uninitialized -Wno-unused-parameter \ 23 -fPIC -fvisibility=hidden -D_FORTIFY_SOURCE=2 -O2") 24 else() 25 set(protobuf_arm_CXXFLAGS "-fstack-protector-all -Wno-maybe-uninitialized -Wno-unused-parameter \ 26 -fPIC -fvisibility=hidden -D_FORTIFY_SOURCE=2 -O2") 27 if(NOT ENABLE_GLIBCXX) 28 set(protobuf_arm_CXXFLAGS "${protobuf_arm_CXXFLAGS} -D_GLIBCXX_USE_CXX11_ABI=0") 29 endif() 30 endif() 31 set(protobuf_arm_LDFLAGS "-Wl,-z,relro,-z,now,-z,noexecstack") 32endif() 33 34set(_ms_tmp_CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS}) 35set(CMAKE_CXX_FLAGS ${_ms_tmp_CMAKE_CXX_FLAGS}) 36string(REPLACE " -Wall" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") 37string(REPLACE " -Werror" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") 38 39if(ENABLE_GITEE) 40 set(REQ_URL "https://gitee.com/mirrors/protobuf_source/repository/archive/v3.13.0.tar.gz") 41 set(SHA256 "ab9b39e7053a6fb06b01bf75fb6ec6a71a1ada5a5f8e2446f927336e97b9e7bb") 42else() 43 set(REQ_URL "https://github.com/protocolbuffers/protobuf/archive/v3.13.0.tar.gz") 44 set(SHA256 "9b4ee22c250fe31b16f1a24d61467e40780a3fbb9b91c3b65be2a376ed913a1a") 45endif() 46 47if(BUILD_LITE) 48 set(PROTOBUF_PATCH_ROOT ${TOP_DIR}/third_party/patch/protobuf) 49else() 50 set(PROTOBUF_PATCH_ROOT ${CMAKE_SOURCE_DIR}/third_party/patch/protobuf) 51endif() 52 53if(APPLE) 54 mindspore_add_pkg(protobuf_arm 55 VER 3.13.0 56 LIBS protobuf 57 URL ${REQ_URL} 58 SHA256 ${SHA256} 59 CMAKE_PATH cmake/ 60 CMAKE_OPTION 61 -Dprotobuf_BUILD_TESTS=OFF 62 -Dprotobuf_BUILD_SHARED_LIBS=OFF 63 -DCMAKE_BUILD_TYPE=Release 64 -Dprotobuf_WITH_ZLIB=OFF 65 -DCMAKE_OSX_SYSROOT=${CMAKE_OSX_SYSROOT} 66 -DCMAKE_OSX_DEPLOYMENT_TARGET=${CMAKE_OSX_DEPLOYMENT_TARGET} 67 PATCHES ${PROTOBUF_PATCH_ROOT}/CVE-2021-22570.patch 68 PATCHES ${PROTOBUF_PATCH_ROOT}/CVE-2022-1941.patch) 69else() 70 mindspore_add_pkg(protobuf_arm 71 VER 3.13.0 72 LIBS protobuf 73 URL ${REQ_URL} 74 SHA256 ${SHA256} 75 CMAKE_PATH cmake/ 76 CMAKE_OPTION 77 -Dprotobuf_BUILD_TESTS=OFF 78 -Dprotobuf_BUILD_SHARED_LIBS=OFF 79 -DCMAKE_BUILD_TYPE=Release 80 -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} 81 -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} 82 -Dprotobuf_WITH_ZLIB=OFF 83 PATCHES ${PROTOBUF_PATCH_ROOT}/CVE-2021-22570.patch 84 PATCHES ${PROTOBUF_PATCH_ROOT}/CVE-2022-1941.patch) 85endif() 86 87include_directories(${protobuf_arm_INC}) 88add_library(mindspore::protobuf_arm ALIAS protobuf_arm::protobuf) 89set(CMAKE_CXX_FLAGS ${_ms_tmp_CMAKE_CXX_FLAGS}) 90if(MSVC) 91 set(CMAKE_STATIC_LIBRARY_PREFIX, ${_ms_tmp_CMAKE_STATIC_LIBRARY_PREFIX}) 92endif() 93