Merge lp:~nha/widelands/release-warnings into lp:widelands

Proposed by Nicolai Hähnle
Status: Merged
Merged at revision: 6546
Proposed branch: lp:~nha/widelands/release-warnings
Merge into: lp:widelands
Diff against target: 127 lines (+41/-44)
1 file modified
CMakeLists.txt (+41/-44)
To merge this branch: bzr merge lp:~nha/widelands/release-warnings
Reviewer Review Type Date Requested Status
Jens Beyer Approve
Widelands Developers Pending
Review via email: mp+153693@code.launchpad.net

Description of the change

This should be straightforward: make sure we compile with warnings also in Release mode. Note that the MSVC path is unaffected, since it happens further down in the CMakeLists.txt, so I think/hope that this does not break anything.

Still, some comment from the cmake gurus would be appreciated ;-)

To post a comment you must log in.
Revision history for this message
SirVer (sirver) wrote :

Jens, you are most qualified to comment on this.

Revision history for this message
Jens Beyer (qcumber-some) wrote :

Took me a while to find the time, but I think now this is ok.
I also think this does not touch MSVC, but I really don't want to set a final OK on that as I don't really know what happens there ;-)

So, ok from me (Linux), but it would be great to have some check by an MSVC user.

review: Approve
Revision history for this message
Nicolai Hähnle (nha) wrote :

Perhaps a bit crude, but I merge now, since it's been three days and we don't know when Tino or somebody else might look at this.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'CMakeLists.txt'
--- CMakeLists.txt 2013-03-01 22:54:23 +0000
+++ CMakeLists.txt 2013-03-17 20:41:22 +0000
@@ -198,58 +198,55 @@
198 ENDIF (WLBUILD_COMPILERVERSION_REP STREQUAL "4.3.2" OR WLBUILD_COMPILERVERSION_REP STREQUAL "4.3.1")198 ENDIF (WLBUILD_COMPILERVERSION_REP STREQUAL "4.3.2" OR WLBUILD_COMPILERVERSION_REP STREQUAL "4.3.1")
199ENDIF (Compiler_old-style-cast_supported)199ENDIF (Compiler_old-style-cast_supported)
200200
201IF (CMAKE_BUILD_TYPE STREQUAL "Debug")201CHECK_CXX_COMPILER_FLAG(${PARAMETER_COMPILERFLAG_GENERICWARNINGS} Compiler_generic_warnings_supported)
202202IF (Compiler_generic_warnings_supported)
203 CHECK_CXX_COMPILER_FLAG(${PARAMETER_COMPILERFLAG_GENERICWARNINGS} Compiler_generic_warnings_supported)203 set (WL_COMPILERFLAG_GENERICWARNINGS " ${PARAMETER_COMPILERFLAG_GENERICWARNINGS}") #the space is on purpose!
204 IF (Compiler_generic_warnings_supported)204ENDIF (Compiler_generic_warnings_supported)
205 set (WL_COMPILERFLAG_GENERICWARNINGS " ${PARAMETER_COMPILERFLAG_GENERICWARNINGS}") #the space is on purpose!205
206 ENDIF (Compiler_generic_warnings_supported)206CHECK_CXX_COMPILER_FLAG(${PARAMETER_COMPILERFLAG_EXTRAWARNINGS} Compiler_extra_warnings_supported)
207207IF (Compiler_extra_warnings_supported)
208 CHECK_CXX_COMPILER_FLAG(${PARAMETER_COMPILERFLAG_EXTRAWARNINGS} Compiler_extra_warnings_supported)208 set (WL_COMPILERFLAG_EXTRAWARNINGS " ${PARAMETER_COMPILERFLAG_EXTRAWARNINGS}") #the space is on purpose!
209 IF (Compiler_extra_warnings_supported)209ELSE (Compiler_extra_warnings_supported)
210 set (WL_COMPILERFLAG_EXTRAWARNINGS " ${PARAMETER_COMPILERFLAG_EXTRAWARNINGS}") #the space is on purpose!210 message("Warning: couldn't set the following compiler options: ${PARAMETER_COMPILERFLAG_EXTRAWARNINGS}. Most likely these options are available in a newer release of your compiler.")
211 ELSE (Compiler_extra_warnings_supported)211ENDIF (Compiler_extra_warnings_supported)
212 message("Warning: couldn't set the following compiler options: ${PARAMETER_COMPILERFLAG_EXTRAWARNINGS}. Most likely these options are available in a newer release of your compiler.")212
213 ENDIF (Compiler_extra_warnings_supported)213CHECK_CXX_COMPILER_FLAG(${PARAMETER_COMPILERFLAG_GCCWARNINGS} Compiler_gcc_warnings_supported)
214214IF (Compiler_gcc_warnings_supported)
215 CHECK_CXX_COMPILER_FLAG(${PARAMETER_COMPILERFLAG_GCCWARNINGS} Compiler_gcc_warnings_supported)215 set (WL_COMPILERFLAG_GCCWARNINGS " ${PARAMETER_COMPILERFLAG_GCCWARNINGS}") #the space is on purpose!
216 IF (Compiler_gcc_warnings_supported)216ELSE (Compiler_gcc_warnings_supported)
217 set (WL_COMPILERFLAG_GCCWARNINGS " ${PARAMETER_COMPILERFLAG_GCCWARNINGS}") #the space is on purpose!217 message("Warning: could not add additional GCC-specific warning options: ${PARAMETER_COMPILERFLAG_GCCWARNINGS}. Most likely you are using a different compiler, like Clang/LLVM.")
218 ELSE (Compiler_gcc_warnings_supported)218ENDIF (Compiler_gcc_warnings_supported)
219 message("Warning: could not add additional GCC-specific warning options: ${PARAMETER_COMPILERFLAG_GCCWARNINGS}. Most likely you are using a different compiler, like Clang/LLVM.")219
220 ENDIF (Compiler_gcc_warnings_supported)220IF (WL_STRICT)
221221 CHECK_CXX_COMPILER_FLAG(${PARAMETER_COMPILERFLAG_STRICT} Compiler_strict_mode_supported)
222222 IF (Compiler_strict_mode_supported)
223 IF (WL_STRICT)223 set (WL_COMPILERFLAG_STRICT " ${PARAMETER_COMPILERFLAG_STRICT}") #the space is on purpose!
224 CHECK_CXX_COMPILER_FLAG(${PARAMETER_COMPILERFLAG_STRICT} Compiler_strict_mode_supported)224 message(STATUS "Strict mode enabled, expect compilation errors instead of compilation warnings!")
225 IF (Compiler_strict_mode_supported)225 ENDIF (Compiler_strict_mode_supported)
226 set (WL_COMPILERFLAG_STRICT " ${PARAMETER_COMPILERFLAG_STRICT}") #the space is on purpose!226ENDIF (WL_STRICT)
227 message(STATUS "Strict mode enabled, expect compilation errors instead of compilation warnings!")
228 ENDIF (Compiler_strict_mode_supported)
229 ENDIF (WL_STRICT)
230ENDIF (CMAKE_BUILD_TYPE STREQUAL "Debug")
231227
232# CMAKE only defines "-g", but we need -DDEBUG also, and we need -DNOPARACHUTE (for SDL) in Debug228# CMAKE only defines "-g", but we need -DDEBUG also, and we need -DNOPARACHUTE (for SDL) in Debug
233set (CMAKE_CXX_FLAGS_DEBUG "-g -DDEBUG -DNOPARACHUTE${WL_COMPILERFLAG_OLDSTYLECAST}${WL_COMPILERFLAG_GENERICWARNINGS}${WL_COMPILERFLAG_EXTRAWARNINGS}${WL_COMPILERFLAG_GCCWARNINGS}${WL_COMPILERFLAG_STRICT}" CACHE STRING "Set by widelands CMakeLists.txt" FORCE)229set (CMAKE_CXX_FLAGS_DEBUG "-g -DDEBUG -DNOPARACHUTE${WL_COMPILERFLAG_OLDSTYLECAST}${WL_COMPILERFLAG_GENERICWARNINGS}${WL_COMPILERFLAG_EXTRAWARNINGS}${WL_COMPILERFLAG_GCCWARNINGS}${WL_COMPILERFLAG_STRICT}" CACHE STRING "Set by widelands CMakeLists.txt" FORCE)
234230
231set (WL_COMPILERFLAG_OPTIMIZATIONS "-O3")
232
235#This can be removed if no one uses gcc 4.5.1 or 4.5.2 any more233#This can be removed if no one uses gcc 4.5.1 or 4.5.2 any more
236IF (CMAKE_COMPILER_IS_GNUCXX)234IF (CMAKE_COMPILER_IS_GNUCXX)
237EXEC_PROGRAM (235 EXEC_PROGRAM (
238 ${CMAKE_CXX_COMPILER}236 ${CMAKE_CXX_COMPILER}
239 ARGS --version237 ARGS --version
240 OUTPUT_VARIABLE WLBUILD_COMPILERVERSION238 OUTPUT_VARIABLE WLBUILD_COMPILERVERSION
241 )239 )
242 STRING(REGEX REPLACE ".*(4)\\.(5)\\.([0-9]).*" "\\1.\\2.\\3" WLBUILD_COMPILERVERSION_REP ${WLBUILD_COMPILERVERSION})240 STRING(REGEX REPLACE ".*(4)\\.(5)\\.([0-9]).*" "\\1.\\2.\\3" WLBUILD_COMPILERVERSION_REP ${WLBUILD_COMPILERVERSION})
243 IF (WLBUILD_COMPILERVERSION_REP STREQUAL "4.5.1" OR WLBUILD_COMPILERVERSION_REP STREQUAL "4.5.2")241 IF (WLBUILD_COMPILERVERSION_REP STREQUAL "4.5.1" OR WLBUILD_COMPILERVERSION_REP STREQUAL "4.5.2")
244 message("Detected gcc ${WLBUILD_COMPILERVERSION_REP}")242 message("Detected gcc ${WLBUILD_COMPILERVERSION_REP}")
245 message("Suffering from gcc bug, disabling -O3")243 message("Suffering from gcc bug, disabling -O3")
246 set (CMAKE_CXX_FLAGS_RELEASE "-O2 -DNDEBUG" CACHE STRING "Set by widelands CMakeLists.txt" FORCE)244 set (WL_COMPILERFLAG_OPTIMIZATIONS "-O2")
247 ELSE (WLBUILD_COMPILERVERSION_REP STREQUAL "4.5.1" OR WLBUILD_COMPILERVERSION_REP STREQUAL "4.5.2")245 ENDIF (WLBUILD_COMPILERVERSION_REP STREQUAL "4.5.1" OR WLBUILD_COMPILERVERSION_REP STREQUAL "4.5.2")
248 #This line is the default and should be preserved.
249 set (CMAKE_CXX_FLAGS_RELEASE "-O3 -DNDEBUG" CACHE STRING "Set by widelands CMakeLists.txt" FORCE)
250 ENDIF (WLBUILD_COMPILERVERSION_REP STREQUAL "4.5.1" OR WLBUILD_COMPILERVERSION_REP STREQUAL "4.5.2")
251ENDIF (CMAKE_COMPILER_IS_GNUCXX)246ENDIF (CMAKE_COMPILER_IS_GNUCXX)
252247
248set (CMAKE_CXX_FLAGS_RELEASE "${WL_COMPILERFLAG_OPTIMIZATIONS} -DNDEBUG${WL_COMPILERFLAG_OLDSTYLECAST}${WL_COMPILERFLAG_GENERICWARNINGS}${WL_COMPILERFLAG_EXTRAWARNINGS}${WL_COMPILERFLAG_GCCWARNINGS}${WL_COMPILERFLAG_STRICT}" CACHE STRING "Set by widelands CMakeLists.txt" FORCE)
249
253#If building with MSVC, then check for 3rdparty libs250#If building with MSVC, then check for 3rdparty libs
254if (DEFINED MSVC)251if (DEFINED MSVC)
255 set (WL_3RDPARTY_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../3rdparty" CACHE STRING "Widelands 3rdparty dir")252 set (WL_3RDPARTY_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../3rdparty" CACHE STRING "Widelands 3rdparty dir")
@@ -375,7 +372,7 @@
375 BzrRevision ALL372 BzrRevision ALL
376 COMMAND ${CMAKE_COMMAND} -DWL_INSTALL_PREFIX=${WL_INSTALL_PREFIX} -DWL_INSTALL_BINDIR=${WL_INSTALL_BINDIR} -DWL_INSTALL_DATADIR=${WL_INSTALL_DATADIR} -DWL_INSTALL_LOCALEDIR=${WL_INSTALL_LOCALEDIR} -DPYTHON_EXECUTABLE=${PYTHON_EXECUTABLE} -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DSOURCE_DIR=${CMAKE_CURRENT_SOURCE_DIR} -DBINARY_DIR=${CMAKE_CURRENT_BINARY_DIR} -P ${CMAKE_CURRENT_SOURCE_DIR}/BzrRevision.cmake373 COMMAND ${CMAKE_COMMAND} -DWL_INSTALL_PREFIX=${WL_INSTALL_PREFIX} -DWL_INSTALL_BINDIR=${WL_INSTALL_BINDIR} -DWL_INSTALL_DATADIR=${WL_INSTALL_DATADIR} -DWL_INSTALL_LOCALEDIR=${WL_INSTALL_LOCALEDIR} -DPYTHON_EXECUTABLE=${PYTHON_EXECUTABLE} -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DSOURCE_DIR=${CMAKE_CURRENT_SOURCE_DIR} -DBINARY_DIR=${CMAKE_CURRENT_BINARY_DIR} -P ${CMAKE_CURRENT_SOURCE_DIR}/BzrRevision.cmake
377 )374 )
378 375
379 # Detect version now376 # Detect version now
380 execute_process (377 execute_process (
381 COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/utils/detect_revision.py378 COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/utils/detect_revision.py
@@ -592,7 +589,7 @@
592 set(CPACK_NSIS_PACKAGE_NAME "Widelands")589 set(CPACK_NSIS_PACKAGE_NAME "Widelands")
593 set(CPACK_NSIS_DISPLAY_NAME "Widelands ${WL_VERSION}")590 set(CPACK_NSIS_DISPLAY_NAME "Widelands ${WL_VERSION}")
594 set(CPACK_NSIS_DISPLAY_NAME_SET "TRUE")591 set(CPACK_NSIS_DISPLAY_NAME_SET "TRUE")
595 592
596 # Optional dialogs593 # Optional dialogs
597 if (NOT DEFINED CPACK_NSIS_LANGUAGE_DIALOG)594 if (NOT DEFINED CPACK_NSIS_LANGUAGE_DIALOG)
598 set(CPACK_NSIS_LANGUAGE_DIALOG "ON")595 set(CPACK_NSIS_LANGUAGE_DIALOG "ON")
@@ -650,7 +647,7 @@
650 DeleteRegValue HKCR \\\".wmf\\\" \\\"WidelandsMapFile\\\"647 DeleteRegValue HKCR \\\".wmf\\\" \\\"WidelandsMapFile\\\"
651 DeleteRegKey /ifempty HKCR \\\".wmf\\\"648 DeleteRegKey /ifempty HKCR \\\".wmf\\\"
652 DeleteRegKey HKCR \\\"WidelandsMapFile\\\"649 DeleteRegKey HKCR \\\"WidelandsMapFile\\\"
653 650
654 Delete \\\"$INSTDIR\\\\stdout.txt\\\"651 Delete \\\"$INSTDIR\\\\stdout.txt\\\"
655 Delete \\\"$INSTDIR\\\\stderr.txt\\\"652 Delete \\\"$INSTDIR\\\\stderr.txt\\\"
656 Delete \\\"$INSTDIR\\\"653 Delete \\\"$INSTDIR\\\"

Subscribers

People subscribed via source and target branches

to status/vote changes: