Revision: 40591
          http://brlcad.svn.sourceforge.net/brlcad/?rev=40591&view=rev
Author:   starseeker
Date:     2010-09-16 21:16:38 +0000 (Thu, 16 Sep 2010)

Log Message:
-----------
More compiler flag stuff, most of it not working yet.

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

Modified: brlcad/branches/cmake/CMakeLists.txt
===================================================================
--- brlcad/branches/cmake/CMakeLists.txt        2010-09-16 20:16:26 UTC (rev 
40590)
+++ brlcad/branches/cmake/CMakeLists.txt        2010-09-16 21:16:38 UTC (rev 
40591)
@@ -491,8 +491,6 @@
 MARK_AS_ADVANCED(BRLCAD-ENABLE_STRICT)
 if (BRLCAD-ENABLE_STRICT)
        FILE(APPEND  ${CONFIG_H_FILE} "#define STRICT_FLAGS 1\n")
-       # TODO move this to CompilerFlags.cmake
-       SET(STRICT_FLAGS "-pedantic -W -Wall -Werror -Wno-long-long" CACHE 
STRING "strict compiler flags")
 endif (BRLCAD-ENABLE_STRICT)
 
 # Build with O3 compiler optimization

Modified: brlcad/branches/cmake/misc/CMake/CompilerFlags.cmake
===================================================================
--- brlcad/branches/cmake/misc/CMake/CompilerFlags.cmake        2010-09-16 
20:16:26 UTC (rev 40590)
+++ brlcad/branches/cmake/misc/CMake/CompilerFlags.cmake        2010-09-16 
21:16:38 UTC (rev 40591)
@@ -6,18 +6,28 @@
        IF(${ARGC} LESS 2)
                CHECK_C_COMPILER_FLAG(-${flag} ${UPPER_FLAG}_FLAG)
        ENDIF(${ARGC} LESS 2)
-       IF(NOT ${ARGV1})
+       IF(NOT ARGV1)
                CHECK_C_COMPILER_FLAG(-${flag} ${UPPER_FLAG}_FLAG)
-       ENDIF(NOT ${ARGV1})
+       ENDIF(NOT ARGV1)
        IF(${UPPER_FLAG}_FLAG)
                SET(${UPPER_FLAG}_FLAG "-${flag}")
-               IF(${ARGC} GREATER 1)
+               IF(${ARGC} GREATER 1 AND NOT ${ARGV1})
                        MESSAGE("Found - setting ${ARGV1} to -${flag}")
                        SET(${ARGV1} "-${flag}" CACHE STRING "${ARGV1}" FORCE)
-               ENDIF(${ARGC} GREATER 1)
+               ENDIF(${ARGC} GREATER 1 AND NOT ${ARGV1})
        ENDIF(${UPPER_FLAG}_FLAG)
 ENDMACRO()
 
+MACRO(CHECK_C_FLAG_GATHER flag FLAGS)
+       STRING(TOUPPER ${flag} UPPER_FLAG)
+       STRING(REGEX REPLACE " " "_" UPPER_FLAG ${UPPER_FLAG})
+   CHECK_C_COMPILER_FLAG(-${flag} ${UPPER_FLAG}_FLAG)
+       IF(${UPPER_FLAG}_FLAG)
+               SET(${FLAGS} "${${FLAGS}} -${flag}")
+       ENDIF(${UPPER_FLAG}_FLAG)
+ENDMACRO()
+
+
 # try to use -pipe to speed up the compiles
 CHECK_C_FLAG(pipe)
 
@@ -72,3 +82,40 @@
                SET(BRLCAD-ENABLE_PROFILING OFF)
        ENDIF(NOT PROFILE_FLAG)
 ENDIF(BRLCAD-ENABLE_PROFILING)
+
+CHECK_C_FLAG(ggdb3 DEBUG_FLAG)
+CHECK_C_FLAG(g DEBUG_FLAG)
+CHECK_C_FLAG(debug DEBUG_FLAG)
+SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} ${DEBUG_FLAG}")
+SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} ${DEBUG_FLAG}")
+
+IF(BRLCAD-ENABLE_OPTIMIZED_BUILD)
+       CHECK_C_FLAG(O3)
+       CHECK_C_FLAG(ffast-math)
+       CHECK_C_FLAG(fstrength-reduce)
+       CHECK_C_FLAG(fexpensive-optimizations)
+       CHECK_C_FLAG(finline-functions)
+       #Think about how these are to be set
+ENDIF(BRLCAD-ENABLE_OPTIMIZED_BUILD)
+
+IF(BRLCAD-ENABLE_COMPILER_WARNINGS)
+       # also of interest:
+       # -Wunreachable-code -Wmissing-declarations -Wmissing-prototypes 
-Wstrict-prototypes -ansi
+       # -Wformat=2 (after bu_fopen_uniq() is obsolete)
+       CHECK_C_FLAG(w)
+       CHECK_C_FLAG(W)
+       CHECK_C_FLAG(Wall)
+       CHECK_C_FLAG(Wundef)
+       CHECK_C_FLAG(Wfloat-equal)
+       CHECK_C_FLAG(Wshadow)
+       CHECK_C_FLAG(Winline)
+ENDIF(BRLCAD-ENABLE_COMPILER_WARNINGS)
+
+IF(BRLCAD-ENABLE_STRICT)
+       CHECK_C_FLAG_GATHER(pedantic STRICT_FLAGS)
+       CHECK_C_FLAG_GATHER(W STRICT_FLAGS)
+       CHECK_C_FLAG_GATHER(Wall STRICT_FLAGS)
+       CHECK_C_FLAG_GATHER(Werror STRICT_FLAGS) 
+       CHECK_C_FLAG_GATHER(Wno-long-long STRICT_FLAGS) 
+       MESSAGE("STRICT FLAGS: ${STRICT_FLAGS}")
+ENDIF(BRLCAD-ENABLE_STRICT)


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

------------------------------------------------------------------------------
Start uncovering the many advantages of virtual appliances
and start using them to simplify application deployment and
accelerate your shift to cloud computing.
http://p.sf.net/sfu/novell-sfdev2dev
_______________________________________________
BRL-CAD Source Commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/brlcad-commits

Reply via email to