diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2016-10-09 05:29:11 -0400 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2016-10-10 19:44:28 +0300 |
commit | c2b852c9b392059cba933b0787c1c7880af5e1ae (patch) | |
tree | fa81f079795e410de3093071ab677eb2e68b83a5 | |
parent | 6eacca2024b6b4366d427a18372dd4d0aa972df7 (diff) | |
download | meson-c2b852c9b392059cba933b0787c1c7880af5e1ae.zip meson-c2b852c9b392059cba933b0787c1c7880af5e1ae.tar.gz meson-c2b852c9b392059cba933b0787c1c7880af5e1ae.tar.bz2 |
Created path_join function.
-rw-r--r-- | mesonbuild/interpreter.py | 10 | ||||
-rw-r--r-- | test cases/common/119 pathjoin/meson.build | 9 |
2 files changed, 19 insertions, 0 deletions
diff --git a/mesonbuild/interpreter.py b/mesonbuild/interpreter.py index b3bb1f2..be19bab 100644 --- a/mesonbuild/interpreter.py +++ b/mesonbuild/interpreter.py @@ -1196,6 +1196,7 @@ class Interpreter(): 'declare_dependency': self.func_declare_dependency, 'assert': self.func_assert, 'environment' : self.func_environment, + 'path_join' : self.func_path_join, } def parse_project(self): @@ -2237,6 +2238,15 @@ class Interpreter(): def func_environment(self, node, args, kwargs): return EnvironmentVariablesHolder() + @stringArgs + @noKwargs + def func_path_join(self, node, args, kwargs): + if isinstance(args, str): + st = (args,) + else: + st = tuple(args) + return os.path.join(*args).replace('\\', '/') + def flatten(self, args): if isinstance(args, mparser.StringNode): return args.value diff --git a/test cases/common/119 pathjoin/meson.build b/test cases/common/119 pathjoin/meson.build new file mode 100644 index 0000000..dd1cf9c --- /dev/null +++ b/test cases/common/119 pathjoin/meson.build @@ -0,0 +1,9 @@ +project('pathjoin', 'c') + +assert(path_join('foo') == 'foo', 'Single argument join is broken') +assert(path_join('foo', 'bar') == 'foo/bar', 'Path joining is broken') +assert(path_join('foo', 'bar', 'baz') == 'foo/bar/baz', 'Path joining is broken') +assert(path_join('/foo', 'bar') == '/foo/bar', 'Path joining is broken') +assert(path_join('foo', '/bar') == '/bar', 'Absolute path joining is broken') +assert(path_join('/foo', '/bar') == '/bar', 'Absolute path joining is broken') + |