Revision: 45764
          http://brlcad.svn.sourceforge.net/brlcad/?rev=45764&view=rev
Author:   starseeker
Date:     2011-08-02 19:51:15 +0000 (Tue, 02 Aug 2011)

Log Message:
-----------
Have a go at setting compiler flags for all configurations.

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

Modified: brlcad/trunk/misc/CMake/CompilerFlags.cmake
===================================================================
--- brlcad/trunk/misc/CMake/CompilerFlags.cmake 2011-08-02 19:14:55 UTC (rev 
45763)
+++ brlcad/trunk/misc/CMake/CompilerFlags.cmake 2011-08-02 19:51:15 UTC (rev 
45764)
@@ -5,6 +5,19 @@
 # build configuration type (if any) we are using and stash
 # the variables we want to assign flags to into a common
 # variable that will be used for all routines.
+MACRO(ADD_NEW_FLAG FLAG_TYPE NEW_FLAG)
+       STRING(TOUPPER "${CMAKE_BUILD_TYPE}" BUILD_TYPE)
+       IF(BUILD_TYPE)
+               SET(CMAKE_${FLAG_TYPE}_FLAGS_${BUILD_TYPE} 
"${CMAKE_${FLAG_TYPE}_FLAGS_${BUILD_TYPE}} ${${NEW_FLAG}}")
+       ELSE(BUILD_TYPE)
+               SET(CMAKE_${FLAG_TYPE}_FLAGS "${CMAKE_${FLAG_TYPE}_FLAGS} 
${${NEW_FLAG}}")
+       ENDIF(BUILD_TYPE)
+       FOREACH(CFG_TYPE ${CMAKE_CONFIGURATION_TYPES})
+               STRING(TOUPPER "${CFG_TYPE}" CFG_TYPE)
+               SET(CMAKE_${FLAG_TYPE}_FLAGS_${CFG_TYPE} 
"${CMAKE_${FLAG_TYPE}_FLAGS_${CFG_TYPE}} ${NEW_FLAG}")
+       ENDFOREACH(CFG_TYPE ${CMAKE_CONFIGURATION_TYPES})
+ENDMACRO(ADD_NEW_FLAG)
+
 STRING(TOUPPER "${CMAKE_BUILD_TYPE}" BUILD_TYPE)
 IF(BUILD_TYPE)
        SET(C_FLAGS CMAKE_C_FLAGS_${BUILD_TYPE})
@@ -25,7 +38,8 @@
        IF(${ARGC} LESS 2)
                CHECK_C_COMPILER_FLAG(-${flag} ${UPPER_FLAG}_COMPILER_FLAG)
                IF(${UPPER_FLAG}_COMPILER_FLAG)
-                       SET(${C_FLAGS} "${${C_FLAGS}} -${flag}")
+                       SET(NEW_FLAG "-${flag}")
+                       ADD_NEW_FLAG(C NEW_FLAG)
                ENDIF(${UPPER_FLAG}_COMPILER_FLAG)
        ELSE(${ARGC} LESS 2)
                IF(NOT ${ARGV1})
@@ -48,7 +62,8 @@
        IF(${ARGC} LESS 2)
                CHECK_CXX_COMPILER_FLAG(-${flag} ${UPPER_FLAG}_COMPILER_FLAG)
                IF(${UPPER_FLAG}_COMPILER_FLAG)
-                       SET(${CXX_FLAGS} "${${CXX_FLAGS}} -${flag}")
+                       SET(NEW_FLAG "-${flag}")
+                       ADD_NEW_FLAG(CXX NEW_FLAG)
                ENDIF(${UPPER_FLAG}_COMPILER_FLAG)
        ELSE(${ARGC} LESS 2)
                IF(NOT ${ARGV1})
@@ -70,7 +85,11 @@
        STRING(REGEX REPLACE " " "_" UPPER_FLAG ${UPPER_FLAG})
        CHECK_C_COMPILER_FLAG(-${flag} ${UPPER_FLAG}_COMPILER_FLAG)
        IF(${UPPER_FLAG}_COMPILER_FLAG)
-               SET(${FLAGS} "${${FLAGS}} -${flag}")
+               IF(${FLAGS})
+                       SET(${FLAGS} "${${FLAGS}} -${flag}")
+               ELSE(${FLAGS})
+                       SET(${FLAGS} "-${flag}")
+               ENDIF(${FLAGS})
        ENDIF(${UPPER_FLAG}_COMPILER_FLAG)
 ENDMACRO()
 
@@ -125,10 +144,10 @@
        CHECK_C_FLAG(64 64BIT_FLAG)
        CHECK_C_FLAG("mabi=64" 64BIT_FLAG)
        CHECK_C_FLAG(q64 64BIT_FLAG)
-       SET(${C_FLAGS} "${${C_FLAGS}} ${64BIT_FLAG}")
-       SET(${CXX_FLAGS} "${${CXX_FLAGS}} ${64BIT_FLAG}")
-       SET(${LD_FLAGS} "${${LD_FLAGS}} ${64BIT_FLAG}")
-       SET(${EXE_FLAGS} "${${EXE_FLAGS}} ${64BIT_FLAG}")
+       ADD_NEW_FLAG(C 64BIT_FLAG)
+       ADD_NEW_FLAG(CXX 64BIT_FLAG)
+       ADD_NEW_FLAG(SHARED_LINKER 64BIT_FLAG)
+       ADD_NEW_FLAG(EXE_LINKER 64BIT_FLAG)
 ENDIF(BRLCAD-ENABLE_64BIT)
 
 # Forced 32 bit compilation flags
@@ -138,10 +157,10 @@
        CHECK_C_FLAG(32 32BIT_FLAG)
        CHECK_C_FLAG("mabi=32" 32BIT_FLAG)
        CHECK_C_FLAG(q32 32BIT_FLAG)
-       SET(${C_FLAGS} "${${C_FLAGS}} ${32BIT_FLAG}")
-       SET(${CXX_FLAGS} "${${CXX_FLAGS}} ${32BIT_FLAG}")
-       SET(${LD_FLAGS} "${${LD_FLAGS}} ${32BIT_FLAG}")
-       SET(${EXE_FLAGS} "${${EXE_FLAGS}} ${32BIT_FLAG}")
+       ADD_NEW_FLAG(C 32BIT_FLAG)
+       ADD_NEW_FLAG(CXX 32BIT_FLAG)
+       ADD_NEW_FLAG(SHARED_LINKER 32BIT_FLAG)
+       ADD_NEW_FLAG(EXE_LINKER 32BIT_FLAG)
 ENDIF(NOT BRLCAD-ENABLE_64BIT AND ${CMAKE_SIZEOF_VOID_P} MATCHES "^8$")
 
 
@@ -153,8 +172,8 @@
                MESSAGE("Warning - profiling requested, but don't know how to 
profile with this compiler - disabling.")
                SET(BRLCAD-ENABLE_PROFILING OFF)
        ELSE(NOT PROFILE_FLAG)
-               SET(${C_FLAGS} "${${C_FLAGS}} ${PROFILE_FLAG}")
-               SET(${CXX_FLAGS} "${${CXX_FLAGS}} ${PROFILE_FLAG}")
+               ADD_NEW_FLAG(C PROFILE_FLAG)
+               ADD_NEW_FLAG(CXX PROFILE_FLAG)
        ENDIF(NOT PROFILE_FLAG)
 ENDIF(BRLCAD-ENABLE_PROFILING)
 
@@ -177,10 +196,10 @@
        # (e.g., memcpy), and provides run-time checks on buffer
        # lengths and memory regions.
        CHECK_C_FLAG_GATHER("D_FORTIFY_SOURCE=2" DEBUG_FLAG)
-       SET(${C_FLAGS} "${${C_FLAGS}} ${DEBUG_FLAG}")
-       SET(${CXX_FLAGS} "${${CXX_FLAGS}} ${DEBUG_FLAG}")
-       SET(${LD_FLAGS} "${${LD_FLAGS}} ${DEBUG_FLAG}")
-       SET(${EXE_FLAGS} "${${EXE_FLAGS}} ${DEBUG_FLAG}")
+       ADD_NEW_FLAG(C DEBUG_FLAG)
+       ADD_NEW_FLAG(CXX DEBUG_FLAG)
+       ADD_NEW_FLAG(SHARED_LINKER DEBUG_FLAG)
+       ADD_NEW_FLAG(EXE_LINKER DEBUG_FLAG)
        MARK_AS_ADVANCED(DEBUG_FLAG)
 ENDIF(BRLCAD-ENABLE_DEBUG_FLAGS)
 
@@ -199,8 +218,8 @@
        ELSE(NOT ${CMAKE_BUILD_TYPE} MATCHES "^Debug$" AND NOT 
BRLCAD-ENABLE_DEBUG AND NOT BRLCAD-ENABLE_PROFILING)
                CHECK_C_FLAG_GATHER(fno-omit-frame-pointer OPTIMIZE_FLAGS)
        ENDIF(NOT ${CMAKE_BUILD_TYPE} MATCHES "^Debug$" AND NOT 
BRLCAD-ENABLE_DEBUG AND NOT BRLCAD-ENABLE_PROFILING)
-       SET(${C_FLAGS} "${${C_FLAGS}} ${OPTIMIZE_FLAGS}")
-       SET(${CXX_FLAGS} "${${CXX_FLAGS}} ${OPTIMIZE_FLAGS}")
+       ADD_NEW_FLAG(C OPTIMIZE_FLAG)
+       ADD_NEW_FLAG(CXX OPTIMIZE_FLAG)
 ENDIF(BRLCAD-ENABLE_OPTIMIZED_BUILD)
 MARK_AS_ADVANCED(OPTIMIZE_FLAGS)
 #need to strip out non-debug-compat flags after the fact based on build type, 
or do something else
@@ -227,6 +246,8 @@
        CHECK_C_FLAG_GATHER(Wno-long-long WARNING_FLAGS) 
        SET(${C_FLAGS} "${${C_FLAGS}} ${WARNING_FLAGS}")
        SET(${CXX_FLAGS} "${${CXX_FLAGS}} ${WARNING_FLAGS}")
+       ADD_NEW_FLAG(C WARNING_FLAG)
+       ADD_NEW_FLAG(CXX WARNING_FLAG)
 ENDIF(BRLCAD-ENABLE_COMPILER_WARNINGS OR BRLCAD-ENABLE_STRICT)
 MARK_AS_ADVANCED(WARNING_FLAGS)
 
@@ -234,6 +255,8 @@
        CHECK_C_FLAG_GATHER(Werror STRICT_FLAGS) 
        SET(${C_FLAGS} "${${C_FLAGS}} ${STRICT_FLAGS}")
        SET(${CXX_FLAGS} "${${CXX_FLAGS}} ${STRICT_FLAGS}")
+       ADD_NEW_FLAG(C STRICT_FLAG)
+       ADD_NEW_FLAG(CXX STRICT_FLAG)
 ENDIF(BRLCAD-ENABLE_STRICT)
 MARK_AS_ADVANCED(STRICT_FLAGS)
 


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

------------------------------------------------------------------------------
BlackBerry® DevCon Americas, Oct. 18-20, San Francisco, CA
The must-attend event for mobile developers. Connect with experts. 
Get tools for creating Super Apps. See the latest technologies.
Sessions, hands-on labs, demos & much more. Register early & save!
http://p.sf.net/sfu/rim-blackberry-1
_______________________________________________
BRL-CAD Source Commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/brlcad-commits

Reply via email to