[Qgis-developer] Cmake and the unhappy python build

Martin Dobias wonder.sk at gmail.com
Tue Apr 10 16:57:33 EDT 2007

On 4/10/07, Mark Coletti <mcoletti at lychnobite.org> wrote:
>   I'm curious to know whether the sip generated Makefiles will be
>   clobbered by cmake.
>   In any case, this is the only Makefile in the entire 'qgis/python'
>   hierarchy:
> mcoletti at mcolettib886:~/projects/qgis> find python/ -name "Makefile"
> python/Makefile
>   And it appears to be created via CMake:
> mcoletti at mcolettib886:~/projects/qgis> head python/Makefile
> # CMAKE generated file: DO NOT EDIT!
> # Generated by "Unix Makefiles" Generator, CMake Version 2.4
>   So there does not exist in that hierarchy any make files generated
>   via sip.

That's right - main makefile for python bindings (python/Makefile) is
generated from CMake. But makefiles which build python bindings should
be python/core/Makefile and python/gui/Makefile - something had to go
wrong if they don't exist. But then I don't understand this:

> > >make[2]: *** No rule to make target `src/core/libqgis_core.so', needed by
> > >`python/core/Makefile'.  Stop.

Which looks like python/core/Makefile exists...

> > I'm wondering why it complains that src/core/libqgis_core.so library
> > is missing - what's the name of the output file which is built in
> > qgis_core target?
>   Target from which Makefile?  Certainly not from the aforementioned
>   CMake generated Makefile found in 'qgis/python':
> mcoletti at mcolettib886:~/projects/qgis> grep qgis_core python/Makefile
> mcoletti at mcolettib886:~/projects/qgis>
>   I.e., ain't no such target in that Makefile.

libqgis_core.so is built by src/core/Makefile.

> > Btw. preferred way how to build QGIS with cmake is to use out of
> > source builds. There should be no difference but it doesn't pollute
> > sources with any generated files and it's simpler to do a complete
> > clean or have more builds at once (Debug/Release, with/without GRASS
> > etc.)
>   I'm confused by your phrase "out of source builds."  I'm using
>   subversion to check out the latest source from HEAD and am building
>   from that and not from source from a distribution tarball or from a
>   non-HEAD subversion branch.  Is that to what you're referring?

Out of source builds are mentioned on wiki:
Basically it means that all build related files (configuration,
makefiles, generated files, output files) are in a separate directory.


More information about the Qgis-developer mailing list