Re: need some advice for gtkmm on windows



> > I am in the process of porting a POSIX application to Windows, and
> > would like some advice on what is currently the best route to take.
> > 
> > The application uses fork/execvp/select/pipe, so my first guess is
> > that I should probably use cygwin instead of mingw. However, I would
> > still like to use the win32 backend of gtk, rather than the x11
> > one. Is that at present possible & reliable at all? If not, are there
> > any other options besides cygwin to help me get around the unix
> > process/pipe handling on windows?

I finally managed to make this work. For future reference, let me
summarise what I did.  Remember that the constraint was that I wanted
to keep using fork/execvp/select/pipe, so I had to use cygwin, but I
did not want to run an X server (i.e. I wanted to use the Win32
backend).

So I compiled the whole set of gtk & gtkmm libraries and related
dependencies from scratch under cygwin, making sure to set
'--enable-xlib=no' for the cairo configure stage and to set
'--without-x --with-included-modules=y' for pango. I also used
'--without-x' in the gtk configure stage. A crucial step was to

   export LIBS=-no-undefined

for all libraries, otherwise things would simply not link correctly at
various stages. I also had to fix a few other bugs:

  pango:  needed a "[_]*" in the --export-symbols-regex somewhere to
          ensure that all relevant symbols got exported

  gtk:    had to fix one WINDRES in gdk/win32/rc/Makefile (was unset,
          should be "windres")

          had to kill a 'LD_EXPORT_...' flag in gdk/Makefile (chose to
          keep the regex one and remove the use of ./gdk.def).

          had to fix an issue with the deprecated
          gtk_scale_button_set_orientation, re-enable in .h file.

I then had to install, by hand, a 

  /usr/local/etc/pango/pango.aliases

file, otherwise no fonts would be resolved and all symbols would
become rectangles.

Version info:

  libsigc++  2.2.3
  glib       2.20.0
  pixman     0.14.0
  cairo      1.8.0 (problems with later versions)
  pango      1.24.0
  atk        1.26.0
  gtk+       2.16.0
  glibmm     2.18.2
  cairomm    1.6.4
  pangomm    2.24.0
  gtkmm      2.14.3

If anyone needs details on how to distribute the resulting binary
without requiring a full Cygwin install, let me know.

Cheers,
Kasper


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