Inkscape Devlibs

From Inkscape Wiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Inkscape Devlibs are a bundle of libraries and tools used to compile Inkscape. It is hosted in a Launchpad repository.

Updating the C part of devlibs

The C part of devlibs can be directly copied from official development bundles. Do not copy unneeded stuff like .lib, .def, static libraries, examples or documentation.

Rebuilding the C++ part of devlibs

This is a description of the process I used to build the C++ libraries present in the devlibs. --Tweenk 00:50, 1 February 2010 (UTC)

  • Install the TDM-GCC build of MinGW into c:\tdm-gcc (or any other folder)
  • Install MSYS. Choose c:\tdm-gcc as your MinGW installation directory.
  • Install Doxygen. gtkmm wants it, otherwise it won't build.
  • Download current devlibs into C:\devlibs
  • Download sources for C++ libraries. Those are: libsigc++, glibmm, cairomm, pangomm, gtkmm. We use only header-only libraries from boost, so it doesn't need to be rebuilt - just copy the headers.
  • Create an empty directory C:\devlibs-update
  • Run MSYS. Set up paths the following way. The object of this is to build gtkmm using the glibmm you have just built.
$ export PKG_CONFIG_PATH=/c/devlibs-update/lib/pkgconfig:/c/devlibs/pkgconfig
$ PATH="/c/devlibs-update/bin:$PATH:/c/devlibs/bin"
$ PATH="$PATH:/c/Program Files/Doxygen/bin"
  • For each C++ library, configure, build and install it. Do it in the following order: libsigc++, glibmm, cairomm, pangomm, gtkmm. The commands should look like this:
$ CXXFLAGS="-O2" ./configure --prefix=/c/devlibs-update
$ make
$ make install
  • pangomm, cairomm and gtkmm seem to want Freetype2, but don't use pkg-config to find it. For them, do something like this. Note that those are backticks, not apostrophes.
$ FT2_CFLAGS=`pkg-config --cflags freetype2`
$ FT2_LIBS=`pkg-config --libs freetype2`
$ CXXFLAGS="-O2 $FT2_CFLAGS" LDFLAGS="$FT2_LIBS" ./configure --prefix=/c/devlibs-update
  • giomm (which is part of glibmm) has a defective main header which includes Unix-specific stuff that is not built on Windows. Comment out the following three includes in C:\devlibs-update\include\giomm-2.4\giomm.h. Otherwise gtkmm will not build.
#include <giomm/desktopappinfo.h>
#include <giomm/unixinputstream.h>
#include <giomm/unixoutputstream.h>
  • Prune C:\devlibs-update from unneeded stuff. In particular, you don't need static libraries, libtool files (.la), documentation and example programs. Note however that you DO need import libraries. They end with .dll.a - don't confuse them with static libraries that end with .a.
  • Copy the contents of C:\devlibs-update to C:\devlibs and enjoy.