aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/build.py
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2017-09-18 20:23:56 +0300
committerGitHub <noreply@github.com>2017-09-18 20:23:56 +0300
commit076f3c53bd4d959448507eb904ed9d5890a6f121 (patch)
tree68ef3357b7cd46c4d5c6b94d0c3fdf2f3079c4b1 /mesonbuild/build.py
parent0b0448f8f2b062355242c86bb59c2596789fd90f (diff)
parentc3c37fac38dcea1f00cb6750722b39704ef8fc10 (diff)
downloadmeson-076f3c53bd4d959448507eb904ed9d5890a6f121.zip
meson-076f3c53bd4d959448507eb904ed9d5890a6f121.tar.gz
meson-076f3c53bd4d959448507eb904ed9d5890a6f121.tar.bz2
Merge pull request #2263 from ximion/dlang
d: Add an easy way to use D-specific features
Diffstat (limited to 'mesonbuild/build.py')
-rw-r--r--mesonbuild/build.py20
1 files changed, 19 insertions, 1 deletions
diff --git a/mesonbuild/build.py b/mesonbuild/build.py
index 89689d7..5bf2874 100644
--- a/mesonbuild/build.py
+++ b/mesonbuild/build.py
@@ -36,6 +36,9 @@ known_basic_kwargs = {'install': True,
'vala_args': True,
'fortran_args': True,
'd_args': True,
+ 'd_import_dirs': True,
+ 'd_unittest': True,
+ 'd_module_versions': True,
'java_args': True,
'rust_args': True,
'link_args': True,
@@ -351,11 +354,11 @@ class BuildTarget(Target):
# 1. Pre-existing objects provided by the user with the `objects:` kwarg
# 2. Compiled objects created by and extracted from another target
self.process_objectlist(objects)
+ self.process_compilers()
self.process_kwargs(kwargs, environment)
self.check_unknown_kwargs(kwargs)
if not self.sources and not self.generated and not self.objects:
raise InvalidArguments('Build target %s has no sources.' % name)
- self.process_compilers()
self.validate_sources()
self.validate_cross_install(environment)
@@ -669,8 +672,23 @@ class BuildTarget(Target):
self.vala_header = kwargs.get('vala_header', self.name + '.h')
self.vala_vapi = kwargs.get('vala_vapi', self.name + '.vapi')
self.vala_gir = kwargs.get('vala_gir', None)
+
dlist = stringlistify(kwargs.get('d_args', []))
self.add_compiler_args('d', dlist)
+ dfeatures = dict()
+ dfeature_unittest = kwargs.get('d_unittest', False)
+ if dfeature_unittest:
+ dfeatures['unittest'] = dfeature_unittest
+ dfeature_versions = kwargs.get('d_module_versions', None)
+ if dfeature_versions:
+ dfeatures['versions'] = dfeature_versions
+ dfeature_import_dirs = kwargs.get('d_import_dirs', None)
+ if dfeature_import_dirs:
+ dfeatures['import_dirs'] = dfeature_import_dirs
+ if dfeatures:
+ if 'd' in self.compilers:
+ self.add_compiler_args('d', self.compilers['d'].get_feature_args(dfeatures))
+
self.link_args = flatten(kwargs.get('link_args', []))
for i in self.link_args:
if not isinstance(i, str):