Automatic recording of required packages...

Alexander Neundorf neundorf at kde.org
Mon Nov 1 21:11:54 CET 2010


On Monday 01 November 2010, Michael Jansen wrote:
> On Monday 01 November 2010 20:05:58 Alexander Neundorf wrote:
> > On Monday 01 November 2010, you wrote:
> > > > Also, I'd like us to stay as close to normal cmake behaviour as
> > > > possible, and to use as few own cmake modules as possible (...I know
> > > > I know). And the behaviour we are using with macro_log_feature()
> > > > would never be accepted into upstream cmake. It works around the
> > > > assumptions built into cmake.
> > >
> > > Then cmake is fundamentally broken and refuses to fix it. When checking
> > > for dependencies check for all of them and tell me the results all at
> > > once.
> > >
> > > This annoying missing dependency ping pong i used to play annoyed the
> > > hell out of me and many frustrated wannabe devs trying to compile kde.
> > >
> > > 1. call cmake with a long line of options. It complains of missing
> > > dependency a.
> >
> > Seriously, I don't know why a long line of options should be necessary.
> >
> > To help finding stuff, set the env.var CMAKE_PREFIX_PATH.
> > To change the buildtype, you can run "cmake-gui ." in the build dir later
> > on. What you usually want is a custom CMAKE_INSTALL_PREFIX. You can set
> > this via -D or via cmake-gui.
> >
> > What else ?
>
> Something along the lines:
>
> cmake /home/mjansen/kde/trunk/src/KDE/kdelibs
> 	-DCMAKE_SHARED_LINKER_FLAGS=' -Wl,-rpath-link,/kde/local/lib64 -Wl,-
> rpath-link,/kde/trunk/support/lib64'
> 	-DCMAKE_MODULE_LINKER_FLAGS=' -Wl,-rpath-link,/kde/local/lib64 -Wl,-
> rpath-link,/kde/trunk/support/lib64'
> 	 -DCMAKE_EXE_LINKER_FLAGS=' -Wl,-rpath-link,/kde/local/lib64 -Wl,-rpath-
> link,/kde/trunk/support/lib64'
> 	-DCMAKE_VERBOSE_MAKEFILE='1'
> 	 -DLIB_SUFFIX='64'
> 	 -DCMAKE_BUILD_TYPE='Debug'
> 	 -DCMAKE_CXXFLAGS='-Wall -pipe -O0'
> 	 -DCMAKE_INSTALL_PREFIX=/kde/trunk/kde 2>&1

This is mostly 64bit stuff.
Why do you need to specify it ?
I can vaguely remember there was maybe a discussion maybe 3 months ago, but I 
forgot the details.
In short, this shouldn't be necessary.
Was there a reason why we didn't fix it ?

Beside those flags, this leaves 
> -DCMAKE_VERBOSE_MAKEFILE='1'
Ok, if you really want it, you have to do it.
I assume you know that you can also set the environment variable VERBOSE to 1 
and have the same effect ?
I.e. VERBOSE=1 make
or also make VERBOSE = 1 

> 	 -DCMAKE_BUILD_TYPE='Debug'
Ok. You can also use "make edit_cache" or "cmake-gui ." to change it to Debug.

> 	 -DCMAKE_CXXFLAGS='-Wall -pipe -O0'
DebugFull also has no -O switch. It doesn't have -pipe.
You can also set the environment variable CXX flags at initial cmake time, 
cmake will pick CFLAGS and CXXFLAGS up and use them.


To the missing required dependencies:
maybe we should add a file README.dependencies or README.requirements or 
README.compiling at the top level of each module and list the requirements 
there. Or improve the "INSTALL" file a bit.
Currently it has 

"Build instructions can be found at
http://techbase.kde.org/Getting_Started/Build/KDE4"

Also recommended flags etc.
This sounds actually like something we really should do.
I.e. instead of waiting what the configure-process will tell you, you can look 
beforehand what you need.
This is something I actually expect when I install e.g. some web application, 
I want to see what it needs.
We should have that too.

Alex


More information about the Kde-buildsystem mailing list