diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2017-04-30 20:58:25 +0300 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2017-05-04 00:17:33 +0300 |
commit | 108dac5c162eb086b8cce3f4d0575f7282c72c48 (patch) | |
tree | 91b2b6f245933d178a1211867b0dacf0b596a2bf | |
parent | 8f4976489627e8a94744ca06e59ea9363e0b379a (diff) | |
download | meson-108dac5c162eb086b8cce3f4d0575f7282c72c48.zip meson-108dac5c162eb086b8cce3f4d0575f7282c72c48.tar.gz meson-108dac5c162eb086b8cce3f4d0575f7282c72c48.tar.bz2 |
Store extra_files as file objects. Helps with #1686.
-rw-r--r-- | mesonbuild/backend/vs2010backend.py | 2 | ||||
-rw-r--r-- | mesonbuild/build.py | 7 | ||||
-rw-r--r-- | mesonbuild/interpreter.py | 5 |
3 files changed, 9 insertions, 5 deletions
diff --git a/mesonbuild/backend/vs2010backend.py b/mesonbuild/backend/vs2010backend.py index 16e96c9..ac4c93b 100644 --- a/mesonbuild/backend/vs2010backend.py +++ b/mesonbuild/backend/vs2010backend.py @@ -980,7 +980,7 @@ class Vs2010Backend(backends.Backend): for h in gen_hdrs: ET.SubElement(inc_hdrs, 'CLInclude', Include=h) for h in target.extra_files: - relpath = os.path.join(proj_to_src_dir, h) + relpath = os.path.join(down, h.rel_to_builddir(self.build_to_src)) ET.SubElement(inc_hdrs, 'CLInclude', Include=relpath) if len(sources) + len(gen_src) + len(pch_sources) > 0: diff --git a/mesonbuild/build.py b/mesonbuild/build.py index c8d692e..7dc0bc7 100644 --- a/mesonbuild/build.py +++ b/mesonbuild/build.py @@ -648,12 +648,11 @@ class BuildTarget(Target): elif 'gui_app' in kwargs: raise InvalidArguments('Argument gui_app can only be used on executables.') extra_files = kwargs.get('extra_files', []) - if isinstance(extra_files, str): + if not isinstance(extra_files, list): extra_files = [extra_files] for i in extra_files: - if not isinstance(i, str): - raise InvalidArguments('Arguments to extra_files must be strings.') - trial = os.path.join(environment.get_source_dir(), self.subdir, i) + assert(isinstance(i, File)) + trial = os.path.join(environment.get_source_dir(), i.subdir, i.fname) if not(os.path.isfile(trial)): raise InvalidArguments('Tried to add non-existing extra file %s.' % i) self.extra_files = extra_files diff --git a/mesonbuild/interpreter.py b/mesonbuild/interpreter.py index 979cdcc..d8f3b2b 100644 --- a/mesonbuild/interpreter.py +++ b/mesonbuild/interpreter.py @@ -2554,6 +2554,11 @@ different subdirectory. sources = self.source_strings_to_files(sources) objs = self.flatten(kwargs.get('objects', [])) kwargs['dependencies'] = self.flatten(kwargs.get('dependencies', [])) + if 'extra_files' in kwargs: + ef = kwargs['extra_files'] + if not isinstance(ef, list): + ef = [ef] + kwargs['extra_files'] = self.source_strings_to_files(ef) if not isinstance(objs, list): objs = [objs] self.check_sources_exist(os.path.join(self.source_root, self.subdir), sources) |