diff options
Diffstat (limited to 'meson/docs/markdown/Configuring-a-build-directory.md')
-rw-r--r-- | meson/docs/markdown/Configuring-a-build-directory.md | 120 |
1 files changed, 120 insertions, 0 deletions
diff --git a/meson/docs/markdown/Configuring-a-build-directory.md b/meson/docs/markdown/Configuring-a-build-directory.md new file mode 100644 index 000000000..c55267656 --- /dev/null +++ b/meson/docs/markdown/Configuring-a-build-directory.md @@ -0,0 +1,120 @@ +--- +short-description: Configuring a pre-generated build directory +... + +# Configuring a build directory + +Often you want to change the settings of your build after it has been +generated. For example you might want to change from a debug build +into a release build, set custom compiler flags, change the build +options provided in your `meson_options.txt` file and so on. + +The main tool for this is the `meson configure` command. + +You invoke `meson configure` by giving it the location of your build +dir. If omitted, the current working directory is used instead. Here's +a sample output for a simple project. + + Core properties + + Source dir /home/jpakkane/clangdemo/2_address + Build dir /home/jpakkane/clangdemo/2_address/buildmeson + + Core options: + Option Current Value Possible Values Description + ------ ------------- --------------- ----------- + auto_features auto [enabled, disabled, auto] Override value of all 'auto' features + backend ninja [ninja, vs, vs2010, vs2015, vs2017, vs2019, xcode] Backend to use + buildtype release [plain, debug, debugoptimized, release, minsize, custom] Build type to use + debug false [true, false] Debug + default_library shared [shared, static, both] Default library type + install_umask 0022 [preserve, 0000-0777] Default umask to apply on permissions of installed files + layout mirror [mirror, flat] Build directory layout + optimization 3 [0, g, 1, 2, 3, s] Optimization level + strip false [true, false] Strip targets on install + unity off [on, off, subprojects] Unity build + warning_level 1 [0, 1, 2, 3] Compiler warning level to use + werror false [true, false] Treat warnings as errors + + Backend options: + Option Current Value Possible Values Description + ------ ------------- --------------- ----------- + backend_max_links 0 >=0 Maximum number of linker processes to run or 0 for no limit + + Base options: + Option Current Value Possible Values Description + ------ ------------- --------------- ----------- + b_asneeded true [true, false] Use -Wl,--as-needed when linking + b_colorout always [auto, always, never] Use colored output + b_coverage false [true, false] Enable coverage tracking. + b_lto false [true, false] Use link time optimization + b_lundef true [true, false] Use -Wl,--no-undefined when linking + b_ndebug false [true, false, if-release] Disable asserts + b_pch true [true, false] Use precompiled headers + b_pgo off [off, generate, use] Use profile guided optimization + b_sanitize none [none, address, thread, undefined, memory, address,undefined] Code sanitizer to use + b_staticpic true [true, false] Build static libraries as position independent + + Compiler options: + Option Current Value Possible Values Description + ------ ------------- --------------- ----------- + c_args [] Extra arguments passed to the C compiler + c_link_args [] Extra arguments passed to the C linker + c_std c99 [none, c89, c99, c11, c17, c18, c2x, gnu89, gnu99, gnu11, gnu17, gnu18, gnu2x] C language standard to use + cpp_args [] Extra arguments passed to the C++ compiler + cpp_debugstl false [true, false] STL debug mode + cpp_link_args [] Extra arguments passed to the C++ linker + cpp_std c++11 [none, c++98, c++03, c++11, c++14, c++17, c++1z, c++2a, c++20, gnu++03, gnu++11, gnu++14, gnu++17, gnu++1z, gnu++2a, gnu++20] C++ language standard to use + fortran_std [] [none, legacy, f95, f2003, f2008, f2018] language standard to use + + Directories: + Option Current Value Description + ------ ------------- ----------- + bindir bin Executable directory + datadir share Data file directory + includedir include Header file directory + infodir share/info Info page directory + libdir lib/x86_64-linux-gnu Library directory + libexecdir libexec Library executable directory + localedir share/locale Locale data directory + localstatedir /var/local Localstate data directory + mandir share/man Manual page directory + prefix /usr/local Installation prefix + sbindir sbin System executable directory + sharedstatedir /var/local/lib Architecture-independent data directory + sysconfdir etc Sysconf data directory + + Project options: + Option Current Value Possible Values Description + ------ ------------- --------------- ----------- + array_opt [one, two] [one, two, three] array_opt + combo_opt three [one, two, three] combo_opt + free_array_opt [one, two] free_array_opt + integer_opt 3 >=0, <=5 integer_opt + other_one false [true, false] other_one + some_feature enabled [enabled, disabled, auto] some_feature + someoption optval An option + + Testing options: + Option Current Value Possible Values Description + ------ ------------- --------------- ----------- + errorlogs true [true, false] Whether to print the logs from failing tests + stdsplit true [true, false] Split stdout and stderr in test logs + +These are all the options available for the current project arranged +into related groups. The first column in every field is the name of +the option. To set an option you use the `-D` option. For example, +changing the installation prefix from `/usr/local` to `/tmp/testroot` +you would issue the following command. + + meson configure -Dprefix=/tmp/testroot + +Then you would run your build command (usually `meson compile`), which +would cause Meson to detect that the build setup has changed and do +all the work required to bring your build tree up to date. + +Since 0.50.0, it is also possible to get a list of all build options +by invoking [`meson configure`](Commands.md#configure) with the +project source directory or the path to the root `meson.build`. In +this case, Meson will print the default values of all options similar +to the example output from above. |