From 1add7a7bd6db1b2c367f83864a50ebd119a04710 Mon Sep 17 00:00:00 2001 From: Florian Simon Date: Thu, 25 Feb 2021 15:11:40 -0500 Subject: [PATCH] Create a CMake option to control whether or not RTTI is enabled This is useful for Conan recipes that build Protobuf, in which whatever we want to enable has to be enabled in the initial command line. Without this, the people maintaining the recipe have to patch the CMake setup of Protobuf before building the binaries. Closes #5541 --- cmake/CMakeLists.txt | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index 52661f522d99..83bbb4016487 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -40,6 +40,7 @@ endif() if(WITH_PROTOC) set(protobuf_PROTOC_EXE ${WITH_PROTOC} CACHE FILEPATH "Protocol Buffer Compiler executable" FORCE) endif() +option(protobuf_DISABLE_RTTI "Remove runtime type information in the binaries" ON) option(protobuf_BUILD_TESTS "Build tests" ON) option(protobuf_BUILD_CONFORMANCE "Build conformance tests" OFF) option(protobuf_BUILD_EXAMPLES "Build examples" OFF) @@ -117,6 +118,10 @@ endif() add_definitions(-DGOOGLE_PROTOBUF_CMAKE_BUILD) +if (protobuf_DISABLE_RTTI) + add_definitions(-DGOOGLE_PROTOBUF_NO_RTTI=1) +endif() + find_package(Threads REQUIRED) if (CMAKE_USE_PTHREADS_INIT) add_definitions(-DHAVE_PTHREAD)