radeonsi: don't set the CB clear color registers for 0/1 clear colors on Raven2
[mesa.git] / docs / meson.html
index f394a22fc2a7d058828ebfe363d1c81e09189c4b..68f80d6ac42d6f48d359f43302de08f3080be2e8 100644 (file)
 <p><strong>The Meson build system is generally considered stable and ready
 for production</strong></p>
 
-<p>The meson build is tested on on Linux, macOS, Cygwin and Haiku, it should
-work on FreeBSD, DragonflyBSD, NetBSD, and OpenBSD.</p>
+<p>The meson build is tested on Linux, macOS, Cygwin and Haiku, FreeBSD,
+DragonflyBSD, NetBSD, and should work on OpenBSD.</p>
 
-<p><strong>Mesa requires Meson >= 0.44.1 to build.</strong>
+<p><strong>Mesa requires Meson >= 0.45.0 to build.</strong>
 
 Some older versions of meson do not check that they are too old and will error
 out in odd ways.
@@ -67,6 +67,14 @@ command are in the form <code>-D "command"="value"</code>.
     meson configure build/ -Dprefix=/tmp/install -Dglx=true
 </pre>
 
+<p>
+Note that options taking lists (such as <code>platforms</code>) are
+<a href="http://mesonbuild.com/Build-options.html#using-build-options">a bit
+more complicated</a>, but the simplest form compatible with Mesa options
+is to use a comma to separate values (<code>-D platforms=drm,wayland</code>)
+and brackets to represent an empty list (<code>-D platforms=[]</code>).
+</p>
+
 <p>
 Once you've run the initial <code>meson</code> command successfully you can use
 your configured backend to build the project. With ninja, the -C option can be
@@ -87,41 +95,49 @@ each configuration you want to build
 recommended in the documentation</a>
 </p>
 
+<p>
+Autotools automatically updates translation files as part of the build process,
+meson does not do this. Instead if you want translated drirc files you will need 
+to invoke non-default targets for ninja to update them:
+<code>ninja -C build/ xmlpool-pot xmlpool-update-po xmlpool-gmo</code>
+</p>
+
 <dl>
 <dt><code>Environment Variables</code></dt>
 <dd><p>Meson supports the standard CC and CXX environment variables for
 changing the default compiler, and CFLAGS, CXXFLAGS, and LDFLAGS for setting
-options to the compiler and linker.
+options to the compiler and linker during the initial configuration.
 
-The default compilers depends on your operating system. Meson supports most of
-the popular compilers, a complete list is available
-<a href="http://mesonbuild.com/Reference-tables.html#compiler-ids">here</a>.
-
-These arguments are consumed and stored by meson when it is initialized or
-re-initialized. Therefore passing them to meson configure will not do anything,
-and passing them to ninja will only do something if ninja decides to
-re-initialize meson, for example, if a meson.build file has been changed.
-Changing these variables will not cause all targets to be rebuilt, so running
-ninja clean is recommended when changing CFLAGS or CXXFLAGS. Meson will never
-change compiler in a configured build directory.
+These arguments are consumed and stored by meson when it is initialized. To
+change these flags after the build is initialized (or when doing a first
+initialization), consider using <code>-D${lang}_args</code> and
+<code>-D${lang}_link_args</code> instead. Meson will never change compiler in a
+configured build directory.
 </p>
 
 <pre>
     CC=clang CXX=clang++ meson build-clang
     ninja -C build-clang
     ninja -C build-clang clean
-    touch meson.build
-    CFLAGS=-Wno-typedef-redefinition ninja -C build-clang
+    meson configure build -Dc_args="-Wno-typedef-redefinition"
+    ninja -C build-clang
 </pre>
 
+<p>
+The default compilers depends on your operating system. Meson supports most of
+the popular compilers, a complete list is available
+<a href="http://mesonbuild.com/Reference-tables.html#compiler-ids">here</a>.
+</p>
+
 <p>Meson also honors <code>DESTDIR</code> for installs</p>
 </dd>
 
 
 <dt><code>LLVM</code></dt>
-<dd><p>Meson includes upstream logic to wrap llvm-config using it's standard
+<dd><p>Meson includes upstream logic to wrap llvm-config using its standard
 dependency interface. It will search <code>$PATH</code> (or <code>%PATH%</code> on windows) for
-llvm-config, so using an LLVM from a non-standard path is as easy as
+llvm-config (and llvm-config$version and llvm-config-$version), so using an
+LLVM from a non-standard path is as easy as
 <code>PATH=/path/with/llvm-config:$PATH meson build</code>.
 </p></dd>
 </dl>