aboutsummaryrefslogtreecommitdiff
path: root/build.py
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2014-06-07 22:37:39 +0300
committerJussi Pakkanen <jpakkane@gmail.com>2014-06-07 23:43:15 +0300
commitf88779319d61e316bef8e5b3f9241cf2d80b3e6d (patch)
tree2dbe8703919d6cafc8483d6ded10655c82544262 /build.py
parent32e67bc94629303279fd97ecf18e39180e6fbb6a (diff)
downloadmeson-f88779319d61e316bef8e5b3f9241cf2d80b3e6d.zip
meson-f88779319d61e316bef8e5b3f9241cf2d80b3e6d.tar.gz
meson-f88779319d61e316bef8e5b3f9241cf2d80b3e6d.tar.bz2
Get compile and link flags from envvars.
Diffstat (limited to 'build.py')
-rw-r--r--build.py32
1 files changed, 30 insertions, 2 deletions
diff --git a/build.py b/build.py
index a6df26f..7a0b374 100644
--- a/build.py
+++ b/build.py
@@ -33,6 +33,8 @@ class Build:
self.compilers = []
self.cross_compilers = []
self.global_args = {}
+ self.external_args = {} # These are set from "the outside" with e.g. mesonconf
+ self.external_link_args = {}
self.tests = []
self.headers = []
self.man = []
@@ -51,12 +53,32 @@ class Build:
return False
def add_compiler(self, compiler):
- if self.static_linker is None and compiler.get_language() != 'java'\
- and compiler.get_language() != 'vala':
+ lang = compiler.get_language()
+ if self.static_linker is None and lang != 'java'\
+ and lang != 'vala':
self.static_linker = self.environment.detect_static_linker(compiler)
if self.has_language(compiler.get_language()):
return
self.compilers.append(compiler)
+ self.get_flags_from_envvars(compiler)
+
+ def get_flags_from_envvars(self, compiler):
+ lang = compiler.get_language()
+ if lang == 'c':
+ compile_flags = os.environ.get('CFLAGS', '').split()
+ compile_flags += os.environ.get('CPPFLAGS', '').split()
+ link_flags = compile_flags + os.environ.get('LDFLAGS', '').split()
+ elif lang == 'cpp':
+ compile_flags = os.environ.get('CXXFLAGS', '').split()
+ compile_flags += os.environ.get('CPPFLAGS', '').split()
+ link_flags = compile_flags + os.environ.get('LDFLAGS', '').split()
+ else:
+ compile_flags = []
+ link_flags = []
+ if len(compile_flags) > 0:
+ self.external_args[lang] = compile_flags
+ if len(link_flags) > 0:
+ self.external_link_args[lang] = link_flags
def add_cross_compiler(self, compiler):
if len(self.cross_compilers) == 0:
@@ -90,6 +112,12 @@ class Build:
def get_global_flags(self, compiler):
return self.global_args.get(compiler.get_language(), [])
+ def get_external_args(self, compiler):
+ return self.external_args.get(compiler.get_language(), [])
+
+ def get_external_link_args(self, compiler):
+ return self.external_link_args.get(compiler.get_language(), [])
+
class IncludeDirs():
def __init__(self, curdir, dirs, kwargs):
self.curdir = curdir