summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs/reference/gtk/building.md37
-rw-r--r--meson.build14
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