Revision: 45965
          http://brlcad.svn.sourceforge.net/brlcad/?rev=45965&view=rev
Author:   starseeker
Date:     2011-08-13 06:14:29 +0000 (Sat, 13 Aug 2011)

Log Message:
-----------
Just like the optimization flag, except with the opposite defaults, enable 
smart autosetting of the debug flags.

Modified Paths:
--------------
    brlcad/trunk/CMakeLists.txt
    brlcad/trunk/misc/CMake/CompilerFlags.cmake

Modified: brlcad/trunk/CMakeLists.txt
===================================================================
--- brlcad/trunk/CMakeLists.txt 2011-08-13 04:24:33 UTC (rev 45964)
+++ brlcad/trunk/CMakeLists.txt 2011-08-13 06:14:29 UTC (rev 45965)
@@ -726,11 +726,29 @@
 ENDIF(NOT BRLCAD-ENABLE_RUNTIME_DEBUG)
 
 # Enable debug flags during compilation
-IF ("${CMAKE_BUILD_TYPE}" MATCHES "Release")
-       OPTION(BRLCAD-ENABLE_DEBUG_FLAGS "Use compiler warning flags" OFF)
-ELSE("${CMAKE_BUILD_TYPE}" MATCHES "Release")
-       OPTION(BRLCAD-ENABLE_DEBUG_FLAGS "Use compiler warning flags" ON)
-ENDIF ("${CMAKE_BUILD_TYPE}" MATCHES "Release")
+STRING(LENGTH "${BRLCAD_FLAGS_DEBUG}" BRLCAD_FLAGS_DEBUG_SET)
+IF(NOT BRLCAD_FLAGS_DEBUG_SET)
+       SET(BRLCAD_FLAGS_DEBUG "Auto" CACHE STRING "Use debug compiler 
settings" FORCE)
+ENDIF(NOT BRLCAD_FLAGS_DEBUG_SET)
+set_property(CACHE BRLCAD_FLAGS_DEBUG PROPERTY STRINGS Auto "ON" "OFF")
+# If the "parent" setting isn't Auto, do what it says
+IF(NOT ${BRLCAD_FLAGS_DEBUG} STREQUAL "Auto")
+       SET(BRLCAD_DEBUG_BUILD ${BRLCAD_FLAGS_DEBUG})
+ENDIF(NOT ${BRLCAD_FLAGS_DEBUG} STREQUAL "Auto")
+# If we we don't understand the build type and have an Auto setting for the
+# optimization flags, leave them off
+IF(NOT "${CMAKE_BUILD_TYPE}" MATCHES "Release" AND NOT "${CMAKE_BUILD_TYPE}" 
MATCHES "Debug")
+       IF(NOT ${BRLCAD_FLAGS_DEBUG} STREQUAL "Auto")
+               SET(BRLCAD_DEBUG_BUILD OFF)
+       ENDIF(NOT ${BRLCAD_FLAGS_DEBUG} STREQUAL "Auto")
+ENDIF(NOT "${CMAKE_BUILD_TYPE}" MATCHES "Release" AND NOT 
"${CMAKE_BUILD_TYPE}" MATCHES "Debug")
+# If we DO understand the build type and have Auto, be smart
+IF("${CMAKE_BUILD_TYPE}" MATCHES "Release" AND ${BRLCAD_FLAGS_DEBUG} STREQUAL 
"Auto")
+       SET(BRLCAD_DEBUG_BUILD OFF)
+ENDIF("${CMAKE_BUILD_TYPE}" MATCHES "Release" AND ${BRLCAD_FLAGS_DEBUG} 
STREQUAL "Auto")
+IF("${CMAKE_BUILD_TYPE}" MATCHES "Debug" AND ${BRLCAD_FLAGS_DEBUG} STREQUAL 
"Auto")
+       SET(BRLCAD_DEBUG_BUILD ON)
+ENDIF("${CMAKE_BUILD_TYPE}" MATCHES "Debug" AND ${BRLCAD_FLAGS_DEBUG} STREQUAL 
"Auto")
 
 
 # Build with compiler warning flags
@@ -747,7 +765,7 @@
        FILE(APPEND  ${CONFIG_H_FILE} "#define STRICT_FLAGS 1\n")
 ENDIF(BRLCAD-ENABLE_STRICT)
 
-# Build with O3 compiler optimization.  This should be on for release builds
+# Build with compiler optimization flags.  This should normally be on for 
release builds
 STRING(LENGTH "${BRLCAD_FLAGS_OPTIMIZATION}" BRLCAD_FLAGS_OPTIMIZATION_SET)
 IF(NOT BRLCAD_FLAGS_OPTIMIZATION_SET)
        SET(BRLCAD_FLAGS_OPTIMIZATION "Auto" CACHE STRING "Use optimized 
compiler settings" FORCE)
@@ -1350,7 +1368,7 @@
        endif (BRLCAD-ENABLE_64BIT)
        SET(BRLCAD_ARCH_BITSETTING_LABEL "Build 64-bit release ")
        SET(BRLCAD_OPTIMIZED_BUILD_LABEL "Build optimized release ")
-       SET(BRLCAD-ENABLE_DEBUG_FLAGS_LABEL "Build debuggable release")
+       SET(BRLCAD_DEBUG_BUILD_LABEL "Build debuggable release")
        SET(BRLCAD-ENABLE_PROFILING_LABEL "Build profile release ")
        SET(BRLCAD-ENABLE_SMP_LABEL "Build SMP-capable release ")
        SET(BUILD_STATIC_LIBS_LABEL "Build static libraries ")
@@ -1372,7 +1390,7 @@
        SET(SETTINGLIST1 BRLCAD_BUILD_TCL BRLCAD_BUILD_TK BRLCAD_BUILD_INCRTCL 
BRLCAD_BUILD_IWIDGETS BRLCAD_BUILD_TKHTML BRLCAD_BUILD_TKPNG 
BRLCAD_BUILD_TKTABLE BRLCAD_BUILD_PNG BRLCAD_BUILD_REGEX BRLCAD_BUILD_ZLIB 
BRLCAD_BUILD_TERMLIB BRLCAD_BUILD_UTAHRLE BRLCAD_BUILD_OPENNURBS 
BRLCAD_BUILD_SCL)
        SET(SETTINGLIST2 BRLCAD-ENABLE_X11 BRLCAD-ENABLE_OPENGL 
BRLCAD-ENABLE_RTSERVER BRLCAD-ENABLE_RUNTIME_DEBUG )
        SET(SETTINGLIST3 BRLCAD_ARCH_BITSETTING BRLCAD_OPTIMIZED_BUILD
-               BRLCAD-ENABLE_DEBUG_FLAGS BRLCAD-ENABLE_PROFILING 
BRLCAD-ENABLE_SMP BUILD_STATIC_LIBS BUILD_SHARED_LIBS 
BRLCAD-ENABLE_COMPILER_WARNINGS BRLCAD-ENABLE_VERBOSE_PROGRESS 
BRLCAD-INSTALL_EXAMPLE_GEOMETRY BRLCAD-BUILD_DOCBUILD_MSG)
+               BRLCAD_DEBUG_BUILD BRLCAD-ENABLE_PROFILING BRLCAD-ENABLE_SMP 
BUILD_STATIC_LIBS BUILD_SHARED_LIBS BRLCAD-ENABLE_COMPILER_WARNINGS 
BRLCAD-ENABLE_VERBOSE_PROGRESS BRLCAD-INSTALL_EXAMPLE_GEOMETRY 
BRLCAD-BUILD_DOCBUILD_MSG)
        SET(ARRAYLIST SETTINGLIST1 SETTINGLIST2 SETTINGLIST3)
        SET(SETTING_LABEL_LENGTH 0)
        FOREACH(setting_array ${ARRAYLIST})

Modified: brlcad/trunk/misc/CMake/CompilerFlags.cmake
===================================================================
--- brlcad/trunk/misc/CMake/CompilerFlags.cmake 2011-08-13 04:24:33 UTC (rev 
45964)
+++ brlcad/trunk/misc/CMake/CompilerFlags.cmake 2011-08-13 06:14:29 UTC (rev 
45965)
@@ -195,7 +195,7 @@
 ENDIF(BRLCAD-ENABLE_PROFILING)
 
 # Debugging flags
-IF(BRLCAD-ENABLE_DEBUG_FLAGS)
+IF(${BRLCAD_DEBUG_BUILD} STREQUAL "ON")
        IF(APPLE)
                EXEC_PROGRAM(sw_vers ARGS -productVersion OUTPUT_VARIABLE 
MACOSX_VERSION)
                IF(${MACOSX_VERSION} VERSION_LESS "10.5")
@@ -218,7 +218,7 @@
        ADD_NEW_FLAG(SHARED_LINKER DEBUG_FLAG)
        ADD_NEW_FLAG(EXE_LINKER DEBUG_FLAG)
        MARK_AS_ADVANCED(DEBUG_FLAG)
-ENDIF(BRLCAD-ENABLE_DEBUG_FLAGS)
+ENDIF(${BRLCAD_DEBUG_BUILD} STREQUAL "ON")
 
 # -fast provokes a stack corruption in the shadow computations because
 # of strict aliasing getting enabled.  we _require_


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

------------------------------------------------------------------------------
FREE DOWNLOAD - uberSVN with Social Coding for Subversion.
Subversion made easy with a complete admin console. Easy 
to use, easy to manage, easy to install, easy to extend. 
Get a Free download of the new open ALM Subversion platform now.
http://p.sf.net/sfu/wandisco-dev2dev
_______________________________________________
BRL-CAD Source Commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/brlcad-commits

Reply via email to