From c3c61060a5d459bf33718a5a1d2b6ce97011bcb1 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)