Skip to content

Build Resynthesizer from source

Lloyd Konneker edited this page May 18, 2025 · 5 revisions

The build system

The build system for v3 is the meson build system.

(The build system on the master branch for GIMP 2 was automake.)

Building on Linux

To build and install a clean distribution to the shared GIMP directories. The build is ordinary, following common meson tutorials...

Clone the repo. Change directory to the top of the repo. Run in a terminal/shell:

meson setup resynthesizerBuild
cd resynthesizerBuild
meson compile --verbose -j 12
meson install

Attention Ubuntu Users! On Ubuntu, the default installation path is /usr/local/lib/gimp/2.0/plug-ins and you may need to add it manually. To do so, open GIMP and access Edit>Preferences>Folders>Plugins>/usr/local/lib/gimp/2.0/plug-ins to include the plugin path.

Building on other platforms

There are no instructions here, nor build scripts in the repository, to build for Windows or Mac OSX.

The meson build system will run on those platforms. But Resynthesizer is not stand alone, but has dependencies. Building the dependencies on other platforms can be a problem.

Github supports building and releasing packages for these platforms. I myself can't do that until I learn more about Github, and until there is a runner image that has libgimp-3.0-dev installed. I don't want to build GIMP in my Github job just to be able to build the Resynthesizer.

Dependencies

Tool chain and dependencies

When you build, it may complain of missing packages. Please install them, for example:

sudo apt-get update
sudo apt-get install meson libgimp3.0-dev

Explanation

To build Resynthesizer (or any GIMP plugin in the C language) you need these developer packages:

  • build-essential - all the tools to build a Debian package ( gcc and make.)
  • meson
  • intltool (for i18n internationalization, when optionally installed)
  • libgimp3.0-dev - libraries that the Resynthesizer engine links to.

Note: The control panel plugin, since Resynthesizer v3, no longer depends on Gtk for GUI. Instead, the GUI is provided by GIMP using Gtk.

Runtime dependencies

The Resynthesizer plugin suite depends directly on GIMP, and transitively on GLib and Gtk.

Resynthesizer v3 outer plugins no longer depend on Python, only on the Scheme interpreter embedded in GIMP.

The Resynthesizer library (not the GIMP plugins) can be built without any runtime dependencies on GLib.

Further Customization

Configuring Resynthesizer

Build options use conventional meson techniques. See meson-options.txt.

One feature of the engine is "threads." Threading is not the default.
Threading does NOT help the performance as much as you might expect. Threading may give different, sometimes poor, results. Threading makes the engine non-deterministic, i.e. the results are not reproducible from run to run. Threading uses GLib threads but other people have been able to compile Resynthesizer with POSIX threads.

Another feature is "GLib dependence". Using Glib is the default. GLib provides platform independence. The engine plugin uses GLib. There is some unmaintained conditionally compilation without GLib.

Localization

Contributors have localized (internationalized, i18n) the plugins.

There is a build option to install localization data. For now, it defaults to "false", i.e. not installed. For now, i18n is broken, until a fix to GIMP that supports i18n for Scheme plugins.

To build for another spoken language, you may also need to create a symbolic link to your preferred language file, for example:

sudo ln -s /usr/local/share/locale/fr/LC_MESSAGES/resynthesizer.mo /usr/share/locale/fr/LC_MESSAGES/resynthesizer.mo
Clone this wiki locally