On Sat, May 02, 2015 at 06:34:57PM -0700, Bryce Harrington wrote:
On Sat, May 02, 2015 at 11:39:34PM +0100, Ken Moffat wrote:
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.
Probably a bug in our cmake scripts. Please file a bug report and tag it 'build cmake'. (And attach a patch if you have an idea for a fix.)
I'll take another look later. As you can tell, I don't have much understanding of cmake but I'll look at a couple of other packages (I lied when I said I build cmake for harfbuzz, it's actually for graphite2) including some kde stuff.
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
What it's doing at that point is shelling out to pkg-config to see if gtkspell is installed.
pkg-config --cflags --libs gtkspell-2.0
Run ^ that on your commandline and see what it says. If you don't have it installed, install it. :-)
I know I don't have it installed. If it is now required, I assumed cmake would tell me.
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.
Since the pkg-config call failed earlier, these won't be defined.
The FindGtkSpell.cmake module is pretty simple; it just calls pkg-config. But if you *do* have gtkspell installed, then you may want to look there for debugging the problem.
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).
The gtk3 stuff for automake is still very much a work in progress. I believe Alex is mostly working on it on a branch. One day we'll bring all that in-tree and convert Inkscape over, but not this release. Gtk3 probably has nothing to do with your issue though.
I'll go back to playing with other things until you get nearer to a release ;)
Actually, it would be helpful if you can keep banging on this, because getting it working on *your* machine does in fact bring us closer to the release. :-)
Bryce
At the moment, it is late (3 a.m.). The system will eventually be thrown away, but it needs to do a few other things first. For gtkspell I'll try to take a look, but no promises.
ĸen