• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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