From 5c14f98239038f3ba6a5a8f32f8c4b9490530dfe Mon Sep 17 00:00:00 2001 From: Nirbheek Chauhan Date: Mon, 2 Mar 2020 17:18:21 +0530 Subject: Document the details of optimization+debug vs buildtype [skip ci] Otherwise you have to hunt through the source code. Specifically, this is defined in `mesonbuild/coredata.py`: `set_buildtype_from_others()` and `set_others_from_buildtype()` --- docs/markdown/Builtin-options.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/docs/markdown/Builtin-options.md b/docs/markdown/Builtin-options.md index 067966fc9..9c8c54c8c 100644 --- a/docs/markdown/Builtin-options.md +++ b/docs/markdown/Builtin-options.md @@ -87,6 +87,23 @@ Using the option as-is with no prefix affects all machines. For example: | werror | false | Treat warnings as errors | no | | wrap_mode {default, nofallback,
nodownload, forcefallback} | default | Wrap mode to use | no | +For setting optimization levels and toggling debug, you can either set the +`buildtype` option, or you can set the `optimization` and `debug` options which +give finer control over the same. Whichever you decide to use, the other will +be deduced from it. For example, `-Dbuildtype=debugoptimized` is the same as +`-Ddebug=true -Doptimization=2` and vice-versa. This table documents the +two-way mapping: + +| buildtype | debug | optimization | +| --------- | ----- | ------------ | +| plain | false | 0 | +| debug | true | 0 | +| debugoptimized | true | 2 | +| release | false | 3 | +| minsize | true | s | + +All other combinations of `debug` and `optimization` set `buildtype` to `'custom'`. + ## Base options These are set in the same way as universal options, but cannot be shown in the -- cgit v1.2.3