-
Notifications
You must be signed in to change notification settings - Fork 172
Build Resynthesizer from source
The build system for v3 is the meson build system.
(The build system on the master branch for GIMP 2 was automake.)
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.
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.
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
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.
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.
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.
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