<html lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
- <title>Compilation and Installation using Meson</title>
+ <title>Compilation and Installation Using Meson</title>
<link rel="stylesheet" type="text/css" href="mesa.css">
</head>
<body>
<div class="header">
- <h1>The Mesa 3D Graphics Library</h1>
+ The Mesa 3D Graphics Library
</div>
<iframe src="contents.html"></iframe>
<div class="content">
-<h1>Compilation and Installation using Meson</h1>
+<h1>Compilation and Installation Using Meson</h1>
<ul>
<li><a href="#intro">Introduction</a></li>
sudo dnf install meson # Fedora
</pre>
-<p><strong>Mesa requires Meson >= 0.45.0 to build.</strong>
+<p><strong>Mesa requires Meson >= 0.46.0 to build.</strong>
Some older versions of meson do not check that they are too old and will error
out in odd ways.
these files provide information about the native build environment (as opposed
to a cross build environment). They are ini formatted and can override where to
find llvm-config:
+</p>
custom-llvm.ini
<pre>
<pre>
meson builddir/ --native-file custom-llvm.ini
</pre>
-</p></dd>
+</dd>
+
+<dd><p>
+Meson < 0.49 doesn't support native files, so to specify a custom
+<code>llvm-config</code> you need to modify your <code>$PATH</code> (or
+<code>%PATH%</code> on windows), which will be searched for
+<code>llvm-config</code>, <code>llvm-config<i>$version</i></code>,
+and <code>llvm-config-<i>$version</i></code>:
+</p>
+<pre>
+PATH=/path/to/folder/with/llvm-config:$PATH meson build
+</pre>
+</dd>
<dd><p>
For selecting llvm-config for cross compiling a
<a href="https://mesonbuild.com/Cross-compilation.html#defining-the-environment">"cross file"</a>
should be used. It uses the same format as the native file above:
+</p>
-cross-llvm.ini
+<p>cross-llvm.ini</p>
<pre>
[binaries]
...
llvm-config = '/usr/lib/llvm-config-32'
</pre>
-Then configure meson:
-
+<p>Then configure meson:</p>
<pre>
meson builddir/ --cross-file cross-llvm.ini
</pre>
See the <a href="#cross-compilation">Cross Compilation</a> section for more information.
-</dd></p>
-
-<dd><p>
-For older versions of meson <code>$PATH</code> (or <code>%PATH%</code> on
-windows) will be searched for llvm-config (and llvm-config$version and
-llvm-config-$version), you can override this environment variable to control
-the search: <code>PATH=/path/with/llvm-config:$PATH meson build</code>.
-</dd></p>
-</dl>
+</dd>
-<dl>
<dt><code>PKG_CONFIG_PATH</code></dt>
<dd><p>The
<code>pkg-config</code> utility is a hard requirement for configuring and
buildtype, which causes meson to inject no additional compiler arguments, only
those in the C/CXXFLAGS and those that mesa itself defines.</p>
</dd>
-</dl>
-<dl>
<dt><code>-Db_ndebug</code></dt>
<dd><p>This option controls assertions in meson projects. When set to <code>false</code>
(the default) assertions are enabled, when set to true they are disabled. This