diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2017-04-04 20:57:17 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-04-04 20:57:17 +0300 |
commit | 14579ed9c512cf260ce50b303deca4b7356b92ce (patch) | |
tree | 4b04198f3d3884309e92561458dc4597f2cc066e | |
parent | 99649e66908693c58fa0c015dbcce19ad8f55b19 (diff) | |
parent | 734b1973e534df142c2d6487cfae2f247bfa7dca (diff) | |
download | meson-14579ed9c512cf260ce50b303deca4b7356b92ce.zip meson-14579ed9c512cf260ce50b303deca4b7356b92ce.tar.gz meson-14579ed9c512cf260ce50b303deca4b7356b92ce.tar.bz2 |
Merge pull request #1557 from pitti/fix/configure_data-files-input
Fix configure_data files input
-rw-r--r-- | authors.txt | 1 | ||||
-rw-r--r-- | mesonbuild/interpreter.py | 8 | ||||
-rw-r--r-- | mesonbuild/mesonlib.py | 12 | ||||
-rw-r--r-- | test cases/common/16 configure file/meson.build | 5 |
4 files changed, 18 insertions, 8 deletions
diff --git a/authors.txt b/authors.txt index 0c575e7..ab438b7 100644 --- a/authors.txt +++ b/authors.txt @@ -73,3 +73,4 @@ Joe Baldino Peter Harris Roger Boerdijk melak47 +Philipp Ittershagen diff --git a/mesonbuild/interpreter.py b/mesonbuild/interpreter.py index 0c6d980..af2c17d 100644 --- a/mesonbuild/interpreter.py +++ b/mesonbuild/interpreter.py @@ -2290,7 +2290,11 @@ class Interpreter(InterpreterBase): inputfile = inputfile[0] if not isinstance(inputfile, (str, mesonlib.File)): raise InterpreterException('Input must be a string or a file') - ifile_abs = os.path.join(self.environment.source_dir, self.subdir, inputfile) + if isinstance(inputfile, str): + inputfile = os.path.join(self.subdir, inputfile) + else: + inputfile = inputfile.relative_name() + ifile_abs = os.path.join(self.environment.source_dir, inputfile) elif 'command' in kwargs and '@INPUT@' in kwargs['command']: raise InterpreterException('@INPUT@ used as command argument, but no input file specified.') # Validate output @@ -2309,7 +2313,7 @@ class Interpreter(InterpreterBase): if inputfile is not None: # Normalize the path of the conffile to avoid duplicates # This is especially important to convert '/' to '\' on Windows - conffile = os.path.normpath(os.path.join(self.subdir, inputfile)) + conffile = os.path.normpath(inputfile) if conffile not in self.build_def_files: self.build_def_files.append(conffile) os.makedirs(os.path.join(self.environment.build_dir, self.subdir), exist_ok=True) diff --git a/mesonbuild/mesonlib.py b/mesonbuild/mesonlib.py index 7a5b962..ba52219 100644 --- a/mesonbuild/mesonlib.py +++ b/mesonbuild/mesonlib.py @@ -125,14 +125,14 @@ class File: assert(isinstance(self.fname, str)) def __str__(self): - return os.path.join(self.subdir, self.fname) + return self.relative_name() def __repr__(self): ret = '<File: {0}' if not self.is_built: ret += ' (not built)' ret += '>' - return ret.format(os.path.join(self.subdir, self.fname)) + return ret.format(self.relative_name()) @staticmethod def from_source_file(source_root, subdir, fname): @@ -150,15 +150,15 @@ class File: def rel_to_builddir(self, build_to_src): if self.is_built: - return os.path.join(self.subdir, self.fname) + return self.relative_name() else: return os.path.join(build_to_src, self.subdir, self.fname) def absolute_path(self, srcdir, builddir): + absdir = srcdir if self.is_built: - return os.path.join(builddir, self.subdir, self.fname) - else: - return os.path.join(srcdir, self.subdir, self.fname) + absdir = builddir + return os.path.join(absdir, self.relative_name()) def endswith(self, ending): return self.fname.endswith(ending) diff --git a/test cases/common/16 configure file/meson.build b/test cases/common/16 configure file/meson.build index 8271ca3..8ffc28c 100644 --- a/test cases/common/16 configure file/meson.build +++ b/test cases/common/16 configure file/meson.build @@ -22,6 +22,11 @@ e = executable('inctest', 'prog.c', cfile) test('inctest', e) +# Test if we can also pass files() as input +configure_file(input : files('config.h.in'), + output : 'config2.h', + configuration : conf) + # Now generate a header file with an external script. genprog = import('python3').find_python() scriptfile = '@0@/generator.py'.format(meson.current_source_dir()) |