Draft: prepare PKGBUILD for GIMP 3.0.0
This converts part of the old build process to the new meson system and other needed deps for 3.0.0.
MR is still marked as a draft because so far we only have a release candidate
These are all the available meson options:
Click to see the long list of meson options
[
{
"name": "build.cmake_prefix_path",
"value": [],
"section": "core",
"machine": "build",
"type": "array",
"description": "List of additional prefixes for cmake to search"
},
{
"name": "build.pkg_config_path",
"value": [],
"section": "core",
"machine": "build",
"type": "array",
"description": "List of additional paths for pkg-config to search"
},
{
"name": "auto_features",
"value": "auto",
"section": "core",
"machine": "any",
"choices": [
"enabled",
"disabled",
"auto"
],
"type": "combo",
"description": "Override value of all 'auto' features"
},
{
"name": "backend",
"value": "ninja",
"section": "core",
"machine": "any",
"choices": [
"ninja",
"vs",
"vs2010",
"vs2012",
"vs2013",
"vs2015",
"vs2017",
"vs2019",
"vs2022",
"xcode",
"none"
],
"type": "combo",
"description": "Backend to use"
},
{
"name": "buildtype",
"value": "debugoptimized",
"section": "core",
"machine": "any",
"choices": [
"plain",
"debug",
"debugoptimized",
"release",
"minsize",
"custom"
],
"type": "combo",
"description": "Build type to use"
},
{
"name": "cmake_prefix_path",
"value": [],
"section": "core",
"machine": "host",
"type": "array",
"description": "List of additional prefixes for cmake to search"
},
{
"name": "debug",
"value": true,
"section": "core",
"machine": "any",
"type": "boolean",
"description": "Enable debug symbols and other information"
},
{
"name": "default_both_libraries",
"value": "shared",
"section": "core",
"machine": "any",
"choices": [
"shared",
"static",
"auto"
],
"type": "combo",
"description": "Default library type for both_libraries"
},
{
"name": "default_library",
"value": "shared",
"section": "core",
"machine": "any",
"choices": [
"shared",
"static",
"both"
],
"type": "combo",
"description": "Default library type"
},
{
"name": "force_fallback_for",
"value": [],
"section": "core",
"machine": "any",
"type": "array",
"description": "Force fallback for those subprojects"
},
{
"name": "genvslite",
"value": "vs2022",
"section": "core",
"machine": "any",
"choices": [
"vs2022"
],
"type": "combo",
"description": "Setup multiple buildtype-suffixed ninja-backend build directories, and a [builddir]_vs containing a Visual Studio meta-backend with multiple configurations that calls into them"
},
{
"name": "install_umask",
"value": 18,
"section": "core",
"machine": "any",
"type": "integer",
"description": "Default umask to apply on permissions of installed files"
},
{
"name": "layout",
"value": "mirror",
"section": "core",
"machine": "any",
"choices": [
"mirror",
"flat"
],
"type": "combo",
"description": "Build directory layout"
},
{
"name": "optimization",
"value": "2",
"section": "core",
"machine": "any",
"choices": [
"plain",
"0",
"g",
"1",
"2",
"3",
"s"
],
"type": "combo",
"description": "Optimization level"
},
{
"name": "pkg_config_path",
"value": [],
"section": "core",
"machine": "host",
"type": "array",
"description": "List of additional paths for pkg-config to search"
},
{
"name": "pkgconfig.relocatable",
"value": false,
"section": "core",
"machine": "any",
"type": "boolean",
"description": "Generate pkgconfig files as relocatable"
},
{
"name": "prefer_static",
"value": false,
"section": "core",
"machine": "any",
"type": "boolean",
"description": "Whether to try static linking before shared linking"
},
{
"name": "python.allow_limited_api",
"value": true,
"section": "core",
"machine": "any",
"type": "boolean",
"description": "Whether to allow use of the Python Limited API"
},
{
"name": "python.bytecompile",
"value": 0,
"section": "core",
"machine": "any",
"type": "integer",
"description": "Whether to compile bytecode"
},
{
"name": "python.install_env",
"value": "prefix",
"section": "core",
"machine": "any",
"choices": [
"auto",
"prefix",
"system",
"venv"
],
"type": "combo",
"description": "Which python environment to install to"
},
{
"name": "python.platlibdir",
"value": "",
"section": "core",
"machine": "any",
"type": "string",
"description": "Directory for site-specific, platform-specific files."
},
{
"name": "python.purelibdir",
"value": "",
"section": "core",
"machine": "any",
"type": "string",
"description": "Directory for site-specific, non-platform-specific files."
},
{
"name": "strip",
"value": false,
"section": "core",
"machine": "any",
"type": "boolean",
"description": "Strip targets on install"
},
{
"name": "unity",
"value": "off",
"section": "core",
"machine": "any",
"choices": [
"on",
"off",
"subprojects"
],
"type": "combo",
"description": "Unity build"
},
{
"name": "unity_size",
"value": 4,
"section": "core",
"machine": "any",
"type": "integer",
"description": "Unity block size"
},
{
"name": "vsenv",
"value": false,
"section": "core",
"machine": "any",
"type": "boolean",
"description": "Activate Visual Studio environment"
},
{
"name": "warning_level",
"value": "1",
"section": "core",
"machine": "any",
"choices": [
"0",
"1",
"2",
"3",
"everything"
],
"type": "combo",
"description": "Compiler warning level to use"
},
{
"name": "werror",
"value": false,
"section": "core",
"machine": "any",
"type": "boolean",
"description": "Treat warnings as errors"
},
{
"name": "wrap_mode",
"value": "default",
"section": "core",
"machine": "any",
"choices": [
"default",
"nofallback",
"nodownload",
"forcefallback",
"nopromote"
],
"type": "combo",
"description": "Wrap mode"
},
{
"name": "backend_max_links",
"value": 0,
"section": "backend",
"machine": "any",
"type": "integer",
"description": "Maximum number of linker processes to run or 0 for no limit"
},
{
"name": "b_asneeded",
"value": true,
"section": "base",
"machine": "any",
"type": "boolean",
"description": "Use -Wl,--as-needed when linking"
},
{
"name": "b_colorout",
"value": "always",
"section": "base",
"machine": "any",
"choices": [
"auto",
"always",
"never"
],
"type": "combo",
"description": "Use colored output"
},
{
"name": "b_coverage",
"value": false,
"section": "base",
"machine": "any",
"type": "boolean",
"description": "Enable coverage tracking."
},
{
"name": "b_lto",
"value": false,
"section": "base",
"machine": "any",
"type": "boolean",
"description": "Use link time optimization"
},
{
"name": "b_lto_threads",
"value": 0,
"section": "base",
"machine": "any",
"type": "integer",
"description": "Use multiple threads for Link Time Optimization"
},
{
"name": "b_lundef",
"value": true,
"section": "base",
"machine": "any",
"type": "boolean",
"description": "Use -Wl,--no-undefined when linking"
},
{
"name": "b_ndebug",
"value": "false",
"section": "base",
"machine": "any",
"choices": [
"true",
"false",
"if-release"
],
"type": "combo",
"description": "Disable asserts"
},
{
"name": "b_pch",
"value": true,
"section": "base",
"machine": "any",
"type": "boolean",
"description": "Use precompiled headers"
},
{
"name": "b_pgo",
"value": "off",
"section": "base",
"machine": "any",
"choices": [
"off",
"generate",
"use"
],
"type": "combo",
"description": "Use profile guided optimization"
},
{
"name": "b_pie",
"value": false,
"section": "base",
"machine": "any",
"type": "boolean",
"description": "Build executables as position independent"
},
{
"name": "b_sanitize",
"value": "none",
"section": "base",
"machine": "any",
"choices": [
"none",
"address",
"thread",
"undefined",
"memory",
"leak",
"address,undefined"
],
"type": "combo",
"description": "Code sanitizer to use"
},
{
"name": "b_staticpic",
"value": true,
"section": "base",
"machine": "any",
"type": "boolean",
"description": "Build static libraries as position independent"
},
{
"name": "build.c_args",
"value": [],
"section": "compiler",
"machine": "build",
"type": "array",
"description": "Extra arguments passed to the c compiler"
},
{
"name": "build.c_link_args",
"value": [],
"section": "compiler",
"machine": "build",
"type": "array",
"description": "Extra arguments passed to the c linker"
},
{
"name": "build.c_std",
"value": "none",
"section": "compiler",
"machine": "build",
"choices": [
"none",
"c89",
"c99",
"c11",
"c17",
"c18",
"c2x",
"c23",
"gnu89",
"gnu99",
"gnu11",
"gnu17",
"gnu18",
"gnu2x",
"gnu23"
],
"type": "combo",
"description": "C language standard to use"
},
{
"name": "build.cpp_args",
"value": [],
"section": "compiler",
"machine": "build",
"type": "array",
"description": "Extra arguments passed to the cpp compiler"
},
{
"name": "build.cpp_debugstl",
"value": false,
"section": "compiler",
"machine": "build",
"type": "boolean",
"description": "STL debug mode"
},
{
"name": "build.cpp_eh",
"value": "default",
"section": "compiler",
"machine": "build",
"choices": [
"none",
"default",
"a",
"s",
"sc"
],
"type": "combo",
"description": "C++ exception handling type."
},
{
"name": "build.cpp_link_args",
"value": [],
"section": "compiler",
"machine": "build",
"type": "array",
"description": "Extra arguments passed to the cpp linker"
},
{
"name": "build.cpp_rtti",
"value": true,
"section": "compiler",
"machine": "build",
"type": "boolean",
"description": "Enable RTTI"
},
{
"name": "build.cpp_std",
"value": "gnu++14",
"section": "compiler",
"machine": "build",
"choices": [
"none",
"c++98",
"c++03",
"c++11",
"c++14",
"c++17",
"c++1z",
"c++2a",
"c++20",
"c++23",
"c++26",
"gnu++98",
"gnu++03",
"gnu++11",
"gnu++14",
"gnu++17",
"gnu++1z",
"gnu++2a",
"gnu++20",
"gnu++23",
"gnu++26"
],
"type": "combo",
"description": "C++ language standard to use"
},
{
"name": "c_args",
"value": [],
"section": "compiler",
"machine": "host",
"type": "array",
"description": "Extra arguments passed to the c compiler"
},
{
"name": "c_link_args",
"value": [],
"section": "compiler",
"machine": "host",
"type": "array",
"description": "Extra arguments passed to the c linker"
},
{
"name": "c_std",
"value": "none",
"section": "compiler",
"machine": "host",
"choices": [
"none",
"c89",
"c99",
"c11",
"c17",
"c18",
"c2x",
"c23",
"gnu89",
"gnu99",
"gnu11",
"gnu17",
"gnu18",
"gnu2x",
"gnu23"
],
"type": "combo",
"description": "C language standard to use"
},
{
"name": "cpp_args",
"value": [],
"section": "compiler",
"machine": "host",
"type": "array",
"description": "Extra arguments passed to the cpp compiler"
},
{
"name": "cpp_debugstl",
"value": false,
"section": "compiler",
"machine": "host",
"type": "boolean",
"description": "STL debug mode"
},
{
"name": "cpp_eh",
"value": "default",
"section": "compiler",
"machine": "host",
"choices": [
"none",
"default",
"a",
"s",
"sc"
],
"type": "combo",
"description": "C++ exception handling type."
},
{
"name": "cpp_link_args",
"value": [],
"section": "compiler",
"machine": "host",
"type": "array",
"description": "Extra arguments passed to the cpp linker"
},
{
"name": "cpp_rtti",
"value": true,
"section": "compiler",
"machine": "host",
"type": "boolean",
"description": "Enable RTTI"
},
{
"name": "cpp_std",
"value": "gnu++14",
"section": "compiler",
"machine": "host",
"choices": [
"none",
"c++98",
"c++03",
"c++11",
"c++14",
"c++17",
"c++1z",
"c++2a",
"c++20",
"c++23",
"c++26",
"gnu++98",
"gnu++03",
"gnu++11",
"gnu++14",
"gnu++17",
"gnu++1z",
"gnu++2a",
"gnu++20",
"gnu++23",
"gnu++26"
],
"type": "combo",
"description": "C++ language standard to use"
},
{
"name": "bindir",
"value": "bin",
"section": "directory",
"machine": "any",
"type": "string",
"description": "Executable directory"
},
{
"name": "datadir",
"value": "share",
"section": "directory",
"machine": "any",
"type": "string",
"description": "Data file directory"
},
{
"name": "includedir",
"value": "include",
"section": "directory",
"machine": "any",
"type": "string",
"description": "Header file directory"
},
{
"name": "infodir",
"value": "share/info",
"section": "directory",
"machine": "any",
"type": "string",
"description": "Info page directory"
},
{
"name": "libdir",
"value": "lib",
"section": "directory",
"machine": "any",
"type": "string",
"description": "Library directory"
},
{
"name": "libexecdir",
"value": "libexec",
"section": "directory",
"machine": "any",
"type": "string",
"description": "Library executable directory"
},
{
"name": "licensedir",
"value": "",
"section": "directory",
"machine": "any",
"type": "string",
"description": "Licenses directory"
},
{
"name": "localedir",
"value": "share/locale",
"section": "directory",
"machine": "any",
"type": "string",
"description": "Locale data directory"
},
{
"name": "localstatedir",
"value": "/var/local",
"section": "directory",
"machine": "any",
"type": "string",
"description": "Localstate data directory"
},
{
"name": "mandir",
"value": "share/man",
"section": "directory",
"machine": "any",
"type": "string",
"description": "Manual page directory"
},
{
"name": "prefix",
"value": "/usr/local",
"section": "directory",
"machine": "any",
"type": "string",
"description": "Installation prefix"
},
{
"name": "sbindir",
"value": "sbin",
"section": "directory",
"machine": "any",
"type": "string",
"description": "System executable directory"
},
{
"name": "sharedstatedir",
"value": "/var/local/lib",
"section": "directory",
"machine": "any",
"type": "string",
"description": "Architecture-independent data directory"
},
{
"name": "sysconfdir",
"value": "etc",
"section": "directory",
"machine": "any",
"type": "string",
"description": "Sysconf data directory"
},
{
"name": "aa",
"value": "auto",
"section": "user",
"machine": "any",
"choices": [
"enabled",
"disabled",
"auto"
],
"type": "combo",
"description": "AA plugin"
},
{
"name": "alsa",
"value": "auto",
"section": "user",
"machine": "any",
"choices": [
"enabled",
"disabled",
"auto"
],
"type": "combo",
"description": "Alsa support in midi input controller"
},
{
"name": "ansi",
"value": false,
"section": "user",
"machine": "any",
"type": "boolean",
"description": "Turn on strict ansi"
},
{
"name": "appdata-test",
"value": "auto",
"section": "user",
"machine": "any",
"choices": [
"enabled",
"disabled",
"auto"
],
"type": "combo",
"description": "Validate the appdata file"
},
{
"name": "bug-report-url",
"value": "",
"section": "user",
"machine": "any",
"type": "string",
"description": "URL used by the debug dialog to report bugs"
},
{
"name": "build-id",
"value": "unknown",
"section": "user",
"machine": "any",
"type": "string",
"description": "Unique string used to define your build"
},
{
"name": "cairo-pdf",
"value": "auto",
"section": "user",
"machine": "any",
"choices": [
"enabled",
"disabled",
"auto"
],
"type": "combo",
"description": "Cairo-pdf support"
},
{
"name": "can-crosscompile-gir",
"value": false,
"section": "user",
"machine": "any",
"type": "boolean",
"description": "GIR is buildable even if crosscompiling"
},
{
"name": "check-update",
"value": "platform-default",
"section": "user",
"machine": "any",
"choices": [
"yes",
"no",
"platform-default"
],
"type": "combo",
"description": "GIMP will look up new version availability on startup"
},
{
"name": "directx-sdk-dir",
"value": "",
"section": "user",
"machine": "any",
"type": "string",
"description": "Prefix where the DirectX SDK is installed(optional)"
},
{
"name": "enable-console-bin",
"value": true,
"section": "user",
"machine": "any",
"type": "boolean",
"description": "Build a console-only binary which does not link GTK"
},
{
"name": "enable-default-bin",
"value": "auto",
"section": "user",
"machine": "any",
"choices": [
"enabled",
"disabled",
"auto"
],
"type": "combo",
"description": "Install unversioned symlinks pointing to versioned executables (on UNIX) or unversioned duplicates (on Windows)"
},
{
"name": "enable-multiproc",
"value": true,
"section": "user",
"machine": "any",
"type": "boolean",
"description": "Support for multiple processors"
},
{
"name": "fits",
"value": "auto",
"section": "user",
"machine": "any",
"choices": [
"enabled",
"disabled",
"auto"
],
"type": "combo",
"description": "Support for loading/exporting FITS images"
},
{
"name": "g-ir-doc",
"value": false,
"section": "user",
"machine": "any",
"type": "boolean",
"description": "Build developer documentation for introspected API"
},
{
"name": "ghostscript",
"value": "auto",
"section": "user",
"machine": "any",
"choices": [
"enabled",
"disabled",
"auto"
],
"type": "combo",
"description": "Ghostscript support"
},
{
"name": "gi-docgen",
"value": "auto",
"section": "user",
"machine": "any",
"choices": [
"enabled",
"disabled",
"auto"
],
"type": "combo",
"description": "Build developer documentation (uses gi-docgen)"
},
{
"name": "gimpdir",
"value": "",
"section": "user",
"machine": "any",
"type": "string",
"description": "Change default gimpdir from ~/.config/GIMP/2.9 to ~/.config/DIR/2.9 (if relative), or to DIR (if absolute)"
},
{
"name": "gudev",
"value": "auto",
"section": "user",
"machine": "any",
"choices": [
"enabled",
"disabled",
"auto"
],
"type": "combo",
"description": "Gudev support"
},
{
"name": "headless-tests",
"value": "auto",
"section": "user",
"machine": "any",
"choices": [
"enabled",
"disabled",
"auto"
],
"type": "combo",
"description": "Use xvfb-run/dbus-run-session for UI-dependent automatic tests"
},
{
"name": "heif",
"value": "auto",
"section": "user",
"machine": "any",
"choices": [
"enabled",
"disabled",
"auto"
],
"type": "combo",
"description": "HEIF support"
},
{
"name": "icc-directory",
"value": "",
"section": "user",
"machine": "any",
"type": "string",
"description": "Path to default color profiles for this system"
},
{
"name": "ilbm",
"value": "auto",
"section": "user",
"machine": "any",
"choices": [
"enabled",
"disabled",
"auto"
],
"type": "combo",
"description": "Amiga IFF support"
},
{
"name": "javascript",
"value": "auto",
"section": "user",
"machine": "any",
"choices": [
"enabled",
"disabled",
"auto"
],
"type": "combo",
"description": "Install Javascript plug-ins"
},
{
"name": "jpeg-xl",
"value": "auto",
"section": "user",
"machine": "any",
"choices": [
"enabled",
"disabled",
"auto"
],
"type": "combo",
"description": "JPEG XL support"
},
{
"name": "jpeg2000",
"value": "auto",
"section": "user",
"machine": "any",
"choices": [
"enabled",
"disabled",
"auto"
],
"type": "combo",
"description": "Jpeg-2000 support"
},
{
"name": "libbacktrace",
"value": true,
"section": "user",
"machine": "any",
"type": "boolean",
"description": "Build with libbacktrace support"
},
{
"name": "libunwind",
"value": true,
"section": "user",
"machine": "any",
"type": "boolean",
"description": "Build with libunwind for backtrace"
},
{
"name": "linux-input",
"value": "auto",
"section": "user",
"machine": "any",
"choices": [
"enabled",
"disabled",
"auto"
],
"type": "combo",
"description": "Linux input event controller module"
},
{
"name": "lua",
"value": false,
"section": "user",
"machine": "any",
"type": "boolean",
"description": "Install Lua plug-ins (experimental)"
},
{
"name": "mng",
"value": "auto",
"section": "user",
"machine": "any",
"choices": [
"enabled",
"disabled",
"auto"
],
"type": "combo",
"description": "Mng support"
},
{
"name": "ms-store",
"value": false,
"section": "user",
"machine": "any",
"type": "boolean",
"description": "Generate files needed for the Microsoft Store .msixupload and/or .msixbundle"
},
{
"name": "openexr",
"value": "auto",
"section": "user",
"machine": "any",
"choices": [
"enabled",
"disabled",
"auto"
],
"type": "combo",
"description": "Openexr support"
},
{
"name": "openmp",
"value": "auto",
"section": "user",
"machine": "any",
"choices": [
"enabled",
"disabled",
"auto"
],
"type": "combo",
"description": "OpenMP support"
},
{
"name": "print",
"value": true,
"section": "user",
"machine": "any",
"type": "boolean",
"description": "Print support"
},
{
"name": "profiling",
"value": false,
"section": "user",
"machine": "any",
"type": "boolean",
"description": "Enable profiling"
},
{
"name": "relocatable-bundle",
"value": "platform-default",
"section": "user",
"machine": "any",
"choices": [
"yes",
"no",
"platform-default"
],
"type": "combo",
"description": "build with resources considered bundled under the same prefix"
},
{
"name": "revision",
"value": 0,
"section": "user",
"machine": "any",
"type": "integer",
"description": "Revision increment for a package"
},
{
"name": "shmem-type",
"value": "auto",
"section": "user",
"machine": "any",
"choices": [
"none",
"sysv",
"posix",
"win32",
"auto"
],
"type": "combo",
"description": "Shared memory transport type"
},
{
"name": "vala",
"value": "auto",
"section": "user",
"machine": "any",
"choices": [
"enabled",
"disabled",
"auto"
],
"type": "combo",
"description": "Build VAPI and Vala plugins"
},
{
"name": "vector-icons",
"value": true,
"section": "user",
"machine": "any",
"type": "boolean",
"description": "Use vector icons rather than raster ones"
},
{
"name": "webkit-unmaintained",
"value": false,
"section": "user",
"machine": "any",
"type": "boolean",
"description": "Help browser and webpage plugins (unmaintained)"
},
{
"name": "webp",
"value": "auto",
"section": "user",
"machine": "any",
"choices": [
"enabled",
"disabled",
"auto"
],
"type": "combo",
"description": "Webp support"
},
{
"name": "win32-32bits-dll-folder",
"value": "32/bin",
"section": "user",
"machine": "any",
"type": "string",
"description": "alternative folder with 32-bit versions of DLL libraries on Windows"
},
{
"name": "win32-debug-console",
"value": true,
"section": "user",
"machine": "any",
"type": "boolean",
"description": "Open a console when starting the program"
},
{
"name": "windows-installer",
"value": false,
"section": "user",
"machine": "any",
"type": "boolean",
"description": "Generate files needed for the Inno Windows installer"
},
{
"name": "with-sendmail",
"value": "",
"section": "user",
"machine": "any",
"type": "string",
"description": "Use Sendmail instead of Xdg-email"
},
{
"name": "wmf",
"value": "auto",
"section": "user",
"machine": "any",
"choices": [
"enabled",
"disabled",
"auto"
],
"type": "combo",
"description": "Wmf support"
},
{
"name": "xcursor",
"value": "auto",
"section": "user",
"machine": "any",
"choices": [
"enabled",
"disabled",
"auto"
],
"type": "combo",
"description": "Xcursor support"
},
{
"name": "xpm",
"value": "auto",
"section": "user",
"machine": "any",
"choices": [
"enabled",
"disabled",
"auto"
],
"type": "combo",
"description": "XPM support"
},
{
"name": "errorlogs",
"value": true,
"section": "test",
"machine": "any",
"type": "boolean",
"description": "Whether to print the logs from failing tests"
},
{
"name": "stdsplit",
"value": true,
"section": "test",
"machine": "any",
"type": "boolean",
"description": "Split stdout and stderr in test logs"
}
]
Edited by Christian Heusel