Build option ENABLE_COVERAGE must be set. There's also a secondary
option GENERATE_COVERAGE_DOCS which requires lcov and will generate
html docs of unit test coverage.
To generate coverage, first enable the cmake options, then build
QGIS. From the build directory, run "make qgis_coverage".
You can also add command line arguments to "make qgis_coverage" which
are forwarded on to ctest. This allows for skipping failing tests
which prevent generation of coverage docs. This is done by adding
the command line argument CMD_ARGS= to the "make qgis_coverage"
command. Eg,
make qgis_coverage CMD_ARGS="-E \"PalLabeling|LocalServer|AppStartup\"
will skip tests which match the listed expressions.
* move src/mapserver to src/server (IMHO better name and in sync with
python/server)
* rename cmake option WITH_MAPSERVER to WITH_SERVER
* rename define MAPSERVER_HAVE_PYTHON_PLUGINS to HAVE_SERVER_PYTHON_PLUGINS
Currently QGIS uses the 'classic' GEOS API that uses a global context.
This can conflict with libraries that would also use the global context
and potentially finalize it whereas QGIS will still use it later.
See https://groups.google.com/forum/#!topic/spatialite-users/9YSU6c5AVQ4 for
such an example of such a recent issue with Spatialite.
The _r API is available since GEOS 3.1.0, which is already an ancient GEOS
version. For example, old-old-stable Ubuntu (Lucid 10.04) and Debian (squeeze)
ship with GEOS 3.1.0 or later.
Such move has also been done in GDAL 1.11
(http://lists.osgeo.org/pipermail/gdal-dev/2013-August/036877.html)
and MapServer 7.0 (https://github.com/mapserver/mapserver/issues/4733)
There's no easy way unfortunately to check at compile time that you don't
use the non _r API. I have patched my geos_c.h header to #ifdef that API (quite
painfull to do..). A postprocessing check can be done however with :
objdump -T output/lib/*.so | grep -v Base | grep GEOS | grep -v _r | grep -v "_ZN" | grep -v GEOSversion
It should return nothing.
as cmake --help-module FindPythonLibs states
If you'd like to specify the installation of Python to use, you should modify the following cache variables:
PYTHON_LIBRARY - path to the python library
PYTHON_INCLUDE_PATH - path to where Python.h is found
(please note it is PYTHON_INCLUDE_PATH (deprecated) and not PYTHON_INCLUDE_DIR (new in 2.8) since we require cmake >= 2.6.2)
- Run 'make;make qsci-pap-src; make install' to update the default .pap file in source tree
- Run 'make;make qsci-pap-master[; make install]' for local-only .pap that overrides the default .pap (when testing new bindings)
- Update console to override default .pap if master.pap is available
- Include new qgis.core.NULL attribute defined in <src>/python/__init__.py for QPyNullVariant comparisons
- Update 11-month-old default .pap