aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mesonbuild/backend/backends.py13
-rw-r--r--mesonbuild/backend/ninjabackend.py23
-rw-r--r--mesonbuild/compilers.py9
3 files changed, 22 insertions, 23 deletions
diff --git a/mesonbuild/backend/backends.py b/mesonbuild/backend/backends.py
index 419d04f..b903f4c 100644
--- a/mesonbuild/backend/backends.py
+++ b/mesonbuild/backend/backends.py
@@ -419,7 +419,18 @@ class Backend:
# NOTE: We must preserve the order in which external deps are
# specified, so we reverse the list before iterating over it.
for dep in reversed(target.get_external_deps()):
- commands += dep.get_compile_args()
+ if compiler.language == 'vala':
+ if isinstance(dep, dependencies.PkgConfigDependency):
+ if dep.name == 'glib-2.0' and dep.version_reqs is not None:
+ for req in dep.version_reqs:
+ if req.startswith(('>=', '==')):
+ commands += ['--target-glib', req[2:]]
+ break
+ commands += ['--pkg', dep.name]
+ elif isinstance(dep, dependencies.ExternalLibrary):
+ commands += dep.get_lang_args('vala')
+ else:
+ commands += dep.get_compile_args()
# Qt needs -fPIC for executables
# XXX: We should move to -fPIC for all executables
if isinstance(target, build.Executable):
diff --git a/mesonbuild/backend/ninjabackend.py b/mesonbuild/backend/ninjabackend.py
index f4c78a1..ac660cf 100644
--- a/mesonbuild/backend/ninjabackend.py
+++ b/mesonbuild/backend/ninjabackend.py
@@ -1070,20 +1070,11 @@ int dummy;
vala_c_src.append(vala_c_file)
valac_outputs.append(vala_c_file)
- # TODO: Use self.generate_basic_compiler_args to get something more
- # consistent Until then, we should be careful to preserve the
- # precedence of arguments if it changes upstream.
- args = []
- args += valac.get_buildtype_args(self.get_option_for_target('buildtype', target))
- args += self.build.get_project_args(valac, target.subproject)
- args += self.build.get_global_args(valac)
- args += self.environment.coredata.external_args[valac.get_language()]
-
+ args = self.generate_basic_compiler_args(target, valac)
# Tell Valac to output everything in our private directory. Sadly this
# means it will also preserve the directory components of Vala sources
# found inside the build tree (generated sources).
args += ['-d', c_out_dir]
- args += ['-C']
if not isinstance(target, build.Executable):
# Library name
args += ['--library=' + target.name]
@@ -1112,18 +1103,6 @@ int dummy;
# Install GIR to default location if requested by user
if len(target.install_dir) > 3 and target.install_dir[3] is True:
target.install_dir[3] = os.path.join(self.environment.get_datadir(), 'gir-1.0')
- if self.get_option_for_target('werror', target):
- args += valac.get_werror_args()
- for d in target.get_external_deps():
- if isinstance(d, dependencies.PkgConfigDependency):
- if d.name == 'glib-2.0' and d.version_reqs is not None:
- for req in d.version_reqs:
- if req.startswith(('>=', '==')):
- args += ['--target-glib', req[2:]]
- break
- args += ['--pkg', d.name]
- elif isinstance(d, dependencies.ExternalLibrary):
- args += d.get_lang_args('vala')
# Detect gresources and add --gresources arguments for each
for (gres, gensrc) in other_src[1].items():
if isinstance(gensrc, modules.GResourceTarget):
diff --git a/mesonbuild/compilers.py b/mesonbuild/compilers.py
index 406c719..6ade23f 100644
--- a/mesonbuild/compilers.py
+++ b/mesonbuild/compilers.py
@@ -1678,6 +1678,15 @@ class ValaCompiler(Compiler):
def get_compile_only_args(self):
return ['-C']
+ def get_pic_args(self):
+ return []
+
+ def get_always_args(self):
+ return ['-C']
+
+ def get_warn_args(self, warning_level):
+ return []
+
def get_werror_args(self):
return ['--fatal-warnings']