From a72104d19ea313217f01e47d2d3a0582353e5a59 Mon Sep 17 00:00:00 2001 From: wangyunxiang Date: Mon, 11 Jul 2022 13:43:34 +0000 Subject: [PATCH] =?UTF-8?q?!598=200706=20=E9=BB=84=E4=BC=A0=E8=93=9D=20Mer?= =?UTF-8?q?ge=20pull=20request=20!598=20from=20wangyunxiang/ge=5Fdev?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CMakeLists.txt | 69 +++++++++++++++++++++++++++++++++++--------- parser/CMakeLists.txt | 40 ++++++++++++------------- parser/common/CMakeLists.txt | 38 +++++++++++------------- parser/onnx/CMakeLists.txt | 40 ++++++++++++------------- 4 files changed, 108 insertions(+), 79 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 5f81f8b..6f46a1e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,13 @@ cmake_minimum_required(VERSION 3.14) project (Parser[CXX]) +set(INSTALL_BASE_DIR "") +set(INSTALL_LIBRARY_DIR lib) +set(INSTALL_RUNTIME_DIR bin) +set(INSTALL_INCLUDE_DIR include) +set(INSTALL_CONFIG_DIR cmake) +include(CMakePackageConfigHelpers) + set(PARSER_DIR ${CMAKE_CURRENT_LIST_DIR}) if (DEFINED ENV{D_PKG_SERVER}) @@ -85,6 +92,17 @@ set(PARSER_PROTO_LIST protobuf_generate(parser_protos PARSER_PROTO_SRCS PARSER_PROTO_HDRS ${PARSER_PROTO_LIST} TARGET) +add_library(parser_headers INTERFACE) +target_include_directories(parser_headers INTERFACE + $ + $ + $ + $ + $ + $ + $ +) + set(PARSER_GRAPH_LIBRARY_PROTO_SRC "${CMAKE_BINARY_DIR}/proto/parser_protos/proto/tensorflow/graph_library.pb.cc" ) @@ -211,23 +229,46 @@ target_link_options(_caffe_parser PRIVATE -Wl,-Bsymbolic ) -target_link_libraries(_caffe_parser PRIVATE - $ - -Wl,--no-as-needed - ascend_protobuf - -Wl,--as-needed -) - -############ install ############ -set(INSTALL_BASE_DIR "") -set(INSTALL_LIBRARY_DIR lib) - -install(TARGETS _caffe_parser OPTIONAL - LIBRARY DESTINATION ${INSTALL_LIBRARY_DIR} +target_link_libraries(_caffe_parser + PRIVATE + intf_pub + -Wl,--no-as-needed + ascend_protobuf + -Wl,--as-needed + PUBLIC + parser_headers ) - add_subdirectory(parser) add_subdirectory(parser/common) add_subdirectory(parser/func_to_graph) add_subdirectory(parser/onnx) + +install(TARGETS _caffe_parser parser_common fmk_onnx_parser fmk_parser parser_headers + EXPORT parser-targets + LIBRARY DESTINATION ${INSTALL_LIBRARY_DIR} OPTIONAL COMPONENT opensdk + ARCHIVE DESTINATION ${INSTALL_LIBRARY_DIR} OPTIONAL COMPONENT opensdk + RUNTIME DESTINATION ${INSTALL_RUNTIME_DIR} OPTIONAL COMPONENT opensdk +) +install(FILES ${PARSER_DIR}/inc/external/parser/onnx_parser.h + ${PARSER_DIR}/inc/external/parser/caffe_parser.h + ${PARSER_DIR}/inc/external/parser/tensorflow_parser.h + DESTINATION ${INSTALL_INCLUDE_DIR}/parser/external/parser COMPONENT opensdk EXCLUDE_FROM_ALL +) + +if (PACKAGE STREQUAL "opensdk") + install(EXPORT parser-targets DESTINATION ${INSTALL_CONFIG_DIR} + FILE parser-targets.cmake COMPONENT opensdk EXCLUDE_FROM_ALL + ) + set(PKG_NAME parser) + configure_package_config_file(${TOP_DIR}/cmake/config/pkg_config_template.cmake.in + ${CMAKE_CURRENT_BINARY_DIR}/parser-config.cmake + INSTALL_DESTINATION ${INSTALL_CONFIG_DIR} + PATH_VARS INSTALL_BASE_DIR INSTALL_INCLUDE_DIR INSTALL_LIBRARY_DIR INSTALL_RUNTIME_DIR INSTALL_CONFIG_DIR + INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX} + ) + unset(PKG_NAME) + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/parser-config.cmake + DESTINATION ${INSTALL_CONFIG_DIR} COMPONENT opensdk EXCLUDE_FROM_ALL + ) +endif() diff --git a/parser/CMakeLists.txt b/parser/CMakeLists.txt index 6001b40..17646a1 100644 --- a/parser/CMakeLists.txt +++ b/parser/CMakeLists.txt @@ -96,21 +96,24 @@ target_link_options(fmk_parser PRIVATE ) target_link_libraries(fmk_parser - $ - static_mmpa - -Wl,--no-as-needed - ascend_protobuf - error_manager - parser_common - graph - register - _caffe_parser - c_sec - slog - -Wl,--as-needed - json - -lrt - -ldl + PRIVATE + intf_pub + static_mmpa + -Wl,--no-as-needed + ascend_protobuf + error_manager + parser_common + graph + register + _caffe_parser + c_sec + slog + -Wl,--as-needed + json + -lrt + -ldl + PUBLIC + parser_headers ) ################################################################## @@ -181,13 +184,6 @@ set_target_properties(fmk_parser_stub PROPERTIES ) ############ install ############ -set(INSTALL_BASE_DIR "") -set(INSTALL_LIBRARY_DIR lib) - -install(TARGETS fmk_parser OPTIONAL - LIBRARY DESTINATION ${INSTALL_LIBRARY_DIR} -) - install(TARGETS fmk_parser_stub OPTIONAL LIBRARY DESTINATION ${INSTALL_LIBRARY_DIR}/stub ) diff --git a/parser/common/CMakeLists.txt b/parser/common/CMakeLists.txt index 90d08fd..e9c1884 100644 --- a/parser/common/CMakeLists.txt +++ b/parser/common/CMakeLists.txt @@ -85,26 +85,22 @@ target_link_options(parser_common PRIVATE -Wl,-Bsymbolic ) -target_link_libraries(parser_common PRIVATE - $ - static_mmpa - -Wl,--no-as-needed - graph - ascend_protobuf - register - c_sec - slog - error_manager - -Wl,--as-needed - json - -lrt - -ldl +target_link_libraries(parser_common + PRIVATE + intf_pub + static_mmpa + -Wl,--no-as-needed + graph + ascend_protobuf + register + c_sec + slog + error_manager + -Wl,--as-needed + json + -lrt + -ldl + PUBLIC + parser_headers ) -############ install ############ -set(INSTALL_BASE_DIR "") -set(INSTALL_LIBRARY_DIR lib) - -install(TARGETS parser_common OPTIONAL - LIBRARY DESTINATION ${INSTALL_LIBRARY_DIR} -) diff --git a/parser/onnx/CMakeLists.txt b/parser/onnx/CMakeLists.txt index b044f9c..e7b4d52 100644 --- a/parser/onnx/CMakeLists.txt +++ b/parser/onnx/CMakeLists.txt @@ -70,21 +70,24 @@ target_link_options(fmk_onnx_parser PRIVATE -Wl,-Bsymbolic ) -target_link_libraries(fmk_onnx_parser PRIVATE - $ - static_mmpa - -Wl,--no-as-needed - ascend_protobuf - register - c_sec - parser_common - graph - slog - -Wl,--as-needed - json - -lrt - -ldl - error_manager +target_link_libraries(fmk_onnx_parser + PRIVATE + intf_pub + static_mmpa + -Wl,--no-as-needed + ascend_protobuf + register + c_sec + parser_common + graph + slog + -Wl,--as-needed + json + -lrt + -ldl + error_manager + PUBLIC + parser_headers ) ################################################################## @@ -140,13 +143,6 @@ set_target_properties(fmk_onnx_parser_stub PROPERTIES ) ############ install ############ -set(INSTALL_BASE_DIR "") -set(INSTALL_LIBRARY_DIR lib) - -install(TARGETS fmk_onnx_parser OPTIONAL - LIBRARY DESTINATION ${INSTALL_LIBRARY_DIR} -) - install(TARGETS fmk_onnx_parser_stub OPTIONAL LIBRARY DESTINATION ${INSTALL_LIBRARY_DIR}/stub )