aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2014-04-16 20:51:31 +0300
committerJussi Pakkanen <jpakkane@gmail.com>2014-04-16 20:51:31 +0300
commitb626d017a2ceac9066bca0368be492ec7e4590d9 (patch)
tree1b3cfbfdba315415818044baf203eb1e31c97057
parentac2d7e3440156805003b0a059d20384294a4972e (diff)
downloadmeson-b626d017a2ceac9066bca0368be492ec7e4590d9.zip
meson-b626d017a2ceac9066bca0368be492ec7e4590d9.tar.gz
meson-b626d017a2ceac9066bca0368be492ec7e4590d9.tar.bz2
Specify build flags per build type.
-rw-r--r--backends.py3
-rw-r--r--environment.py35
-rwxr-xr-xmeson.py2
-rwxr-xr-xmesongui.py3
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'
diff --git a/meson.py b/meson.py
index 3b932da..de2ae4b 100755
--- a/meson.py
+++ b/meson.py
@@ -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)