On Tue, Apr 28, 2015 at 08:35:00PM -0700, Bryce Harrington wrote:
On Wed, Apr 29, 2015 at 02:51:15AM +0100, Ken Moffat wrote:
Modern versions of cmake seem to be much better than those from a few years ago (fewer weird dependencies if you want to use system versions of libraries, rather than (static versions of) those which might have been shipped in cmake's source). But documentation for builders (i.e. what options I can change, which extra dependencies exist which I might want to enable) seems to generally be absent.
True, cmake doesn't have as nice of a listing as automake. You can at least get a list of the variables and their defaults via:
cmake -L
Running that in Inkscape's root currently provides two or three dozen configurable settings.
Once you've run cmake, it produces a CMakeCache.txt file which has the latest detected parameters, along with textual descriptions of each item.
Tried it first in 0.91, but of course that doesn't have CMakeLists.txt except in src/2geom. Built bazaar, downloaded the current version.
Yes, cmake -L appears to know what it is doing (noted some things I have not installed, found current cairo and poppler). But everything else where I have invoked cmake from a build/ directory has dumped the Makefile into the build directory. Inkscape put it in the top level directory. Building seemed to be going well, until
[ 65%] Building CXX object src/CMakeFiles/inkscape.dir/ui/dialog/text-edit.cpp.o /scratch/ken/bazaar/inkscape/src/ui/dialog/text-edit.cpp:29:32: fatal error: gtkspell/gtkspell.h: No such file or directory compilation terminated.
And when I look back at the cmake output it says: -- checking for module 'gtkspell-2.0' -- package 'gtkspell-2.0' not found
but apparently finished ok, reporting -- Configuring done -- Generating done -- Build files have been written to: /scratch/ken/bazaar/inkscape
In CMakeCache.txt is has things like _GTKSPELL_VERSION:INTERNAL= _GTKSPELL_gtkspell-2.0_INCLUDEDIR:INTERNAL= _GTKSPELL_gtkspell-2.0_LIBDIR:INTERNAL= _GTKSPELL_gtkspell-2.0_PREFIX:INTERNAL= _GTKSPELL_gtkspell-2.0_VERSION:INTERNAL=
but there is no internal copy.
Looking at configure.ac there is still an option for gtk3, but nothing like that in the 'cmake -L' output and CMakeLists.txt only mentions GTK2 stuff : I did a DESTDIR gtk3 build of 0.91 earlier this evening (testing everything with gcc-5).
I'll go back to playing with other things until you get nearer to a release ;)
ĸen