KDE/kdelibs/cmake/modules

David Faure faure at kde.org
Thu Feb 16 15:47:46 CET 2006


On Thursday 16 February 2006 15:35, Brad King wrote:
> David Faure wrote:
> > Because the gcc command line says -Ibuild/kabc -Ibuild/kabc/kab,
> > the #include "addressbook.moc" from kab/addressbook.cc still picks up the moc
> > file in build/kabc.
> > 
> > -I${CURRENT_BINARY_DIR} should be first but I don't know how to make that
> > happen. Editing include_directories() doesn't help, since that stuff is appended to
> > a lot of other stuff that comes before automatically (somehow...).
> > 
> > Hmm, is the include_directories of CMakeLists.txt in parent directories propagated to
> > its subdirs? It looks like it (in which case we can clean up a lot of include_directories
> > statements) - but in which case there's no way to do what I'm looking for.
> 
> Yes, include directories are inherited, but you can use the BEFORE 
> option to prepend.  See the documentation for the include_directories 
> command.
> 
> INCLUDE_DIRECTORIES
>     Add include directories to the build.
> 
>       INCLUDE_DIRECTORIES([BEFORE] dir1 dir2 ...)
> 
>     Add the given directories to those searched by the compiler for
>     include files.  If BEFORE is specified, the directories are prepended
>     onto the current list of directories instead of appended.

Ah. But could we make it so that  -I${CURRENT_BINARY_DIR} is first for any
subdir of kdelibs? I wouldn't want to require that every CMakeLists.txt has to say so...

If I put that in kdelibs/CMakeLists.txt it will only make subdirs inherit "build/kdelibs" 
but not "build/kdelibs/kio/kfile", when compiling from kdelibs/kio/kfile, right?

I'm surprised that "current source dir" and "current binary dir" aren't automatically
in the include dirs - and aren't first in that list, if they are. It seems common sense
that #include "foo.h" or "foo.generated" should look in the current source/binary dir first.

-- 
David Faure, faure at kde.org, sponsored by Trolltech to work on KDE,
Konqueror (http://www.konqueror.org), and KOffice (http://www.koffice.org).


More information about the Kde-buildsystem mailing list