CMake: Implements and documents option LLVM_ENABLE_ASSERTS.
[oota-llvm.git] / CMakeLists.txt
index 6af569b25a0073adeb538bdec23268ab44a2a179..ba63484d8c0a2561c01471dc47d082cbae7edcc3 100644 (file)
@@ -17,6 +17,8 @@ This process created the file `CMakeCache.txt' and the directory `CMakeFiles'.
 Please delete them.")
 endif()
 
+string(TOUPPER "${CMAKE_BUILD_TYPE}" uppercase_CMAKE_BUILD_TYPE)
+
 include(FindPerl)
 
 set(LLVM_MAIN_SRC_DIR ${CMAKE_CURRENT_SOURCE_DIR})
@@ -55,6 +57,16 @@ endif( MSVC )
 
 option(LLVM_ENABLE_THREADS "Use threads if available." ON)
 
+if( uppercase_CMAKE_BUILD_TYPE STREQUAL "RELEASE" )
+  option(LLVM_ENABLE_ASSERTS "Enable asserts" OFF)
+else()
+  option(LLVM_ENABLE_ASSERTS "Enable asserts" ON)
+endif()
+
+if( LLVM_ENABLE_ASSERTS )
+  add_definitions( -D_DEBUG -UNDEBUG )
+endif()
+
 if( LLVM_TARGETS_TO_BUILD STREQUAL "all" )
   set( LLVM_TARGETS_TO_BUILD ${LLVM_ALL_TARGETS} )
 endif()