diff options
author | Matthias Klumpp <matthias@tenstral.net> | 2016-08-19 03:04:51 +0200 |
---|---|---|
committer | Matthias Klumpp <matthias@tenstral.net> | 2016-08-20 18:48:28 +0200 |
commit | 57c54a678c8eec18df345a44075d59f6384be8f0 (patch) | |
tree | a98c03f4d722eeb341b3465e9b5de11c35d66840 /mesonbuild/interpreter.py | |
parent | 3eb90414f62f857abbb1c62e8e4c823b7b1473e6 (diff) | |
download | meson-57c54a678c8eec18df345a44075d59f6384be8f0.zip meson-57c54a678c8eec18df345a44075d59f6384be8f0.tar.gz meson-57c54a678c8eec18df345a44075d59f6384be8f0.tar.bz2 |
Allow build definitions to retrieve the unittest flag of a D compiler
D allows programmers to define their tests alongside the actual code in
a unittest scope[1].
When compiled with a special flag, the compiler will build a binary
containing the tests instead of the actual application.
This is a strightforward and easy way to run tests and works well with
Mesons test() command.
Since using just one flag name to enable unittest mode would be too
boring, compiler developers invented multiple ones.
Adding this helper method makes it easy for people writing Meson build
descriptions for D projects to enable unittestmode.
[1]: https://dlang.org/spec/unittest.html
Diffstat (limited to 'mesonbuild/interpreter.py')
-rw-r--r-- | mesonbuild/interpreter.py | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/mesonbuild/interpreter.py b/mesonbuild/interpreter.py index 5a6d702..763eb7d 100644 --- a/mesonbuild/interpreter.py +++ b/mesonbuild/interpreter.py @@ -597,6 +597,7 @@ class CompilerHolder(InterpreterObject): 'find_library': self.find_library_method, 'has_argument' : self.has_argument_method, 'first_supported_argument' : self.first_supported_argument_method, + 'get_unittest_flag' : self.get_unittest_flag_method, }) def version_method(self, args, kwargs): @@ -650,6 +651,12 @@ class CompilerHolder(InterpreterObject): def get_id_method(self, args, kwargs): return self.compiler.get_id() + def get_unittest_flag_method(self, args, kwargs): + # At time, only D compilers have this feature. + if not getattr(self.compiler, "get_unittest_flag", None): + return '' + return self.compiler.get_unittest_flag() + def has_member_method(self, args, kwargs): if len(args) != 2: raise InterpreterException('Has_member takes exactly two arguments.') |