From b520a4f030701089b7eca8bf00d49d143db5ba8b Mon Sep 17 00:00:00 2001 From: Patrick Griffis Date: Sun, 2 Apr 2017 12:58:34 -0400 Subject: [PATCH] rust: Support rust_args --- mesonbuild/backend/ninjabackend.py | 1 + mesonbuild/build.py | 5 +++++ test cases/rust/1 basic/meson.build | 5 ++++- 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/mesonbuild/backend/ninjabackend.py b/mesonbuild/backend/ninjabackend.py index bbae40801..34cf74e7d 100644 --- a/mesonbuild/backend/ninjabackend.py +++ b/mesonbuild/backend/ninjabackend.py @@ -1170,6 +1170,7 @@ int dummy; args += rustc.get_buildtype_args(self.get_option_for_target('buildtype', target)) depfile = os.path.join(target.subdir, target.name + '.d') args += ['--emit', 'dep-info={}'.format(depfile), '--emit', 'link'] + args += target.get_extra_args('rust') args += ['-o', os.path.join(target.subdir, target.get_filename())] orderdeps = [os.path.join(t.subdir, t.get_filename()) for t in target.link_targets] linkdirs = OrderedDict() diff --git a/mesonbuild/build.py b/mesonbuild/build.py index 0d58394f6..c6c712f54 100644 --- a/mesonbuild/build.py +++ b/mesonbuild/build.py @@ -34,6 +34,7 @@ known_basic_kwargs = {'install': True, 'fortran_args': True, 'd_args': True, 'java_args': True, + 'rust_args': True, 'link_args': True, 'link_depends': True, 'link_with': True, @@ -632,6 +633,10 @@ class BuildTarget(Target): if not isinstance(fortranlist, list): fortranlist = [fortranlist] self.add_compiler_args('fortran', fortranlist) + rustlist = kwargs.get('rust_args', []) + if not isinstance(rustlist, list): + rustlist = [rustlist] + self.add_compiler_args('rust', rustlist) if not isinstance(self, Executable): self.vala_header = kwargs.get('vala_header', self.name + '.h') self.vala_vapi = kwargs.get('vala_vapi', self.name + '.vapi') diff --git a/test cases/rust/1 basic/meson.build b/test cases/rust/1 basic/meson.build index 076d86b60..3919279a9 100644 --- a/test cases/rust/1 basic/meson.build +++ b/test cases/rust/1 basic/meson.build @@ -1,6 +1,9 @@ project('rustprog', 'rust') -e = executable('program', 'prog.rs', install : true) +e = executable('program', 'prog.rs', + rust_args : ['-C', 'lto'], # Just a test + install : true +) test('rusttest', e) subdir('subdir')