aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2018-03-20 23:56:00 +0200
committerJussi Pakkanen <jpakkane@gmail.com>2018-03-21 21:25:47 +0200
commit30827b5644b00aa01c14a116a0c8fec72e63592e (patch)
treec45f0bf4db577d99bad98962c06655b1e4d76137
parentdd614015e079d3ef6f64a38d349deca49b4f03ce (diff)
downloadmeson-30827b5644b00aa01c14a116a0c8fec72e63592e.zip
meson-30827b5644b00aa01c14a116a0c8fec72e63592e.tar.gz
meson-30827b5644b00aa01c14a116a0c8fec72e63592e.tar.bz2
Do not install configure_file output if install_dir is empty. Closes #3270.
-rw-r--r--docs/markdown/Reference-manual.md3
-rw-r--r--mesonbuild/interpreter.py6
-rw-r--r--test cases/common/16 configure file/meson.build6
3 files changed, 12 insertions, 3 deletions
diff --git a/docs/markdown/Reference-manual.md b/docs/markdown/Reference-manual.md
index 0d7dedc..128206b 100644
--- a/docs/markdown/Reference-manual.md
+++ b/docs/markdown/Reference-manual.md
@@ -173,7 +173,8 @@ These are all the supported keyword arguments:
mode, all the variables in the `configuration:` object (see above)
are written to the `output:` file.
- `install_dir` the subdirectory to install the generated file to
- (e.g. `share/myproject`), if omitted the file is not installed.
+ (e.g. `share/myproject`), if omitted or given the value of empty
+ string, the file is not installed.
- `output` the output file name (since v0.41.0, may contain
`@PLAINNAME@` or `@BASENAME@` substitutions). In configuration mode,
the permissions of the input file (if it is specified) are copied to
diff --git a/mesonbuild/interpreter.py b/mesonbuild/interpreter.py
index 029fe59..16798a4 100644
--- a/mesonbuild/interpreter.py
+++ b/mesonbuild/interpreter.py
@@ -2973,9 +2973,11 @@ root and issuing %s.
conffile = os.path.normpath(inputfile.relative_name())
if conffile not in self.build_def_files:
self.build_def_files.append(conffile)
- # Install file if requested
+ # Install file if requested, we check for the empty string
+ # for backwards compatibility. That was the behaviour before
+ # 0.45.0 so preserve it.
idir = kwargs.get('install_dir', None)
- if isinstance(idir, str):
+ if isinstance(idir, str) and idir:
cfile = mesonlib.File.from_built_file(ofile_path, ofile_fname)
self.build.data.append(build.Data([cfile], idir))
return mesonlib.File.from_built_file(self.subdir, output)
diff --git a/test cases/common/16 configure file/meson.build b/test cases/common/16 configure file/meson.build
index eda0a8f..71a2563 100644
--- a/test cases/common/16 configure file/meson.build
+++ b/test cases/common/16 configure file/meson.build
@@ -131,3 +131,9 @@ configure_file(
configuration : conf6
)
test('test6', executable('prog6', 'prog6.c'))
+
+# test empty install dir string
+cfile = configure_file(input : 'config.h.in',
+ output : 'do_not_get_installed.h',
+ install_dir : '',
+ configuration : conf)