CMakeLists.txt: Add option to disable protoc-gen-c

This commit is contained in:
Ilya Lipnitskiy 2020-05-09 15:08:25 -07:00
parent 3d3b5fe220
commit 12973e7f3f

View File

@ -11,6 +11,7 @@ PROJECT(protobuf-c)
#options #options
option(MSVC_STATIC_BUILD "MSVC_STATIC_BUILD" OFF) option(MSVC_STATIC_BUILD "MSVC_STATIC_BUILD" OFF)
option(BUILD_PROTO3 "BUILD_PROTO3" ON) option(BUILD_PROTO3 "BUILD_PROTO3" ON)
option(BUILD_PROTOC "Build protoc-gen-c" ON)
INCLUDE(TestBigEndian) INCLUDE(TestBigEndian)
TEST_BIG_ENDIAN(WORDS_BIGENDIAN) TEST_BIG_ENDIAN(WORDS_BIGENDIAN)
@ -41,6 +42,8 @@ ADD_LIBRARY(protobuf-c ${PC_SOURCES})
INCLUDE_DIRECTORIES(${MAIN_DIR}) INCLUDE_DIRECTORIES(${MAIN_DIR})
INCLUDE_DIRECTORIES(${MAIN_DIR}/protobuf-c) INCLUDE_DIRECTORIES(${MAIN_DIR}/protobuf-c)
IF(BUILD_PROTOC)
INCLUDE_DIRECTORIES(${CMAKE_BINARY_DIR}) # for generated files INCLUDE_DIRECTORIES(${CMAKE_BINARY_DIR}) # for generated files
FIND_PACKAGE(Protobuf REQUIRED) FIND_PACKAGE(Protobuf REQUIRED)
@ -49,6 +52,7 @@ INCLUDE_DIRECTORIES(${PROTOBUF_INCLUDE_DIR})
if (BUILD_PROTO3) if (BUILD_PROTO3)
ADD_DEFINITIONS(-DHAVE_PROTO3) ADD_DEFINITIONS(-DHAVE_PROTO3)
endif() endif()
ENDIF()
if (MSVC AND MSVC_STATIC_BUILD) if (MSVC AND MSVC_STATIC_BUILD)
# In case we are building static libraries, link also the runtime library statically # In case we are building static libraries, link also the runtime library statically
@ -67,6 +71,7 @@ if (MSVC AND MSVC_STATIC_BUILD)
endforeach(flag_var) endforeach(flag_var)
endif (MSVC AND MSVC_STATIC_BUILD) endif (MSVC AND MSVC_STATIC_BUILD)
IF(BUILD_PROTOC)
SET(CMAKE_CXX_STANDARD 11) SET(CMAKE_CXX_STANDARD 11)
SET(CMAKE_CXX_STANDARD_REQUIRED ON) SET(CMAKE_CXX_STANDARD_REQUIRED ON)
SET(CMAKE_CXX_EXTENSIONS OFF) SET(CMAKE_CXX_EXTENSIONS OFF)
@ -136,7 +141,7 @@ ADD_EXECUTABLE(test-generated-code3 ${TEST_DIR}/generated-code/test-generated-co
TARGET_COMPILE_DEFINITIONS(test-generated-code3 PUBLIC -DPROTO3) TARGET_COMPILE_DEFINITIONS(test-generated-code3 PUBLIC -DPROTO3)
TARGET_LINK_LIBRARIES(test-generated-code3 protobuf-c) TARGET_LINK_LIBRARIES(test-generated-code3 protobuf-c)
ENDIF() ENDIF() # CMAKE_BUILD_TYPE
# https://github.com/protocolbuffers/protobuf/issues/5107 # https://github.com/protocolbuffers/protobuf/issues/5107
IF(CMAKE_HOST_UNIX) IF(CMAKE_HOST_UNIX)
@ -147,7 +152,10 @@ IF(CMAKE_HOST_UNIX)
ENDIF() ENDIF()
ENDIF() ENDIF()
INSTALL(TARGETS protoc-gen-c protobuf-c RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib) INSTALL(TARGETS protoc-gen-c RUNTIME DESTINATION bin)
ENDIF() # BUILD_PROTOC
INSTALL(TARGETS protobuf-c LIBRARY DESTINATION lib ARCHIVE DESTINATION lib)
INSTALL(FILES ${MAIN_DIR}/protobuf-c/protobuf-c.h DESTINATION include/protobuf-c) INSTALL(FILES ${MAIN_DIR}/protobuf-c/protobuf-c.h DESTINATION include/protobuf-c)
INSTALL(FILES ${MAIN_DIR}/protobuf-c/protobuf-c.h DESTINATION include) INSTALL(FILES ${MAIN_DIR}/protobuf-c/protobuf-c.h DESTINATION include)