CMake: Implements and documents option LLVM_ENABLE_ASSERTS.
authorOscar Fuentes <ofv@wanadoo.es>
Wed, 3 Jun 2009 15:11:25 +0000 (15:11 +0000)
committerOscar Fuentes <ofv@wanadoo.es>
Wed, 3 Jun 2009 15:11:25 +0000 (15:11 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72774 91177308-0d34-0410-b5e6-96231b3b80d8

CMakeLists.txt
docs/CMake.html
tools/llvm-config/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()
index 27ec88ec94788b253f5b07fa4551e9e29d9865fc..b329ca46d62e626d4665cb0fdaf868612497e350 100644 (file)
   <dt><b>LLVM_ENABLE_THREADS</b>:BOOL</dt>
   <dd>Build with threads support, if available. Defaults to ON.</dd>
 
+  <dt><b>LLVM_ENABLE_ASSERTS</b>:BOOL</dt>
+  <dd>Enables code asserts. Defaults to ON if and only if
+    CMAKE_BUILD_TYPE is <i>Release</i>.</dd>
+
   <dt><b>LLVM_ENABLE_PIC</b>:BOOL</dt>
   <dd>Add the <i>-fPIC</i> flag to the compiler command-line, if the
     compiler supports this flag. Some systems, like Windows, does not
index 29287ab82bdcc36d11fed57dfc586aa61f6a912b..2cfd6bb22a0f0bfafa8ff397f213d2581c0de65c 100644 (file)
@@ -87,7 +87,6 @@ add_custom_command(OUTPUT ${FINAL_LIBDEPS}
   DEPENDS ${LIBDEPS}
   COMMENT "Checking for cyclic dependencies between LLVM libraries.")
 
-string(TOUPPER "${CMAKE_BUILD_TYPE}" uppercase_CMAKE_BUILD_TYPE)
 set(C_FLGS "${CMAKE_C_FLAGS_${uppercase_CMAKE_BUILD_TYPE}} ${LLVM_DEFINITIONS}")
 set(CXX_FLGS "${CMAKE_CXX_FLAGS_${uppercase_CMAKE_BUILD_TYPE}} ${LLVM_DEFINITIONS}")
 set(CPP_FLGS "${CMAKE_CPP_FLAGS_${uppercase_CMAKE_BUILD_TYPE}} ${LLVM_DEFINITIONS}")