diff options
-rw-r--r-- | docs/reference/gtk/building.md | 37 | ||||
-rw-r--r-- | meson.build | 14 |
2 files changed, 17 insertions, 34 deletions
diff --git a/docs/reference/gtk/building.md b/docs/reference/gtk/building.md index 31073d1d04..9ec47f39aa 100644 --- a/docs/reference/gtk/building.md +++ b/docs/reference/gtk/building.md @@ -83,35 +83,22 @@ 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. +GTK will enable debugging code paths, including +consistency checks on the internal state of the toolkit, +when using the `debug` build type. Other build types will +disable debugging code paths and additional run time safeties, +like checked casts for object instances. It is recommended to +use the `debug` build type 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. + +All other build types are production build types and will disable +debugging code paths and extra runtime safety checks, like checked casts +for object instances. 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`. - ## Dependencies Before you can compile the GTK widget toolkit, you need to have diff --git a/meson.build b/meson.build index 6ececaba95..7ba5674e82 100644 --- a/meson.build +++ b/meson.build @@ -58,16 +58,12 @@ add_project_arguments('-DGTK_VERSION="@0@"'.format(meson.project_version()), lan add_project_arguments('-D_GNU_SOURCE', language: 'c') # Use debug/optimization flags to determine whether to enable debug or disable -# cast checks +# cast checks. We have a non-production (debug) build if debug is true and if +# optimization is 0 or g; otherwise, we have a production build. gtk_debug_cflags = [] -debug = get_option('debug') -optimization = get_option('optimization') -if debug - gtk_debug_cflags += '-DG_ENABLE_DEBUG' - if optimization in ['0', 'g'] - gtk_debug_cflags += '-DG_ENABLE_CONSISTENCY_CHECKS' - endif -elif optimization in ['2', '3', 's'] +if get_option('debug') and get_option('optimization') in [ '0', 'g' ] + gtk_debug_cflags += ['-DG_ENABLE_DEBUG', '-DG_ENABLE_CONSISTENCY_CHECKS'] +else gtk_debug_cflags += ['-DG_DISABLE_CAST_CHECKS', '-DG_DISABLE_ASSERT'] endif |