diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2017-07-31 07:53:03 -0400 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2017-07-31 18:47:09 -0400 |
commit | a572ebd2a19ff9501e3c03b0cec71f5a5aef5ceb (patch) | |
tree | 1a391342821a8e1e896731a5f8ff2f7dc43be39c | |
parent | 1826872fd25cf72ec65378891125a264e625da88 (diff) | |
download | meson-a572ebd2a19ff9501e3c03b0cec71f5a5aef5ceb.zip meson-a572ebd2a19ff9501e3c03b0cec71f5a5aef5ceb.tar.gz meson-a572ebd2a19ff9501e3c03b0cec71f5a5aef5ceb.tar.bz2 |
Convert man inputs to Files so you can install_man the output of configure_file. Closes #2135.
-rw-r--r-- | mesonbuild/backend/ninjabackend.py | 4 | ||||
-rw-r--r-- | mesonbuild/interpreter.py | 12 | ||||
-rw-r--r-- | test cases/common/10 man install/baz.1.in | 6 | ||||
-rw-r--r-- | test cases/common/10 man install/installed_files.txt | 1 | ||||
-rw-r--r-- | test cases/common/10 man install/meson.build | 8 |
5 files changed, 20 insertions, 11 deletions
diff --git a/mesonbuild/backend/ninjabackend.py b/mesonbuild/backend/ninjabackend.py index 5fc6d6b..f77d2b1 100644 --- a/mesonbuild/backend/ninjabackend.py +++ b/mesonbuild/backend/ninjabackend.py @@ -782,8 +782,8 @@ int dummy; subdir = m.get_custom_install_dir() if subdir is None: subdir = os.path.join(manroot, 'man' + num) - srcabs = os.path.join(self.environment.get_source_dir(), m.get_source_subdir(), f) - dstabs = os.path.join(subdir, os.path.split(f)[1] + '.gz') + srcabs = f.absolute_path(self.environment.get_source_dir(), self.environment.get_build_dir()) + dstabs = os.path.join(subdir, os.path.split(f.fname)[1] + '.gz') i = [srcabs, dstabs] d.man.append(i) diff --git a/mesonbuild/interpreter.py b/mesonbuild/interpreter.py index 1858e8c..94fb649 100644 --- a/mesonbuild/interpreter.py +++ b/mesonbuild/interpreter.py @@ -465,13 +465,10 @@ class InstallDir(InterpreterObject): class Man(InterpreterObject): - def __init__(self, source_subdir, sources, kwargs): + def __init__(self, sources, kwargs): InterpreterObject.__init__(self) - self.source_subdir = source_subdir self.sources = sources self.validate_sources() - if len(kwargs) > 1: - raise InvalidArguments('Man function takes at most one keyword arguments.') self.custom_install_dir = kwargs.get('install_dir', None) if self.custom_install_dir is not None and not isinstance(self.custom_install_dir, str): raise InterpreterException('Custom_install_dir must be a string.') @@ -491,9 +488,6 @@ class Man(InterpreterObject): def get_sources(self): return self.sources - def get_source_subdir(self): - return self.source_subdir - class GeneratedObjectsHolder(InterpreterObject): def __init__(self, held_object): super().__init__() @@ -2354,9 +2348,9 @@ class Interpreter(InterpreterBase): return h @permittedKwargs(permitted_kwargs['install_man']) - @stringArgs def func_install_man(self, node, args, kwargs): - m = Man(self.subdir, args, kwargs) + fargs = self.source_strings_to_files(args) + m = Man(fargs, kwargs) self.build.man.append(m) return m diff --git a/test cases/common/10 man install/baz.1.in b/test cases/common/10 man install/baz.1.in new file mode 100644 index 0000000..d0b79b4 --- /dev/null +++ b/test cases/common/10 man install/baz.1.in @@ -0,0 +1,6 @@ +This is a man page of baz.1 it was generated @TODAY@. + +You should not put generation timestamps in real world projects +because they break reproducible builds. This manpage is written +by professionals or under the supervision of professionals. Do +not try this at home. diff --git a/test cases/common/10 man install/installed_files.txt b/test cases/common/10 man install/installed_files.txt index 7b19616..c13baa4 100644 --- a/test cases/common/10 man install/installed_files.txt +++ b/test cases/common/10 man install/installed_files.txt @@ -2,3 +2,4 @@ usr/share/man/man1/foo.1.gz usr/share/man/man2/bar.2.gz usr/share/man/man1/vanishing.1.gz usr/share/man/man2/vanishing.2.gz +usr/share/man/man1/baz.1.gz diff --git a/test cases/common/10 man install/meson.build b/test cases/common/10 man install/meson.build index 8436fa5..8262ffc 100644 --- a/test cases/common/10 man install/meson.build +++ b/test cases/common/10 man install/meson.build @@ -3,3 +3,11 @@ m1 = install_man('foo.1') m2 = install_man('bar.2') install_man('vanishing/vanishing.2') subdir('vanishing') + +cdata = configuration_data() +cdata.set('TODAY', '$this_day') +b1 = configure_file(input : 'baz.1.in', + output : 'baz.1', + configuration : cdata) + +install_man(b1) |