On 18.07.08 23:06:50, Alexander Neundorf wrote:
> On Friday 18 July 2008, Thiago Macieira wrote:
> > Alexander Neundorf wrote:
> > >On Friday 18 July 2008, Andreas Pakulat wrote:
> > >> Hi,
> > >>
> > >> Whats the reasoning behind using -O2 in the Debug CXX flags? A debug
> > >> build shouldn't use _any_ optimizations IMHO.
> > >
> > >I think there were lengthy discussion about the flags for the different
> > > build types. I guess this was the result.
> > >/me hasn't slept a lot this week, so I don't feel like searching for
> > > this now
> >
> > The reason is that we split the build types in (for gcc):
> >
> > Release
> > optimised for speed, qDebug/kDebug turned off, no debug symbols
> > Release with debug info
> > optimised for speed, debugging symbols on (-g)
> > Debug
> > optimised but debuggable, debugging on (-g)
> > (-fno-reorder-blocks -fno-schedule-insns -fno-inline)
> > DebugFull
> > no optimisation, full debugging on (-g3)
> > Profile
> > DebugFull + -ftest-coverage -fprofile-arcs
> >
> > It is expected that the "Debug" build type be still debuggable with gdb
> > without going all over the place, but still produce better performance.
> > It's also important to note that gcc cannot detect all warning conditions
> > unless the optimiser is active.
> >
> > I'd say that "debug" is recommended for kdelibs for people developing KDE
> > applications, since oftentimes they may have to go into kdelibs
> > functions. Their own code should be build under debugfull while still in
> > development, but should be built a few times in release before a release.
>
> Thanks for the explanation :-)
> Can you put that on techbase, somewhere related to cmake/building ?
I'm putting it on techbase in a minute (if I find the right spot).
However I'd also like to add the information to FindKDE4Internal.cmake
and more importantly make Debugfull work with CMake 2.6. As I didn't
find a reference of CMAKE_CONFIGURATION_TYPES for cmake 2.4 I've set it
only for 2.6. Please can you have a look at the attached patch and let
me know wether thats ok with you.
Andreas
--
A few hours grace before the madness begins again.
Index: FindKDE4Internal.cmake
===================================================================
--- FindKDE4Internal.cmake (Revision 833951)
+++ FindKDE4Internal.cmake (Arbeitskopie)
@@ -199,6 +199,27 @@
# _KDE4_PLATFORM_INCLUDE_DIRS is used only internally
# _KDE4_PLATFORM_DEFINITIONS is used only internally
+# Note on the possible values for CMAKE_BUILD_TYPE and how KDE handles
+# the flags for those buildtypes. FindKDE4Internal supports the values
+# Debug, Release, Relwithdebinfo, Profile and Debugfull
+#
+# Release
+# optimised for speed, qDebug/kDebug turned off, no debug symbols
+# Release with debug info
+# optimised for speed, debugging symbols on (-g)
+# Debug
+# optimised but debuggable, debugging on (-g)
+# (-fno-reorder-blocks -fno-schedule-insns -fno-inline)
+# DebugFull
+# no optimisation, full debugging on (-g3)
+# Profile
+# DebugFull + -ftest-coverage -fprofile-arcs
+#
+# It is expected that the "Debug" build type be still debuggable with gdb
+# without going all over the place, but still produce better performance.
+# It's also important to note that gcc cannot detect all warning conditions
+# unless the optimiser is active.
+
# Copyright (c) 2006-2008, Alexander Neundorf <[EMAIL PROTECTED]>
# Copyright (c) 2006, Laurent Montel, <[EMAIL PROTECTED]>
#
@@ -381,7 +402,6 @@
find_library(KDE4_KJS_LIBRARY NAMES kjs PATHS ${KDE4_LIB_INSTALL_DIR} NO_DEFAULT_PATH )
set(KDE4_KJS_LIBS ${kjs_LIB_DEPENDS} ${KDE4_KJS_LIBRARY} )
- find_library(KDE4_KJSAPI_LIBRARY NAMES kjsapi PATHS ${KDE4_LIB_INSTALL_DIR} NO_DEFAULT_PATH )
set(KDE4_KJSAPI_LIBS ${kjsapi_LIB_DEPENDS} ${KDE4_KJSAPI_LIBRARY} )
find_library(KDE4_KNEWSTUFF2_LIBRARY NAMES knewstuff2 PATHS ${KDE4_LIB_INSTALL_DIR} NO_DEFAULT_PATH )
@@ -897,6 +917,10 @@
if (CMAKE_COMPILER_IS_GNUCXX)
+ if("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}" STREQUAL "2.6")
+ set (CMAKE_CONFIGURATION_TYPES ${CMAKE_CONFIGURATION_TYPES} "Debugfull")
+ endif("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}" STREQUAL "2.6")
+
set (KDE4_ENABLE_EXCEPTIONS -fexceptions)
# Select flags.
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g")
@@ -1003,6 +1027,11 @@
if (CMAKE_C_COMPILER MATCHES "icc")
+
+ if("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}" STREQUAL "2.6")
+ set (CMAKE_CONFIGURATION_TYPES ${CMAKE_CONFIGURATION_TYPES} "Debugfull")
+ endif("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}" STREQUAL "2.6")
+
set (KDE4_ENABLE_EXCEPTIONS -fexceptions)
# Select flags.
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g")
_______________________________________________
Kde-buildsystem mailing list
[email protected]
https://mail.kde.org/mailman/listinfo/kde-buildsystem