docs: separate information for compiler selection and compiler options

Split up the "Environment Variables" section into "Compiler Options"
and "Compiler Specification".  I think this makes the information
easier to find and understand.
This commit is contained in:
Brian Paul
2019-03-08 10:31:11 -07:00
parent bfba0ecc1c
commit 16fb82d189

View File

@@ -169,47 +169,67 @@ Developers will often want to install Mesa to a testing directory rather
than the system library directory. than the system library directory.
This can be done with the --prefix option. For example: This can be done with the --prefix option. For example:
</p> </p>
<code> <pre>
meson --prefix="${PWD}/build/install" build/ meson --prefix="${PWD}/build/install" build/
</code> </pre>
<p> <p>
will put the final libraries and drivers into the build/install/ will put the final libraries and drivers into the build/install/
directory. directory.
Then you can set LD_LIBRARY_PATH and LIBGL_DRIVERS_PATH to that location Then you can set LD_LIBRARY_PATH and LIBGL_DRIVERS_PATH to that location
to run/test the driver. to run/test the driver.
</p> </p>
<p>
Meson also honors <code>DESTDIR</code> for installs.
</p>
</dd> </dd>
<dt>Environment Variables</dt> <dt>Compiler Options</dt>
<dd><p>Meson supports the standard CC and CXX environment variables for <dd>
changing the default compiler. Meson does support CFLAGS, CXXFLAGS, etc. But <p>Meson supports the common CFLAGS, CXXFLAGS, etc. environment
their use is discouraged because of the many caveats in using them. Instead it variables but their use is discouraged because of the many caveats
is recomended to use <code>-D${lang}_args</code> and in using them.
<code>-D${lang}_link_args</code> instead. Among the benefits of these options </p>
<p>Instead, it is recomended to use <code>-D${lang}_args</code> and
<code>-D${lang}_link_args</code>. Among the benefits of these options
is that they are guaranteed to persist across rebuilds and reconfigurations. is that they are guaranteed to persist across rebuilds and reconfigurations.
</p>
This example sets -fmax-errors for compiling C sources and -DMAGIC=123
for C++ sources:
</p>
<p>
<pre>
meson builddir/ -Dc_args=-fmax-errors=10 -Dcpp_args=-DMAGIC=123
</pre>
</p>
</dd>
Meson does not allow changing compiler in a configured builddir, you will need
<dt>Compiler Specification</dt>
<dd>
<p>
Meson supports the standard CC and CXX environment variables for
changing the default compiler. Note that Meson does not allow
changing the compilers in a configured builddir so you will need
to create a new build dir for a different compiler. to create a new build dir for a different compiler.
</p> </p>
<p>
This is an example of specifying the clang compilers and cleaning
the build directory before reconfiguring with an extra C option:
</p>
<pre> <pre>
CC=clang CXX=clang++ meson build-clang CC=clang CXX=clang++ meson build-clang
ninja -C build-clang ninja -C build-clang
ninja -C build-clang clean ninja -C build-clang clean
meson configure build -Dc_args="-Wno-typedef-redefinition" meson configure build -Dc_args="-Wno-typedef-redefinition"
ninja -C build-clang ninja -C build-clang
</pre> </pre>
<p> <p>
The default compilers depends on your operating system. Meson supports most of The default compilers depends on your operating system. Meson supports most of
the popular compilers, a complete list is available the popular compilers, a complete list is available
<a href="http://mesonbuild.com/Reference-tables.html#compiler-ids">here</a>. <a href="http://mesonbuild.com/Reference-tables.html#compiler-ids">here</a>.
</p> </p>
<p>Meson also honors <code>DESTDIR</code> for installs</p>
</dd> </dd>
<dt>LLVM</dt> <dt>LLVM</dt>
<dd><p>Meson includes upstream logic to wrap llvm-config using its standard <dd><p>Meson includes upstream logic to wrap llvm-config using its standard
dependency interface. dependency interface.