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

Reply via email to