From a4e7b97bd609acf2b8b0eb7c936d37f2eda367ff 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 52661f522d9..83bbb401648 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)