[CMake] CMake and profiling...
Asmodehn Shade
asmodehn at gmail.com
Wed Mar 14 18:34:07 EST 2007
Thank you for the replies...
So I think for profiling I will
- 1) reorganise my CMakeLists.txt around so the flags are set in one place only
- 2) Add a variable to say wether or not to do some profiling, regardless of the build type . I guess I could want to do some profiling in debug and in release mode as well, although I am not sure right now if this will be usefull anyway... when I get that working I can always revert to a specific profiling build type.
- 3) changed the flags when I want some profiling, using only gprof and only platform using gcc...
I am referring to : http://www.cs.utah.edu/dept/old/texinfo/as/gprof.html#SEC2
I think CMake is using g++ to make the linkage isnt it ?
Therefore passing only the option -pg should be enough I guess...
However I end up with programs where all command line arguments are completely wrong...
What did I miss? do I really need to link against /lib/gcrt0.o like explicited for ld in the webpage for gprof ??
Does someone knows where I can find an example cmakelists.txt using gprof ? ;)
Is it a problem in my cmakelists or should I better ask some gprof guys ? ;)
Using CMake 2.4.2 on NetBSD 4.0, my command line looks like :
/usr/bin/c++ -pg -Wall -Wabi -g -D_DEBUG -I/home/user/includes -DMYCPPDEF -o CMakeFiles/Project.dir/Project.o -c /home/alex/DEV/AML/SDLut/Project.cc
/usr/bin/c++ -pg -Wall -Wabi -g -D_DEBUG -fPIC -pg -Wl,--warn-unresolved-symbols,--warn-once "CMakeFiles/Project.dir/Project.o" -o ../bin/Project -L/path_to_libs -lusedlibs -lpthread -Wl,-rpath,/path_to_libs
Thanks again for the help !
--
Asmodehn
On Tue, 13 Mar 2007 22:17:31 +0000
Filipe Sousa <natros at gmail.com> wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Brandon J. Van Every wrote:
> > Asmodehn Shade wrote:
> >> Hi everyone,
> >>
> >> I am currently in the process of starting to profile my software.
> >> It builds with cmake on unix, linux, and windows, more or less nicely ;)
> >> Assuming that I only want to use g++ with gprof right now, I wonder if there was a way to do that smartly in CMake,
> >> other than resetting the CXX_FLAGS and LINKER_FLAGS around all my CMakeLists.txt...
> >>
> >
> > You need to clean up your CMAKE_CXX_FLAGS and so forth so they are set
> > in 1 user controllable place.
>
> It's possible to create a new set of flags through CMAKE_BUILD_YTPE
>
> SET(CMAKE_BUILD_TYPE Profile)
> SET(CMAKE_CXX_FLAGS_PROFILE ...)
> SET(CMAKE_C_FLAGS_PROFILE ...)
>
> >> Is there already some functions handling that in CMake ?
> >>
> >
> > Not for profiling. Not for optimization either, other than "Release"
> > giving you sane defaults. Nothing for CPU architecture specification
> > either.
> >
> >
> >> - should I handle every profiler on different platform myself with some custom FindProfiler UseProfiler and so on ?
> >>
> >
> > Do you actually need to profile on all platforms, or is this
> > theoretical? If it's theoretical, I'd say skip the busywork.
> >
> >
> > Cheers,
> > Brandon Van Every
> >
> > _______________________________________________
> > CMake mailing list
> > CMake at cmake.org
> > http://www.cmake.org/mailman/listinfo/cmake
> >
>
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.6 (GNU/Linux)
>
> iD8DBQFF9yL7bQdNYqwwwCwRAk1pAJ9L3EKbBVPHN7wvxQZCzB/IwU//0ACglwUC
> 72EGxmUCXUwVb4DQ7mILNhc=
> =ZO9O
> -----END PGP SIGNATURE-----
> _______________________________________________
> CMake mailing list
> CMake at cmake.org
> http://www.cmake.org/mailman/listinfo/cmake
More information about the CMake
mailing list