diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2014-04-16 20:51:31 +0300 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2014-04-16 20:51:31 +0300 |
commit | b626d017a2ceac9066bca0368be492ec7e4590d9 (patch) | |
tree | 1b3cfbfdba315415818044baf203eb1e31c97057 | |
parent | ac2d7e3440156805003b0a059d20384294a4972e (diff) | |
download | meson-b626d017a2ceac9066bca0368be492ec7e4590d9.zip meson-b626d017a2ceac9066bca0368be492ec7e4590d9.tar.gz meson-b626d017a2ceac9066bca0368be492ec7e4590d9.tar.bz2 |
Specify build flags per build type.
-rw-r--r-- | backends.py | 3 | ||||
-rw-r--r-- | environment.py | 35 | ||||
-rwxr-xr-x | meson.py | 2 | ||||
-rwxr-xr-x | mesongui.py | 3 |
4 files changed, 22 insertions, 21 deletions
diff --git a/backends.py b/backends.py index 81062f9..e7b6a9c 100644 --- a/backends.py +++ b/backends.py @@ -306,8 +306,7 @@ class Backend(): if self.environment.coredata.buildtype != 'plain': commands += compiler.get_debug_flags() commands += compiler.get_std_warn_flags() - if self.environment.coredata.buildtype == 'optimized': - commands += compiler.get_std_opt_flags() + commands += compiler.get_buildtype_flags(self.environment.coredata.buildtype) if self.environment.coredata.coverage: commands += compiler.get_coverage_flags() if isinstance(target, build.SharedLibrary): diff --git a/environment.py b/environment.py index a3317ca..1e24a41 100644 --- a/environment.py +++ b/environment.py @@ -35,6 +35,12 @@ class RunResult(): self.stdout = stdout self.stderr = stderr +gnulike_buildtype_flags = {'plain' : [], + 'debug' : ['-g'], + 'debugoptimized' : ['-O2', '-g'], + 'release' : ['-O3'], + } + class CCompiler(): def __init__(self, exelist, version, is_cross, exe_wrapper=None): if type(exelist) == type(''): @@ -645,7 +651,6 @@ def get_gcc_soname_flags(gcc_type, shlib_name, path): class GnuCCompiler(CCompiler): std_warn_flags = ['-Wall', '-Winvalid-pch'] - std_opt_flags = ['-O2'] def __init__(self, exelist, version, gcc_type, is_cross, exe_wrapper=None): CCompiler.__init__(self, exelist, version, is_cross, exe_wrapper) @@ -658,8 +663,8 @@ class GnuCCompiler(CCompiler): def get_std_warn_flags(self): return GnuCCompiler.std_warn_flags - def get_std_opt_flags(self): - return GnuCCompiler.std_opt_flags + def get_buildtype_flags(self, buildtype): + return gnulike_buildtype_flags[buildtype] def get_pch_suffix(self): return 'gch' @@ -677,7 +682,6 @@ class GnuCCompiler(CCompiler): class GnuObjCCompiler(ObjCCompiler): std_warn_flags = ['-Wall', '-Winvalid-pch'] - std_opt_flags = ['-O2'] def __init__(self, exelist, version, is_cross, exe_wrapper=None): ObjCCompiler.__init__(self, exelist, version, is_cross, exe_wrapper) @@ -686,8 +690,8 @@ class GnuObjCCompiler(ObjCCompiler): def get_std_warn_flags(self): return GnuObjCCompiler.std_warn_flags - def get_std_opt_flags(self): - return GnuObjCCompiler.std_opt_flags + def get_buildtype_flags(self, buildtype): + return gnulike_buildtype_flags[buildtype] def get_pch_suffix(self): return 'gch' @@ -711,8 +715,8 @@ class GnuObjCPPCompiler(ObjCPPCompiler): def get_std_warn_flags(self): return GnuObjCPPCompiler.std_warn_flags - def get_std_opt_flags(self): - return GnuObjCPPCompiler.std_opt_flags + def get_buildtype_flags(self, buildtype): + return gnulike_buildtype_flags[buildtype] def get_pch_suffix(self): return 'gch' @@ -737,7 +741,6 @@ class ClangObjCPPCompiler(GnuObjCPPCompiler): class ClangCCompiler(CCompiler): std_warn_flags = ['-Wall', '-Winvalid-pch'] - std_opt_flags = ['-O2'] def __init__(self, exelist, version, is_cross, exe_wrapper=None): CCompiler.__init__(self, exelist, version, is_cross, exe_wrapper) @@ -746,8 +749,8 @@ class ClangCCompiler(CCompiler): def get_std_warn_flags(self): return ClangCCompiler.std_warn_flags - def get_std_opt_flags(self): - return ClangCCompiler.std_opt_flags + def get_buildtype_flags(self, buildtype): + return gnulike_buildtype_flags[buildtype] def get_pch_suffix(self): return 'pch' @@ -759,7 +762,6 @@ class ClangCCompiler(CCompiler): class GnuCPPCompiler(CPPCompiler): std_warn_flags = ['-Wall', '-Winvalid-pch'] - std_opt_flags = ['-O2'] # may need to separate the latter to extra_debug_flags or something std_debug_flags = ['-g'] @@ -777,8 +779,8 @@ class GnuCPPCompiler(CPPCompiler): def get_std_warn_flags(self): return GnuCPPCompiler.std_warn_flags - def get_std_opt_flags(self): - return GnuCPPCompiler.std_opt_flags + def get_buildtype_flags(self, buildtype): + return gnulike_buildtype_flags[buildtype] def get_pch_suffix(self): return 'gch' @@ -793,7 +795,6 @@ class GnuCPPCompiler(CPPCompiler): class ClangCPPCompiler(CPPCompiler): std_warn_flags = ['-Wall', '-Winvalid-pch'] - std_opt_flags = ['-O2'] def __init__(self, exelist, version, is_cross, exe_wrapper=None): CPPCompiler.__init__(self, exelist, version, is_cross, exe_wrapper) @@ -802,8 +803,8 @@ class ClangCPPCompiler(CPPCompiler): def get_std_warn_flags(self): return ClangCPPCompiler.std_warn_flags - def get_std_opt_flags(self): - return ClangCPPCompiler.std_opt_flags + def get_buildtype_flags(self, buildtype): + return gnulike_buildtype_flags[buildtype] def get_pch_suffix(self): return 'pch' @@ -27,7 +27,7 @@ usage_info = '%prog [options] source_dir build_dir' parser = OptionParser(usage=usage_info, version=coredata.version) -build_types = ['plain', 'debug', 'optimized'] +build_types = ['plain', 'debug', 'debugoptimized', 'release'] buildtype_help = 'build type, one of: %s' % ', '.join(build_types) buildtype_help += ' (default: %default)' diff --git a/mesongui.py b/mesongui.py index 1f71709..655ad6e 100755 --- a/mesongui.py +++ b/mesongui.py @@ -238,7 +238,8 @@ class OptionForm: combo = QComboBox() combo.addItem('plain') combo.addItem('debug') - combo.addItem('optimized') + combo.addItem('debugoptimized') + combo.addItem('release') combo.setCurrentText(self.coredata.buildtype) combo.currentTextChanged.connect(self.build_type_changed) self.form.addRow('Build type', combo) |