cmake例子:使用protobuf和打包

sudo apt-get install protobuf-compiler libprotobuf-dev
cmake_minimum_required(VERSION 3.5)
project (tensorflow)
# PROTOBUF_FOUND, PROTOBUF_INCLUDE_DIRS, PROTOBUF_LIBRARIES
find_package(Protobuf REQUIRED)
PROTOBUF_GENERATE_CPP(PROTO_SRCS PROTO_HDRS AddressBook.proto)
# call protobuf compiler to compiling when `make`
add_library(addr_libarary SHARED 
    ${PROTO_SRCS}
)
target_include_directories(addr_libarary
    Public
        ${PROTO_HDRS}
)
add_executable(protobuf_example
    main.cpp
)
target_link_libraries(tensorflow
    PRIVATE
    ${PROTOBUF_LIBRARIES}
    addr_libarary
)
# Create DEB
# Tell CPack to generate a .deb package
set(CPACK_GENERATOR "DEB")
# Set a Package Maintainer.
# This is required
set(CPACK_DEBIAN_PACKAGE_MAINTAINER "Thom Troy")
# Set a Package Version
set(CPACK_PACKAGE_VERSION ${deb_example_VERSION})
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "for test")
set(CPACK_PACKAGE_DESCRIPTION "nothing for test")
# Include CPack
include(CPack)
# @file: AddressBook.proto
package addressbook; # namespace::
message Person {
  required string name = 1;
  required int32 id = 2;
  optional string email = 3;
  enum PhoneType {
    MOBILE = 0;
    HOME = 1;
    WORK = 2;
  }
  message PhoneNumber {
    required string number = 1;
    optional PhoneType type = 2 [default = HOME];
  }
  repeated PhoneNumber phone = 4;
}
message AddressBook {
  repeated Person person = 1;
}
mkdir build && cd build
cmake ..  -Ddeb_example_VERSION=0.1
make -j VERBOSE=1
make install
make package
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。