diff options
author | Simon Ser <contact@emersion.fr> | 2021-06-23 10:58:26 +0200 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2021-06-29 20:54:13 +0300 |
commit | 1f3adc4dbe20196eb45b7c0cfe502ce108618ada (patch) | |
tree | 60771f94cfca0c0761a95eafa584c83f478edeaa /mesonbuild/build.py | |
parent | 4bfee181c5a166e3d429bd265e06d299dce50f30 (diff) | |
download | meson-1f3adc4dbe20196eb45b7c0cfe502ce108618ada.zip meson-1f3adc4dbe20196eb45b7c0cfe502ce108618ada.tar.gz meson-1f3adc4dbe20196eb45b7c0cfe502ce108618ada.tar.bz2 |
Add feed arg to custom_target()
Diffstat (limited to 'mesonbuild/build.py')
-rw-r--r-- | mesonbuild/build.py | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/mesonbuild/build.py b/mesonbuild/build.py index f9de5c4..d72aab8 100644 --- a/mesonbuild/build.py +++ b/mesonbuild/build.py @@ -2198,6 +2198,7 @@ class CustomTarget(Target, CommandBase): 'output', 'command', 'capture', + 'feed', 'install', 'install_dir', 'install_mode', @@ -2296,6 +2297,9 @@ class CustomTarget(Target, CommandBase): self.capture = kwargs.get('capture', False) if self.capture and len(self.outputs) != 1: raise InvalidArguments('Capturing can only output to a single file.') + self.feed = kwargs.get('feed', False) + if self.feed and len(self.sources) != 1: + raise InvalidArguments('Feeding can only input from a single file.') self.console = kwargs.get('console', False) if not isinstance(self.console, bool): raise InvalidArguments('"console" kwarg only accepts booleans') @@ -2311,10 +2315,11 @@ class CustomTarget(Target, CommandBase): raise InvalidArguments('Depfile must be a plain filename without a subdirectory.') self.depfile = depfile self.command = self.flatten_command(kwargs['command']) - if self.capture: - for c in self.command: - if isinstance(c, str) and '@OUTPUT@' in c: - raise InvalidArguments('@OUTPUT@ is not allowed when capturing output.') + for c in self.command: + if self.capture and isinstance(c, str) and '@OUTPUT@' in c: + raise InvalidArguments('@OUTPUT@ is not allowed when capturing output.') + if self.feed and isinstance(c, str) and '@INPUT@' in c: + raise InvalidArguments('@INPUT@ is not allowed when feeding input.') if 'install' in kwargs: self.install = kwargs['install'] if not isinstance(self.install, bool): |