diff interps/cfunge/cfunge-src/cmake/modules/CfungeCheckWarningFlags.cmake @ 996:859f9b4339e6

<Gregor> tar xf egobot.tar.xz
author HackBot
date Sun, 09 Dec 2012 19:30:08 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/interps/cfunge/cfunge-src/cmake/modules/CfungeCheckWarningFlags.cmake	Sun Dec 09 19:30:08 2012 +0000
@@ -0,0 +1,86 @@
+# - Check if the C compiler supports a set of warning flags.
+# CFUNGE_CHECK_WARNING_FLAGS()
+#
+# Will use add_definitions() to add the flags if they are supported.
+#
+
+# cfunge - A standard-conforming Befunge93/98/109 interpreter in C.
+# Copyright (C) 2008 Arvid Norlander <anmaster AT tele2 DOT se>
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at the proxy's option) any later version. Arvid Norlander is a
+# proxy who can decide which future versions of the GNU General Public
+# License can be used.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+include(CfungeCheckCflag)
+
+macro(CFUNGE_CHECK_WARNING_FLAGS)
+	if (CMAKE_COMPILER_IS_GNUCC)
+		# Not all GCC versions support all of these flags.
+		CFUNGE_CHECK_CFLAG(Wall                         -Wall)
+		CFUNGE_CHECK_CFLAG(Wextra                       -Wextra)
+		CFUNGE_CHECK_CFLAG(pedantic                     -pedantic)
+	
+		CFUNGE_CHECK_CFLAG(Wwrite-strings               -Wwrite-strings)
+	
+		CFUNGE_CHECK_CFLAG(Wcast-align                  -Wcast-align)
+		CFUNGE_CHECK_CFLAG(Wcast-qual                   -Wcast-qual)
+		CFUNGE_CHECK_CFLAG(Wbad-function-cast           -Wbad-function-cast)
+	
+		CFUNGE_CHECK_CFLAG(Wstrict-prototypes           -Wstrict-prototypes)
+		CFUNGE_CHECK_CFLAG(Wmissing-prototypes          -Wmissing-prototypes)
+		CFUNGE_CHECK_CFLAG(Wmissing-declarations        -Wmissing-declarations)
+		CFUNGE_CHECK_CFLAG(Wold-style-definition        -Wold-style-definition)
+	
+		CFUNGE_CHECK_CFLAG(Wredundant-decls             -Wredundant-decls)
+		CFUNGE_CHECK_CFLAG(Wnested-externs              -Wnested-externs)
+		CFUNGE_CHECK_CFLAG(Wdeclaration-after-statement -Wdeclaration-after-statement)
+	
+		CFUNGE_CHECK_CFLAG(Wshadow                      -Wshadow)
+		CFUNGE_CHECK_CFLAG(Wundef                       -Wundef)
+		CFUNGE_CHECK_CFLAG(Wpacked                      -Wpacked)
+		CFUNGE_CHECK_CFLAG(Wfloat-equal                 -Wfloat-equal)
+	
+		CFUNGE_CHECK_CFLAG(Wstrict-aliasing_2           -Wstrict-aliasing=2)
+		#CFUNGE_CHECK_CFLAG(Wstrict-overflow_5          -Wstrict-overflow=5)
+		CFUNGE_CHECK_CFLAG(Wformat_2                    -Wformat=2)
+	
+		CFUNGE_CHECK_CFLAG(Wmissing-noreturn            -Wmissing-noreturn)
+		CFUNGE_CHECK_CFLAG(Wmissing-format-attribute    -Wmissing-format-attribute)
+	
+		CFUNGE_CHECK_CFLAG(Winit-self                   -Winit-self)
+		# GCC 4.1(?) or later
+		CFUNGE_CHECK_CFLAG(Wunsafe-loop-optimizations   -Wunsafe-loop-optimizations)
+		CFUNGE_CHECK_CFLAG(Wmissing-include-dirs        -Wmissing-include-dirs)
+	
+		CFUNGE_CHECK_CFLAG(Wunused-parameter            -Wunused-parameter)
+		# These are part of -Wall in GCC 4.3, but not in some older versions.
+		CFUNGE_CHECK_CFLAG(Wunused-function             -Wunused-function)
+		CFUNGE_CHECK_CFLAG(Wunused-label                -Wunused-label)
+		CFUNGE_CHECK_CFLAG(Wunused-value                -Wunused-value)
+		CFUNGE_CHECK_CFLAG(Wunused-variable             -Wunused-variable)
+		CFUNGE_CHECK_CFLAG(Wimplicit                    -Wimplicit)
+		CFUNGE_CHECK_CFLAG(Wparentheses                 -Wparentheses)
+		# Part of -pedantic in 4.3
+		CFUNGE_CHECK_CFLAG(Wpointer-arith               -Wpointer-arith)
+	
+		# Maintainer flags. Gives lots of false positives.
+		# add_definitions(-Wunreachable-code -fno-inline
+		#                 -fno-inline-functions-called-once -fno-inline-functions
+		#                 -fkeep-inline-functions -Wno-inline)
+		# Even more false positives
+		#add_definitions(-Wunreachable-code)
+		# Only with this meaning in GCC 4.3 (and false positives):
+		# -Wconversion
+	endif (CMAKE_COMPILER_IS_GNUCC)
+endmacro(CFUNGE_CHECK_WARNING_FLAGS)