Add USE_RTTI and default behavior to CMakeLists

Summary:
Proposed fix for #3701
Closes https://github.com/facebook/rocksdb/pull/3801

Differential Revision: D7868264

Pulled By: gfosco

fbshipit-source-id: 013963ed3d172c8dc2abd1dd5982580082ca5d2d
main
Fosco Marotto 7 years ago committed by Facebook Github Bot
parent 6fc1bccef5
commit 4d40b10e0f
  1. 16
      CMakeLists.txt

@ -16,7 +16,7 @@
# See thirdparty.inc for more information. # See thirdparty.inc for more information.
# sample command: cmake -G "Visual Studio 15 Win64" -DWITH_GFLAGS=1 -DWITH_SNAPPY=1 -DWITH_JEMALLOC=1 -DWITH_JNI=1 .. # sample command: cmake -G "Visual Studio 15 Win64" -DWITH_GFLAGS=1 -DWITH_SNAPPY=1 -DWITH_JEMALLOC=1 -DWITH_JNI=1 ..
# 4. Then build the project in debug mode (you may want to add /m[:<N>] flag to run msbuild in <N> parallel threads # 4. Then build the project in debug mode (you may want to add /m[:<N>] flag to run msbuild in <N> parallel threads
# or simply /m ot use all avail cores) # or simply /m to use all avail cores)
# msbuild rocksdb.sln # msbuild rocksdb.sln
# #
# rocksdb.sln build features exclusions of test only code in Release. If you build ALL_BUILD then everything # rocksdb.sln build features exclusions of test only code in Release. If you build ALL_BUILD then everything
@ -309,6 +309,20 @@ else()
set(OPTIMIZE_DEBUG ${OPTIMIZE_DEBUG_DEFAULT}) set(OPTIMIZE_DEBUG ${OPTIMIZE_DEBUG_DEFAULT})
endif() endif()
if(DEFINED USE_RTTI AND USE_RTTI EQUAL 1)
message(STATUS "Enabling RTTI")
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DROCKSDB_USE_RTTI")
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -DROCKSDB_USE_RTTI")
elseif(DEFINED USE_RTTI AND USE_RTTI EQUAL 0)
message(STATUS "Disabling RTTI")
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -fno-rtti")
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -fno-rtti")
else()
message(STATUS "Enabling RTTI in Debug builds only (default)")
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DROCKSDB_USE_RTTI")
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -fno-rtti")
endif()
if(MSVC) if(MSVC)
if((${OPTIMIZE_DEBUG} EQUAL 1)) if((${OPTIMIZE_DEBUG} EQUAL 1))
message(STATUS "Debug optimization is enabled") message(STATUS "Debug optimization is enabled")

Loading…
Cancel
Save