[cmake] Avoid rel+asserts warnings when passing -UNDEBUG
authorReid Kleckner <reid@kleckner.net>
Sun, 7 Apr 2013 01:45:01 +0000 (01:45 +0000)
committerReid Kleckner <reid@kleckner.net>
Sun, 7 Apr 2013 01:45:01 +0000 (01:45 +0000)
MSVC 2012 gives warning D9025, "overriding /D NDEBUG with -UNDEBUG".
Removing the original definition of NDEBUG silences this.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178967 91177308-0d34-0410-b5e6-96231b3b80d8

cmake/modules/HandleLLVMOptions.cmake

index 4e59a3e3d9069a546703bd4fc8c7fbff2b0f1a02..516f2dd9ebd27bbfdd0b7960b2d923b42ea1adba 100644 (file)
@@ -21,6 +21,9 @@ if( LLVM_ENABLE_ASSERTIONS )
   # explicitly undefine it:
   if( uppercase_CMAKE_BUILD_TYPE STREQUAL "RELEASE" )
     add_definitions( -UNDEBUG )
+    # Also remove /D NDEBUG to avoid MSVC warnings about conflicting defines.
+    string (REGEX REPLACE "(^| )[/-]D *NDEBUG($| )" " "
+      CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}")
   endif()
 else()
   if( NOT uppercase_CMAKE_BUILD_TYPE STREQUAL "RELEASE" )