classes/meson: Add optional rust definitions

Message ID 20211118230659.1570592-1-JPEWhacker@gmail.com
State Accepted, archived
Commit 0ec40fa3aff233bd0dde0461299150786da956ef
Headers show
Series classes/meson: Add optional rust definitions | expand

Commit Message

Joshua Watt Nov. 18, 2021, 11:06 p.m. UTC
Adds the rust tools to the cross and native files if present so that
projects that use both rust and meson can build

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
---
 meta/classes/meson.bbclass | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

Patch

diff --git a/meta/classes/meson.bbclass b/meta/classes/meson.bbclass
index 4ba70de3dc..0b3cbc4b7e 100644
--- a/meta/classes/meson.bbclass
+++ b/meta/classes/meson.bbclass
@@ -36,8 +36,13 @@  MESON_CROSS_FILE = ""
 MESON_CROSS_FILE:class-target = "--cross-file ${WORKDIR}/meson.cross"
 MESON_CROSS_FILE:class-nativesdk = "--cross-file ${WORKDIR}/meson.cross"
 
+def optional_tool(name, var, d):
+    if not d.getVar(var):
+        return ""
+    return "%s = %s" % (name, meson_array(var, d))
+
 addtask write_config before do_configure
-do_write_config[vardeps] += "CC CXX LD AR NM STRIP READELF CFLAGS CXXFLAGS LDFLAGS"
+do_write_config[vardeps] += "CC CXX LD AR NM STRIP READELF CFLAGS CXXFLAGS LDFLAGS RUSTC"
 do_write_config() {
     # This needs to be Py to split the args into single-element lists
     cat >${WORKDIR}/meson.cross <<EOF
@@ -54,6 +59,7 @@  llvm-config = 'llvm-config${LLVMVERSION}'
 cups-config = 'cups-config'
 g-ir-scanner = '${STAGING_BINDIR}/g-ir-scanner-wrapper'
 g-ir-compiler = '${STAGING_BINDIR}/g-ir-compiler-wrapper'
+${@optional_tool('rust', 'RUSTC', d)}
 
 [built-in options]
 c_args = ${@meson_array('CFLAGS', d)}
@@ -88,6 +94,7 @@  strip = ${@meson_array('BUILD_STRIP', d)}
 readelf = ${@meson_array('BUILD_READELF', d)}
 objcopy = ${@meson_array('BUILD_OBJCOPY', d)}
 pkgconfig = 'pkg-config-native'
+${@optional_tool('rust', 'RUSTC', d)}
 
 [built-in options]
 c_args = ${@meson_array('BUILD_CFLAGS', d)}