You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

protobuf_static.cmake 2.5 kB

4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. include(ExternalProject)
  2. include(GNUInstallDirs)
  3. #set(CMAKE_INSTALL_PREFIX ${GE_CODE_DIR}/output)
  4. if ((${CMAKE_INSTALL_PREFIX} STREQUAL /usr/local) OR
  5. (${CMAKE_INSTALL_PREFIX} STREQUAL "C:/Program Files (x86)/ascend"))
  6. set(CMAKE_INSTALL_PREFIX ${GE_CODE_DIR}/output CACHE STRING "path for install()" FORCE)
  7. message(STATUS "No install prefix selected, default to ${CMAKE_INSTALL_PREFIX}.")
  8. endif()
  9. if (PARSER_PB_PKG)
  10. set(REQ_URL "${PARSER_PB_PKG}/libs/protobuf/v3.13.0.tar.gz")
  11. else()
  12. if (ENABLE_GITEE)
  13. set(REQ_URL "https://gitee.com/mirrors/protobuf_source/repository/archive/v3.13.0.tar.gz")
  14. set(MD5 "f4489cb88922ad9c58cbe3308d59cee5")
  15. else()
  16. set(REQ_URL "https://github.com/protocolbuffers/protobuf/archive/v3.13.0.tar.gz")
  17. set(MD5 "1a6274bc4a65b55a6fa70e264d796490")
  18. endif ()
  19. endif()
  20. set(protobuf_CXXFLAGS "-Wno-maybe-uninitialized -Wno-unused-parameter -fPIC -fstack-protector-all -D_FORTIFY_SOURCE=2 -D_GLIBCXX_USE_CXX11_ABI=0 -O2 -Dgoogle=ascend_private")
  21. set(protobuf_LDFLAGS "-Wl,-z,relro,-z,now,-z,noexecstack")
  22. set(PROTOBUF_STATIC_PKG_DIR ${CMAKE_INSTALL_PREFIX}/protobuf_static)
  23. ExternalProject_Add(protobuf_static_build
  24. URL ${REQ_URL}
  25. CONFIGURE_COMMAND ${CMAKE_COMMAND}
  26. -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
  27. -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
  28. -DCMAKE_INSTALL_LIBDIR=${CMAKE_INSTALL_LIBDIR}
  29. -DCMAKE_LINKER=${CMAKE_LINKER}
  30. -DCMAKE_AR=${CMAKE_AR}
  31. -DCMAKE_RANLIB=${CMAKE_RANLIB}
  32. -Dprotobuf_WITH_ZLIB=OFF
  33. -Dprotobuf_BUILD_TESTS=OFF -DCMAKE_CXX_FLAGS=${protobuf_CXXFLAGS} -DCMAKE_CXX_LDFLAGS=${protobuf_LDFLAGS} -DCMAKE_INSTALL_PREFIX=${PROTOBUF_STATIC_PKG_DIR} <SOURCE_DIR>/cmake
  34. BUILD_COMMAND $(MAKE)
  35. INSTALL_COMMAND $(MAKE) install
  36. EXCLUDE_FROM_ALL TRUE
  37. )
  38. include(GNUInstallDirs)
  39. add_library(ascend_protobuf_static_lib STATIC IMPORTED)
  40. set_target_properties(ascend_protobuf_static_lib PROPERTIES
  41. IMPORTED_LOCATION ${PROTOBUF_STATIC_PKG_DIR}/${CMAKE_INSTALL_LIBDIR}/libascend_protobuf.a
  42. )
  43. add_library(ascend_protobuf_static INTERFACE)
  44. target_include_directories(ascend_protobuf_static INTERFACE ${PROTOBUF_STATIC_PKG_DIR}/include)
  45. target_link_libraries(ascend_protobuf_static INTERFACE ascend_protobuf_static_lib)
  46. add_dependencies(ascend_protobuf_static protobuf_static_build)