Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.freedesktop.org/gstreamer/gst-plugins-rs.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNirbheek Chauhan <nirbheek@centricular.com>2023-06-08 15:03:47 +0300
committerSebastian Dröge <sebastian@centricular.com>2023-09-20 19:23:19 +0300
commit0faaa20565b19504132d09779b2abf413bdea1fb (patch)
treeda67737d57729e314d03a59aa29c99046cbeb423
parent3eab53be8578a597e971923528dd974669989a5b (diff)
meson: Don't override RUSTFLAGS in the env
Meson does not add RUSTFLAGS to rustc.cmd_array(), so the effect of this code is to override that value in the env. This is hacky, since the env has to match during setup and compile now, and rust_args added in the cross / native file will be ignored. But at least it fixes this regression: Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/372 Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1330>
-rw-r--r--cargo_wrapper.py9
-rw-r--r--meson.build13
2 files changed, 8 insertions, 14 deletions
diff --git a/cargo_wrapper.py b/cargo_wrapper.py
index c13a7b05e..dadd09842 100644
--- a/cargo_wrapper.py
+++ b/cargo_wrapper.py
@@ -7,6 +7,7 @@ import os
import shutil
import subprocess
import sys
+import shlex
from argparse import ArgumentParser
from pathlib import Path as P
@@ -83,14 +84,16 @@ if __name__ == "__main__":
env['PKG_CONFIG_PATH'] = os.pathsep.join(pkg_config_path)
rustc_target = None
- if 'RUSTFLAGS' in env:
+ if 'RUSTC' in env:
+ rustc_cmdline = shlex.split(env['RUSTC'])
# grab target from RUSTFLAGS
- rust_flags = env['RUSTFLAGS'].split()
+ rust_flags = rustc_cmdline[1:] + shlex.split(env.get('RUSTFLAGS', ''))
if '--target' in rust_flags:
rustc_target_idx = rust_flags.index('--target')
_ = rust_flags.pop(rustc_target_idx) # drop '--target'
rustc_target = rust_flags.pop(rustc_target_idx)
- env['RUSTFLAGS'] = ' '.join(rust_flags)
+ env['RUSTFLAGS'] = shlex.join(rust_flags)
+ env['RUSTC'] = rustc_cmdline[0]
features = opts.features
if opts.command == 'build':
diff --git a/meson.build b/meson.build
index 5a1235552..c4c8d1a49 100644
--- a/meson.build
+++ b/meson.build
@@ -386,17 +386,8 @@ if pkg_config_path.length() > 0
extra_env += {'PKG_CONFIG_PATH': pathsep.join(pkg_config_path)}
endif
-# get compiler and flags for rust (if any)
-rustc_cmd = ''
-rust_flags = []
-foreach rustc_arg : rustc.cmd_array()
- if rustc_cmd == ''
- rustc_cmd = rustc_arg
- else
- rust_flags += [rustc_arg]
- endif
-endforeach
-extra_env += {'RUSTC': rustc_cmd, 'RUSTFLAGS': ' '.join(rust_flags)}
+# get cmdline for rust
+extra_env += {'RUSTC': ' '.join(rustc.cmd_array())}
rs_plugins = custom_target('gst-plugins-rs',
build_by_default: true,