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