aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mesonbuild/backend/ninjabackend.py1
-rw-r--r--mesonbuild/build.py5
-rw-r--r--test cases/rust/1 basic/meson.build5
3 files changed, 10 insertions, 1 deletions
diff --git a/mesonbuild/backend/ninjabackend.py b/mesonbuild/backend/ninjabackend.py
index bbae408..34cf74e 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 0d58394..c6c712f 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 076d86b..3919279 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')