diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2017-05-19 21:01:06 +0300 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2017-05-26 23:27:49 +0300 |
commit | 7882549f860730dda43fcc825b5beb75b0209410 (patch) | |
tree | c43e62a87e4679b6772b4c3b7fe075a7e374aaed /mesonbuild | |
parent | 8d2fbf80841a6b2136ea168fd3b6855a08f86a60 (diff) | |
download | meson-7882549f860730dda43fcc825b5beb75b0209410.zip meson-7882549f860730dda43fcc825b5beb75b0209410.tar.gz meson-7882549f860730dda43fcc825b5beb75b0209410.tar.bz2 |
Target file name must not contain a path separator as that breaks things.
Diffstat (limited to 'mesonbuild')
-rw-r--r-- | mesonbuild/build.py | 2 | ||||
-rw-r--r-- | mesonbuild/interpreter.py | 9 |
2 files changed, 10 insertions, 1 deletions
diff --git a/mesonbuild/build.py b/mesonbuild/build.py index 8163bca..2426417 100644 --- a/mesonbuild/build.py +++ b/mesonbuild/build.py @@ -270,6 +270,8 @@ class EnvironmentVariables: class Target: def __init__(self, name, subdir, build_by_default): + if '/' in name or '\\' in name: + raise InvalidArguments('Target name must not contain a path separator.') self.name = name self.subdir = subdir self.build_by_default = build_by_default diff --git a/mesonbuild/interpreter.py b/mesonbuild/interpreter.py index 948a6d4..63725ab 100644 --- a/mesonbuild/interpreter.py +++ b/mesonbuild/interpreter.py @@ -2593,7 +2593,14 @@ different subdirectory. else: mlog.debug('Unknown target type:', str(targetholder)) raise RuntimeError('Unreachable code') - target = targetclass(name, self.subdir, self.subproject, is_cross, sources, objs, self.environment, kwargs) + # Fix failing test 53 when removing this. + if '/' in name or '\\' in name: + mlog.warning('Target name must not contain a path separator. This will become a hard error in a future release.') + subpart, name = os.path.split(name) + subdir = os.path.join(self.subdir, subpart) + else: + subdir = self.subdir + target = targetclass(name, subdir, self.subproject, is_cross, sources, objs, self.environment, kwargs) if is_cross: self.add_cross_stdlib_info(target) l = targetholder(target, self) |