From 5d80b6d44141e4a51525f9094642186ce2a97d4d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20M=C3=B6bius?= Date: Thu, 21 Jun 2012 14:33:21 +0000 Subject: [PATCH] Use the compiler flag constructions from OpenFlipper git-svn-id: http://www.openmesh.org/svnrepo/OpenMesh/trunk@605 fdac6126-5c0c-442c-9429-916003d36597 --- cmake/ACGCompiler.cmake | 75 ++++++++++++++++++++++++++++++++--------- 1 file changed, 60 insertions(+), 15 deletions(-) diff --git a/cmake/ACGCompiler.cmake b/cmake/ACGCompiler.cmake index ae1abf45..2be45e90 100644 --- a/cmake/ACGCompiler.cmake +++ b/cmake/ACGCompiler.cmake @@ -2,6 +2,45 @@ # Custom settings for compiler flags and similar ################################################################################ +if ( WIN32 ) + ################################################################################ + # Windows large memory support + ################################################################################ + if ( NOT DEFINED WINDOWS_LARGE_MEMORY_SUPPORT ) + set( WINDOWS_LARGE_MEMORY_SUPPORT true CACHE BOOL "Enable or disable binary support for large memory" ) + endif() + + set( ADDITIONAL_CMAKE_EXE_LINKER_FLAGS ) + set( ADDITIONAL_CMAKE_SHARED_LINKER_FLAGS ) + set( ADDITIONAL_CMAKE_MODULE_LINKER_FLAGS ) + + if ( WINDOWS_LARGE_MEMORY_SUPPORT ) + list(APPEND ADDITIONAL_CMAKE_EXE_LINKER_FLAGS "/LARGEADDRESSAWARE" ) + list(APPEND ADDITIONAL_CMAKE_SHARED_LINKER_FLAGS "/LARGEADDRESSAWARE" ) + list(APPEND ADDITIONAL_CMAKE_MODULE_LINKER_FLAGS "/LARGEADDRESSAWARE" ) + endif() + + + foreach( flag ${ADDITIONAL_CMAKE_EXE_LINKER_FLAGS} ) + if( NOT CMAKE_EXE_LINKER_FLAGS MATCHES "${flag}" ) + set( CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${flag} ") + endif() + endforeach() + + foreach( flag ${ADDITIONAL_CMAKE_SHARED_LINKER_FLAGS} ) + if( NOT CMAKE_SHARED_LINKER_FLAGS MATCHES "${flag}" ) + set( CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${flag} ") + endif() + endforeach() + + foreach( flag ${ADDITIONAL_CMAKE_MODULE_LINKER_FLAGS} ) + if( NOT CMAKE_MODULE_LINKER_FLAGS MATCHES "${flag}" ) + set( CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} ${flag} ") + endif() + endforeach() + +endif( WIN32 ) + if (UNIX) set ( ADDITIONAL_CXX_DEBUG_FLAGS ) @@ -57,22 +96,28 @@ if (UNIX) ################################################################################ # Warnings ################################################################################ - - IF( NOT CMAKE_SYSTEM MATCHES "SunOS*") - list(APPEND ADDITIONAL_CXX_DEBUG_FLAGS "-W" "-Wall" "-Wno-unused" ) - list(APPEND ADDITIONAL_CXX_RELEASE_FLAGS "-W" "-Wall" "-Wno-unused" ) - list(APPEND ADDITIONAL_CXX_RELWITHDEBINFO_FLAGS "-W" "-Wall" "-Wno-unused" ) + + # Add the standard compiler warnings + if ( NOT COMPILER_WARNINGS ) + + IF ( APPLE ) + # Skip unused parameters as it has to be used for the documentation via doxygen and the interfaces + set ( COMPILER_WARNINGS "-W" "-Wall" "-Wno-unused" "-Wextra" "-Wno-non-virtual-dtor" "-Wno-unused-parameter" CACHE STRINGLIST "This list contains the warning flags used during compilation " ) + ELSEIF ( CMAKE_SYSTEM MATCHES "SunOS*" ) + set ( COMPILER_WARNINGS "" CACHE STRINGLIST "This list contains the warning flags used during compilation " ) + ELSE () + set ( COMPILER_WARNINGS "-W" "-Wall" "-Wno-unused" "-Wextra" CACHE STRINGLIST "This list contains the warning flags used during compilation " ) + ENDIF() + + endif ( NOT COMPILER_WARNINGS ) + + list(APPEND ADDITIONAL_CXX_DEBUG_FLAGS ${COMPILER_WARNINGS} ) + list(APPEND ADDITIONAL_CXX_RELEASE_FLAGS ${COMPILER_WARNINGS} ) + list(APPEND ADDITIONAL_CXX_RELWITHDEBINFO_FLAGS ${COMPILER_WARNINGS} ) - list(APPEND ADDITIONAL_C_DEBUG_FLAGS "-W" "-Wall" "-Wno-unused" ) - list(APPEND ADDITIONAL_C_RELEASE_FLAGS "-W" "-Wall" "-Wno-unused" ) - list(APPEND ADDITIONAL_C_RELWITHDEBINFO_FLAGS "-W" "-Wall" "-Wno-unused" ) - ENDIF() - - if (APPLE) - list(APPEND ADDITIONAL_CXX_DEBUG_FLAGS "-Wno-non-virtual-dtor" ) - list(APPEND ADDITIONAL_CXX_RELEASE_FLAGS "-Wno-non-virtual-dtor" ) - list(APPEND ADDITIONAL_CXX_RELWITHDEBINFO_FLAGS "-Wno-non-virtual-dtor" ) - endif () + list(APPEND ADDITIONAL_C_DEBUG_FLAGS ${COMPILER_WARNINGS} ) + list(APPEND ADDITIONAL_C_RELEASE_FLAGS ${COMPILER_WARNINGS} ) + list(APPEND ADDITIONAL_C_RELWITHDEBINFO_FLAGS ${COMPILER_WARNINGS} ) ################################################################################ # STL Vector checks