[Qgis-developer] Cmake and the unhappy python build

Mark Coletti mcoletti at lychnobite.org
Tue Apr 10 16:13:11 EDT 2007


On Mon, Apr 09, 2007 at 05:53:40PM +0200, Martin Dobias wrote:
> On 4/7/07, Mark Coletti <mcoletti at lychnobite.org> wrote:
> >
> >mcoletti at mcolettib886:~/projects/qgis> make
> >[  0%] Built target svnversion
> >[  9%] Built target ui
> >[ 27%] Built target qgis_core
> >[ 33%] Built target qgis_gui
> >[ 65%] Built target qgis
> >[ 69%] Built target translations
> >make[2]: *** No rule to make target `src/core/libqgis_core.so', needed by 
> >`python/core/Makefile'.  Stop.
> >make[1]: *** [python/CMakeFiles/python.dir/all] Error 2
> >make: *** [all] Error 2
> 
> Hi Mark,
> 
> let's explain a bit how does process of building python bindings work:
> 1. wrapper source files are generated from *.sip files (using sip utility)
> 2. custom makefiles are created for building the python modules (using
> sip utility)
> 3. makefiles are run from cmake build system <-- here it comes to your 
> problem

  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.

> 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.

  [...]

> 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?


Cheers,

Mark



More information about the Qgis-developer mailing list