From b520a4f030701089b7eca8bf00d49d143db5ba8b Mon Sep 17 00:00:00 2001 From: Patrick Griffis Date: Sun, 2 Apr 2017 12:58:34 -0400 Subject: 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 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') -- cgit v1.1 From 55dd31809e07feaddfc79532d4d71e99b3d951d4 Mon Sep 17 00:00:00 2001 From: Patrick Griffis Date: Sun, 2 Apr 2017 13:08:46 -0400 Subject: rust: Use -C to specify build type --- mesonbuild/compilers.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/mesonbuild/compilers.py b/mesonbuild/compilers.py index 406c719..cf9fa53 100644 --- a/mesonbuild/compilers.py +++ b/mesonbuild/compilers.py @@ -146,10 +146,10 @@ java_buildtype_args = {'plain': [], } rust_buildtype_args = {'plain': [], - 'debug': ['-g'], - 'debugoptimized': ['-g', '--opt-level', '2'], - 'release': ['--opt-level', '3'], - 'minsize': [], + 'debug': ['-C', 'debuginfo=2'], + 'debugoptimized': ['-C', 'debuginfo=2', '-C', 'opt-level=2'], + 'release': ['-C', 'opt-level=3'], + 'minsize': [], # In a future release: ['-C', 'opt-level=s'], } d_gdc_buildtype_args = {'plain': [], -- cgit v1.1 From 4ad9f2660864e00fa2a0220d3cf9bf0754a23c3e Mon Sep 17 00:00:00 2001 From: Patrick Griffis Date: Mon, 8 May 2017 15:27:22 -0400 Subject: docs: Add rust_args entry to release notes --- docs/markdown/Release-notes-for-0.41.0.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/markdown/Release-notes-for-0.41.0.md b/docs/markdown/Release-notes-for-0.41.0.md index a2a64de..2b7469a 100644 --- a/docs/markdown/Release-notes-for-0.41.0.md +++ b/docs/markdown/Release-notes-for-0.41.0.md @@ -24,3 +24,7 @@ The ninja backend now quotes special characters that may be interpreted by ninja itself, providing better interoperability with custom commands. This support may not be perfect; please report any issues found with special characters to the issue tracker. + +## Support for passing arguments to Rust compiler + +Targets for building rust now take a `rust_args` keyword. \ No newline at end of file -- cgit v1.1