Skip to content

More convenient way to choose between gdip and FSW

LRN requested to merge lrn/gdk-pixbuf:gdip into master

There are obvious advantages to enabling gdip on Windows - for example, it offers wmf support. However, enabling it also disables libtiff and libjpeg, using gdip-tiff and gdip-jpeg instead, even though there's no reason to believe gdip to be superior, not to mention the fact that it's proprietary.

This commit changes the buildsystem to allow enabling gdip for the formats that only gdip supports, without overriding free software libraries.

New option: -D gdip=true Enables gdip (always enabled on Windows by default, but can be disabled; on other platforms it is disabled automatically)

Renamed option: from: -D native_windows_loaders=false (used to enable gdip) to -D prefer_native_windows_loaders=true instructs meson to prefer gdip-loaders over free software loaders. This applies to jpeg (libjpeg), tiff (libtiff), bmp (gdk-pixbuf), ico (gdk-pixbuf) and gif (gdk-pixbuf) loaders. Does nothing when gdip=false.

gdip loaders have different names now, such as "gdip-bmp" instead of "bmp". This allows gdip loaders to be built into gdk-pixbuf selectively. Technically, this also allows both gdip- and non-gdip-loaders to be built (i.e. jpeg and gdip-jpeg), but that is not being used, since gdk-pixbuf has no built-in way to select which loader to use (gdk-pixbuf will use the first working module that it finds, and modules are sorted alphabetically). It should be technically possible to allow gdip loaders to be enabled or disabled selectively as well, but there's little reason to do so, as more is not less and all gdip loaders share one dependency.

Finally, this commit clarifies the names that builtin_loaders accepts.

Merge request reports