diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2013-03-09 23:53:02 +0200 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2013-03-09 23:53:02 +0200 |
commit | f010ec624c4790c78aaa2f61536575b5ca1ab5a9 (patch) | |
tree | 0c1797683d13d5dc33596af34395e57438275aaf | |
parent | bbed8ec3d11a3b852e43d0ac88208909d9901b8b (diff) | |
download | meson-f010ec624c4790c78aaa2f61536575b5ca1ab5a9.zip meson-f010ec624c4790c78aaa2f61536575b5ca1ab5a9.tar.gz meson-f010ec624c4790c78aaa2f61536575b5ca1ab5a9.tar.bz2 |
Prevent creation of targets with names that could lead to collisions.
-rw-r--r-- | coredata.py | 11 | ||||
-rwxr-xr-x | interpreter.py | 6 |
2 files changed, 16 insertions, 1 deletions
diff --git a/coredata.py b/coredata.py index 75eadfa..2269118 100644 --- a/coredata.py +++ b/coredata.py @@ -55,3 +55,14 @@ def save(obj, filename): if obj.version != version: raise RuntimeError('Fatal version mismatch corruption.') pickle.dump(obj, open(filename, 'wb')) + +forbidden_target_names = {'clean': None, + 'coverage-text': None, + 'coverage-xml': None, + 'coverage-html': None, + 'phony': None, + 'all': None, + 'test': None, + 'install': None, + 'build.ninja': None + } diff --git a/interpreter.py b/interpreter.py index d745719..a9027fc 100755 --- a/interpreter.py +++ b/interpreter.py @@ -17,6 +17,7 @@ import mparser import nodes import environment +import coredata import os, sys, platform import shutil @@ -662,7 +663,7 @@ class Interpreter(): libname = args[0] if libname in self.coredata.ext_libs and\ self.coredata.ext_libs[libname].found(): - return ExternalLibraryHolder(self.coredata.ext_progs[libname]) + return ExternalLibraryHolder(self.coredata.ext_libs[libname]) result = self.environment.find_library(libname) extlib = environment.ExternalLibrary(libname, result) libobj = ExternalLibraryHolder(extlib) @@ -789,6 +790,9 @@ class Interpreter(): args = self.flatten(args) name = args[0] sources = args[1:] + if name in coredata.forbidden_target_names: + raise InvalidArguments('Line %d: target name "%s" is reserved for Meson\'s internal use. Please rename.'\ + % (node.lineno(), name)) try: kw_src = self.flatten(kwargs['sources']) if not isinstance(kw_src, list): |