protoc.cmake:
set(protoc_files
${protobuf_source_dir}/src/google/protobuf/compiler/main.cc
)
add_executable(protoc ${protoc_files})
target_link_libraries(protoc libprotobuf libprotoc)
add_executable(protobuf::protoc ALIAS protoc)
set(PROTOC_NAME "protoc")
set_target_properties(protoc PROPERTIES
VERSION ${protobuf_VERSION}
OUTPUT_NAME ${PROTOC_NAME})
if(WIN32)
set(PROTOC_SUFFIX ".exe")
set_target_properties(protoc PROPERTIES
SUFFIX ${PROTOC_SUFFIX})
else()
set(PROTOC_SUFFIX)
endif()
set(PROTOBUF_PROTOC_EXECUTABLE "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${PROTOC_NAME}${PROTOC_SUFFIX}" PARENT_SCOPE)
我已经将google协议缓冲区编译器的源包含到我的项目中,并且我使用以前的cmake文件来生成运行时二进制文件,但是我得到了两个可执行文件:“ protoc”和“ protoc-3.6.1”,而不是一个文件。
我正在Ubuntu 18.04上使用带有捆绑的CMake 3.10.3的CLion IDE 2018.1.5。
在Windows上,我没有这样的问题。