diff options
author | Dylan Baker <dylan@pnwbakers.com> | 2021-10-01 09:47:48 -0700 |
---|---|---|
committer | Dylan Baker <dylan@pnwbakers.com> | 2022-03-07 12:33:33 -0800 |
commit | da2cdacb28f1326799b6c3e039b4c2ea6cf3c35b (patch) | |
tree | b8f9129c02ac5e34a4e12aab159bfb4e62bc7286 | |
parent | 9519a5b7fd0f12ee60bd62a5c6a639e3230ace73 (diff) | |
download | meson-da2cdacb28f1326799b6c3e039b4c2ea6cf3c35b.zip meson-da2cdacb28f1326799b6c3e039b4c2ea6cf3c35b.tar.gz meson-da2cdacb28f1326799b6c3e039b4c2ea6cf3c35b.tar.bz2 |
backend/ninja: add rules to copy files to the build dir
-rw-r--r-- | mesonbuild/backend/ninjabackend.py | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/mesonbuild/backend/ninjabackend.py b/mesonbuild/backend/ninjabackend.py index a66111b..a8616b8 100644 --- a/mesonbuild/backend/ninjabackend.py +++ b/mesonbuild/backend/ninjabackend.py @@ -1176,6 +1176,8 @@ class NinjaBackend(backends.Backend): self.add_rule(NinjaRule('CUSTOM_COMMAND_DEP', ['$COMMAND'], [], '$DESC', deps='gcc', depfile='$DEPFILE', extra='restat = 1')) + self.add_rule(NinjaRule('COPY_FILE', self.environment.get_build_command() + ['--internal', 'copy'], + ['$in', '$out'], 'Copying $in to $out')) c = self.environment.get_build_command() + \ ['--internal', @@ -1650,6 +1652,16 @@ class NinjaBackend(backends.Backend): return static_sources, generated_sources, cython_sources + def _generate_copy_target(self, src: 'mesonlib.FileOrString', output: Path) -> None: + """Create a target to copy a source file from one location to another.""" + if isinstance(src, File): + instr = src.absolute_path(self.environment.source_dir, self.environment.build_dir) + else: + instr = src + elem = NinjaBuildElement(self.all_outputs, [str(output)], 'COPY_FILE', [instr]) + elem.add_orderdep(instr) + self.add_build(elem) + def generate_rust_target(self, target: build.BuildTarget) -> None: rustc = target.compilers['rust'] # Rust compiler takes only the main file as input and |