diff options
-rw-r--r-- | environment.py | 8 | ||||
-rw-r--r-- | ninjabackend.py | 1 |
2 files changed, 9 insertions, 0 deletions
diff --git a/environment.py b/environment.py index 3f7fc79..1bb0f67 100644 --- a/environment.py +++ b/environment.py @@ -57,6 +57,11 @@ msvc_buildtype_linker_flags = {'plain' : [], 'debugoptimized' : [], 'release' : []} +rust_buildtype_flags = {'plain' : [], + 'debug' : ['-g'], + 'debugoptimized' : ['-g', '--opt-level', '2'], + 'release' : ['--opt-level', '3']} + class CCompiler(): def __init__(self, exelist, version, is_cross, exe_wrapper=None): if type(exelist) == type(''): @@ -631,6 +636,9 @@ class RustCompiler(): def get_dependency_gen_flags(self, outfile): return ['--dep-info', outfile] + def get_buildtype_flags(self, buildtype): + return rust_buildtype_flags[buildtype] + class VisualStudioCCompiler(CCompiler): std_warn_flags = ['/W3'] std_opt_flags= ['/O2'] diff --git a/ninjabackend.py b/ninjabackend.py index 8cde99d..a896c24 100644 --- a/ninjabackend.py +++ b/ninjabackend.py @@ -508,6 +508,7 @@ class NinjaBackend(backends.Backend): flags.append('bin') else: raise InvalidArguments('Unknown target type for rustc.') + flags += rustc.get_buildtype_flags(self.environment.coredata.buildtype) flags += ['--out-dir', target.subdir, '-o', target.get_basename()] element = NinjaBuildElement(target_name, 'rust_COMPILER', relsrc) element.add_item('FLAGS', flags) |