Build types

Meson has different build types, exposed by the buildtype configuration option. GTK enables and disables functionality depending on the build type used when calling meson to configure the build.

Debug builds

GTK will enable debugging code paths in both the debug and debugoptimized build types. Builds with buildtype set to debug will additionally enable consistency checks on the internal state of the toolkit.

It is recommended to use the debug or debugoptimized build types when developing GTK itself. Additionally, debug builds of GTK are recommended for profiling and debugging GTK applications, as they include additional validation of the internal state.

The debugoptimized build type is the default for GTK if no build type is specified when calling meson.

Release builds

The release build type will disable debugging code paths and additional run time safeties, like checked casts for object instances.

The plain build type provided by Meson should only be used when packaging GTK, and it’s expected that packagers will provide their own compiler flags when building GTK. See the previous section for the list of environment variables to be used to define compiler and linker flags. Note that with the plain build type, you are also responsible for controlling the debugging features of GTK with -DG_ENABLE_DEBUG and -DG_DISABLE_CAST_CHECKS.