Re: [gtk-osx-users] [gtk-osx-devel] Previous method for building gtkmm3

On 12-12-01 10:49 PM, John Ralls wrote:
On Dec 1, 2012, at 9:36 PM, Jim Charlton <jim jimc dyndns org> wrote:

On 12-12-01 04:16 PM, John Ralls wrote:
On Dec 1, 2012, at 3:36 PM, Jim Charlton <jim jimc dyndns org> wrote:

On 12-11-06 06:47 AM, John Ralls wrote:
On Nov 5, 2012, at 9:40 PM, JIm Charlton <jim jimc dyndns org> wrote:

On 12-11-05 07:42 PM, John Ralls wrote:
On Nov 5, 2012, at 5:59 PM, JIm Charlton <jim jimc dyndns org> wrote:

On 12-10-25 09:15 AM, John Ralls wrote:
On Oct 23, 2012, at 8:20 PM, Jim Charlton <jim jimc dyndns org> wrote:

If I do
jhbuild buildone cairomm
using either modulesets-stable or unstable, it errors out saying FcPattern has not been declared.

I have a relatively pristine installation of the OS and Xcode.  Are we sure that Cairomm does not need FontConfig???  How does one fix this?
Yes. Those functions are protected with #ifdef CAIRO_HAS_FT_FONT. You've managed to confuse configure into defining it.

Given your previous messages, I think you need to make a clean start by deleting everything: jhbuild (in ~/Source), checkoutroot and prefix (by default in ~/gtk/src and ~/gtk/inst respectively), and ~/.jhbuild*. Run the following commands, in order, verbatim:
jhbuild bootstrap
jhbuild --moduleset='' build meta-gtk-osx-bootstrap meta-gtk-osx-gtk3 meta-gtk-osx-gtkmm

Do not *ever* edit ~/.jhbuildrc. You can use .jhbuildrc-custom to make just about any modification you can program in python. Don't mix modulesets, either: The dependency chains aren't interchangeable, though bootstrap.modules, invoked by `jhbuild bootstrap`, is special and installed in ~/Source/jhbuild/modulesets; there's only one of it. For example, to save some typing, you can create a .jhbuildrc-custom containing the following lines:

moduleset = ''
modules = ['meta-gtk-osx-bootstrap', 'meta-gtk-osx-gtk3', 'meta-gtk-osx-gtkmm']

after which you would need only say `jhbuild build` on the command line to accomplish the same task.

John Ralls


Sorry that I did not get back to you on your more precise instructions (install gtkmm3).  I tried it twice.  Each time it stopped during building of freetype saying that there was no target for " install".  I told it to ignore that... recalling that freetype was not even needed.  It went on to build fontconfig... something else that I thought was not needed.  Then it choked on atk (not atkmm).  Anyway... I have had some other hardware problems that are taking all of my time so I am not sure when I will get back to it. Perhaps I can try your more recent upgrade to the packages when I get a chance.
*Please* remember to CC the list!

If freedesktop is stopping then you're building stable, from tarballs. That means you're not following my instructions.

Sorry to hear about your hardware issues, that's a real PITA. Hope you can get them resolved quickly.

John Ralls

Sorry about not posting to the list but I was not sure it was pertinent to the list.  As for building from modulesets-stable... yes indeed, that is what I did as that is what you put in your 'verbatim' instructions.  I wondered about that.  If I ever get things organized here... I will try again.
Sorry, you're right. I did say to build stable, from scratch. But under stable, Freetype and FontConfig *were* required to build Pango, so by ignoring the install error (which was really a failure to run configure), Pango would fail to build.

With the updated stable modulesets, Freetype and friends (now includes Harfbuzz) build only if a later module has a dependency on PangoFc. The only one I'm aware of at this point is WebKit. Not only that, but I've added skip-autogen="never" to Freetype' module description and that seems to stop it skipping configure.

So, when you get your machine sorted out, try again.

John Ralls

Hi John:

I finally got some new hardware and tried your procedure again
jhbuild bootstrap
jhbuild --moduleset='' build meta-gtk-osx-bootstrap meta-gtk-osx-gtk3 meta-gtk-osx-gtkmm

I get the following failure building cairomm.  It still looks like it is trying to use fontconfig... or something.

*** Building cairomm *** [31/35]
make  all-recursive
Making all in cairomm
/bin/sh ../libtool  --tag=CXX   --mode=compile /Applications/ -DHAVE_CONFIG_H   -I.. -I.. -I. -I/Users/jim/gtk/inst/include/cairo -I/Users/jim/gtk/inst/include/glib-2.0 -I/Users/jim/gtk/inst/lib/glib-2.0/include -I/Users/jim/gtk/inst/include/pixman-1 -I/Users/jim/gtk/inst/include/libpng15 -I/Users/jim/gtk/inst/include/sigc++-2.0 -I/Users/jim/gtk/inst/lib/sigc++-2.0/include -I/usr/X11/include/freetype2 -I/usr/X11/include -I/Users/jim/gtk/inst/include -Wall -arch x86_64 -mmacosx-version-min=10.7 -MT context.lo -MD -MP -MF .deps/context.Tpo -c -o context.lo
libtool: compile: /Applications/ -DHAVE_CONFIG_H -I.. -I.. -I. -I/Users/jim/gtk/inst/include/cairo -I/Users/jim/gtk/inst/include/glib-2.0 -I/Users/jim/gtk/inst/lib/glib-2.0/include -I/Users/jim/gtk/inst/include/pixman-1 -I/Users/jim/gtk/inst/include/libpng15 -I/Users/jim/gtk/inst/include/sigc++-2.0 -I/Users/jim/gtk/inst/lib/sigc++-2.0/include -I/usr/X11/include/freetype2 -I/usr/X11/include -I/Users/jim/gtk/inst/include -Wall -arch x86_64 -mmacosx-version-min=10.7 -MT context.lo -MD -MP -MF .deps/context.Tpo -c  -fno-common -DPIC -o .libs/context.o
In file included from ../cairomm/surface.h:37,
                 from ../cairomm/context.h:24,
../cairomm/fontoptions.h:151: error: 'FcPattern' has not been declared
In file included from ../cairomm/context.h:25,
../cairomm/fontface.h:477: error: 'FcPattern' has not been declared
../cairomm/fontface.h:481: error: expected `)' before '*' token
make[2]: *** [context.lo] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2
*** Error during phase build of cairomm: ########## Error running make   *** [31/35]

I don't know what's going on with that. It doesn't happen when I build gtkmm. Perhaps there's something in your environment that's confusing it.

Note that the FcPattern declaration is protected inside #ifdef CAIRO_HAS_FT_FONT. That's not getting defined in my build; why is it in yours? The other weird thing is the -I/usr/X11/include/freetype2 -I/usr/X11/include in that compile command. Where's that coming from?

John Ralls

Interesting.  My machine has /usr/X11/include/freetype2/freetype/<files> and /usr/X11/include/ft2build.h on it.  If I remove the freetype2 directory and then completely rebuild gtkmm, I get complaints from ft2build.h.  If I remove ft2build.h as well and completely rebuild gtk, then I get a complaint about the missing ft2build.h.  So I think you have it right!  Somehow the gtkmm build scripts know that freetype exists on my machine and is trying to use it.  How does it know?
/usr/X11 is a standard path, so it's not surprising that configure finds it.

You may need to add
append_autogenargs("cairo", "--enable-ft=no --enable-fc=no")
to your .jhbuildrc-custom.

John Ralls

Yes. Before I got your message I just waited for the cairo build to fail, exited to a jhbuild shell, configured with --prefix=<...> --libdr=<...> and --enable-ft=no, returned to the build and continued to build. The build then finished just fine. I am sure your suggestion would work as well.... but I have not tried it yet.

Thanks for all of your help...


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]