Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: code/branches/gui/cmake/BuildConfigGCC.cmake @ 2862

Last change on this file since 2862 was 2862, checked in by rgrieder, 15 years ago

quote: "Fixed some bugs. Please do not break the code, when working with other people on one branch"
Me too. CMake wasn't even able to make the project after r2853!
The problem was the no -Wno-deprecated flag, which was set to all compilers.
Lets examine: There are three files with compiler settings: BuildConfig.cmake, BuildConfigGCC.cmake and BuildConfigMSVC.cmake. Suppose you want to apply a GCC specific option, which one do you pick? BuildConfig.cmake, exactly, because that only concerns GCC in contrast to BuildConfigGCC.cmake!
I still hope the dozens if not hundreds of hours of work spent on the build system to make it less of a mess weren't all that in vein…

  • Also re enabled the OPTION to show extended compiler warnings and explicitly set it to false (which it was before, just not visibly).
  • Property svn:eol-style set to native
File size: 3.1 KB
Line 
1 #
2 #             ORXONOX - the hottest 3D action shooter ever to exist
3 #                             > www.orxonox.net <
4 #
5 #        This program is free software; you can redistribute it and/or
6 #         modify it under the terms of the GNU General Public License
7 #        as published by the Free Software Foundation; either version 2
8 #            of the License, or (at your option) any later version.
9 #
10 #       This program is distributed in the hope that it will be useful,
11 #        but WITHOUT ANY WARRANTY; without even the implied warranty of
12 #        MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 #                 GNU General Public License for more details.
14 #
15 #   You should have received a copy of the GNU General Public License along
16 #      with this program; if not, write to the Free Software Foundation,
17 #     Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
18 #
19 #
20 #  Author:
21 #    Reto Grieder, Adrian Friedli
22 #  Description:
23 #    Sets the right compiler and linker flags for GCC.
24 #
25
26# Determine compiler version
27EXEC_PROGRAM(
28  ${CMAKE_CXX_COMPILER}
29  ARGS ${CMAKE_CXX_COMPILER_ARG1} -dumpversion
30  OUTPUT_VARIABLE GCC_VERSION
31)
32
33# GCC may not support #pragma GCC system_header correctly when using
34# templates. According to Bugzilla, it was fixed March 07 but tests
35# have confirmed that GCC 4.0.0 does not pose a problem for our cases.
36INCLUDE(CompareVersionStrings)
37COMPARE_VERSION_STRINGS("${GCC_VERSION}" "4.0.0" _compare_result)
38IF(_compare_result LESS 0)
39  SET(GCC_NO_SYSTEM_HEADER_SUPPORT TRUE)
40ENDIF()
41
42# Also include environment flags. Could cause conflicts though
43SET_COMPILER_FLAGS("$ENV{CXXFLAGS}" CXX CACHE)
44SET_COMPILER_FLAGS("$ENV{CFLAGS}"   C   CACHE)
45
46# These flags get added to the flags above
47SET_COMPILER_FLAGS("    -g -ggdb -D_DEBUG" Debug          CACHE)
48SET_COMPILER_FLAGS("             -DNDEBUG" ReleaseAll     CACHE)
49ADD_COMPILER_FLAGS("-O3"                   Release        CACHE)
50ADD_COMPILER_FLAGS("-O2 -g -ggdb"          RelWithDebInfo CACHE)
51ADD_COMPILER_FLAGS("-Os"                   MinSizeRel     CACHE)
52
53# CMake doesn't seem to set the PIC flags right on certain 64 bit systems
54IF(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "x86_64")
55  ADD_COMPILER_FLAGS("-fPIC" CACHE)
56ENDIF()
57
58# We have some uncoformant code, disable an optimisation feature
59REMOVE_COMPILER_FLAGS("-fno-strict-aliasing" CACHE)
60
61# For GCC older than version 4, do not display sign compare warings
62# because of boost::filesystem (which creates about a hundred per include)
63ADD_COMPILER_FLAGS("-Wno-sign-compare" GCC_NO_SYSTEM_HEADER_SUPPORT CACHE)
64
65# For newer GCC (4.3 and above), don't display hundreds of annoying deprecated
66# messages. Other versions don't seem to show any such warnings at all.
67ADD_COMPILER_FLAGS("-Wno-deprecated")
68
69# Increase warning level if requested
70IF(EXTRA_COMPILER_WARNINGS)
71  REMOVE_COMPILER_FLAGS("-Wall" CACHE)
72  ADD_COMPILER_FLAGS("-Wextra --Wno-unused-parameter" CACHE)
73ELSE()
74  REMOVE_COMPILER_FLAGS("-Wextra --Wno-unused-parameter" CACHE)
75  ADD_COMPILER_FLAGS("-Wall" CACHE)
76ENDIF()
77
78# General linker flags
79SET_LINKER_FLAGS("--no-undefined" CACHE)
Note: See TracBrowser for help on using the repository browser.