aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2017-05-09 18:45:06 +0300
committerGitHub <noreply@github.com>2017-05-09 18:45:06 +0300
commit1aa68cf6e3b05b63bf858aa005c34aeea362e3f9 (patch)
tree5973a0809f6a40a12a52d0d445a5cc4bf51acda2
parent39520d568896a96b95df843c22a2120d571daee3 (diff)
parentebb228a11be9defb4cd2a2e75ce63c5c09686edd (diff)
downloadmeson-1aa68cf6e3b05b63bf858aa005c34aeea362e3f9.zip
meson-1aa68cf6e3b05b63bf858aa005c34aeea362e3f9.tar.gz
meson-1aa68cf6e3b05b63bf858aa005c34aeea362e3f9.tar.bz2
Merge pull request #1610 from valum-framework/vala-use-generate-basic-compiler-args
Use 'generate_basic_compiler_args' for Vala targets
-rw-r--r--mesonbuild/backend/backends.py13
-rw-r--r--mesonbuild/backend/ninjabackend.py23
-rw-r--r--mesonbuild/compilers.py12
3 files changed, 25 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 bbae408..797fb64 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..a36f184 100644
--- a/mesonbuild/compilers.py
+++ b/mesonbuild/compilers.py
@@ -1678,6 +1678,18 @@ 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_no_warn_args(self):
+ return ['--disable-warnings']
+
def get_werror_args(self):
return ['--fatal-warnings']