aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2014-06-18 23:22:29 +0300
committerJussi Pakkanen <jpakkane@gmail.com>2014-06-18 23:22:29 +0300
commit31dbb4665272d3208e5a17a93c423acb94e109c4 (patch)
tree8f1658acdb98223165adc4d23992316819de648d
parentf22376701bdebbda70b8d521a2da8f5376e6fdaa (diff)
downloadmeson-31dbb4665272d3208e5a17a93c423acb94e109c4.zip
meson-31dbb4665272d3208e5a17a93c423acb94e109c4.tar.gz
meson-31dbb4665272d3208e5a17a93c423acb94e109c4.tar.bz2
Rust buildtype flags.
-rw-r--r--environment.py8
-rw-r--r--ninjabackend.py1
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)