diff options
| author | Scott Kyle <scott@appden.com> | 2024-06-23 12:00:29 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-06-23 22:00:29 +0300 |
| commit | f5ec07e7c35ac2bf7ff9ee13ccf2818da53baabd (patch) | |
| tree | 3fb6bdc947eddeb420eef91221628224985eb965 /mesonbuild | |
| parent | a28dde40b5b85c97b2eefee63db62ac49e46ca0c (diff) | |
| download | meson-f5ec07e7c35ac2bf7ff9ee13ccf2818da53baabd.tar.gz | |
Ensure private directory exists for custom targets (#13196)
* Ensure private directory exists for custom targets
Some custom target commands will expect the `@PRIVATE_DIR@` to already exist, such as with `make -C @PRIVATE_DIR@ ...`
* Prefer `exist_ok` over catching exception
Diffstat (limited to 'mesonbuild')
| -rw-r--r-- | mesonbuild/backend/backends.py | 6 | ||||
| -rw-r--r-- | mesonbuild/backend/ninjabackend.py | 7 |
2 files changed, 5 insertions, 8 deletions
diff --git a/mesonbuild/backend/backends.py b/mesonbuild/backend/backends.py index 055211090..cfae28bab 100644 --- a/mesonbuild/backend/backends.py +++ b/mesonbuild/backend/backends.py @@ -1578,9 +1578,9 @@ class Backend: dfilename = os.path.join(outdir, target.depfile) i = i.replace('@DEPFILE@', dfilename) if '@PRIVATE_DIR@' in i: - if target.absolute_paths: - pdir = self.get_target_private_dir_abs(target) - else: + pdir = self.get_target_private_dir_abs(target) + os.makedirs(pdir, exist_ok=True) + if not target.absolute_paths: pdir = self.get_target_private_dir(target) i = i.replace('@PRIVATE_DIR@', pdir) else: diff --git a/mesonbuild/backend/ninjabackend.py b/mesonbuild/backend/ninjabackend.py index 30529676f..eabe75865 100644 --- a/mesonbuild/backend/ninjabackend.py +++ b/mesonbuild/backend/ninjabackend.py @@ -864,11 +864,8 @@ class NinjaBackend(backends.Backend): tgt[lnk_hash] = lnk_block def generate_target(self, target): - try: - if isinstance(target, build.BuildTarget): - os.makedirs(self.get_target_private_dir_abs(target)) - except FileExistsError: - pass + if isinstance(target, build.BuildTarget): + os.makedirs(self.get_target_private_dir_abs(target), exist_ok=True) if isinstance(target, build.CustomTarget): self.generate_custom_target(target) if isinstance(target, build.RunTarget): |
