diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2021-08-20 18:05:09 +0300 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2021-08-21 22:33:47 +0300 |
commit | 267d5385d441f48ea369b6d3927deab8a0066286 (patch) | |
tree | c2a07e3530ecd3112e485592035d5171c7bdc8b6 | |
parent | 12e7b3afcf0b7772c929b75abd7c80f0454e2c48 (diff) | |
download | meson-267d5385d441f48ea369b6d3927deab8a0066286.zip meson-267d5385d441f48ea369b6d3927deab8a0066286.tar.gz meson-267d5385d441f48ea369b6d3927deab8a0066286.tar.bz2 |
Path special casing for the Xcode backend.
-rw-r--r-- | mesonbuild/backend/backends.py | 6 | ||||
-rw-r--r-- | mesonbuild/backend/xcodebackend.py | 6 | ||||
-rw-r--r-- | test cases/common/22 object extraction/check-obj.py | 2 |
3 files changed, 11 insertions, 3 deletions
diff --git a/mesonbuild/backend/backends.py b/mesonbuild/backend/backends.py index 658f031..d71cae3 100644 --- a/mesonbuild/backend/backends.py +++ b/mesonbuild/backend/backends.py @@ -1269,7 +1269,8 @@ class Backend: elif isinstance(i, build.GeneratedList): fname = [os.path.join(self.get_target_private_dir(target), p) for p in i.get_outputs()] elif isinstance(i, build.ExtractedObjects): - fname = [os.path.join(self.get_target_private_dir(i.target), p) for p in i.get_outputs(self)] + outputs = i.get_outputs(self) + fname = self.get_extracted_obj_paths(i.target, outputs) else: fname = [i.rel_to_builddir(self.build_to_src)] if target.absolute_paths: @@ -1277,6 +1278,9 @@ class Backend: srcs += fname return srcs + def get_extracted_obj_paths(self, target: build.BuildTarget, outputs: T.List[str]) -> T.List[str]: + return [os.path.join(self.get_target_private_dir(target), p) for p in outputs] + def get_custom_target_depend_files(self, target: build.CustomTarget, absolute_paths: bool = False) -> T.List[str]: deps: T.List[str] = [] for i in target.depend_files: diff --git a/mesonbuild/backend/xcodebackend.py b/mesonbuild/backend/xcodebackend.py index d9f5bfa..2d1caae 100644 --- a/mesonbuild/backend/xcodebackend.py +++ b/mesonbuild/backend/xcodebackend.py @@ -250,7 +250,11 @@ class XCodeBackend(backends.Backend): if isinstance(source, mesonlib.File): source = source.fname stem = os.path.splitext(os.path.basename(source))[0] - return f'{project}.build/{buildtype}/{tname}.build/Objects-normal/{arch}/{stem}.o' + obj_path = f'{project}.build/{buildtype}/{tname}.build/Objects-normal/{arch}/{stem}.o' + return obj_path + + def get_extracted_obj_paths(self, target: build.BuildTarget, outputs: T.List[str])-> T.List[str]: + return outputs def generate(self): self.serialize_tests() diff --git a/test cases/common/22 object extraction/check-obj.py b/test cases/common/22 object extraction/check-obj.py index 99c2cc5..d2df930 100644 --- a/test cases/common/22 object extraction/check-obj.py +++ b/test cases/common/22 object extraction/check-obj.py @@ -15,7 +15,7 @@ if sys.argv[1] == 'ninja': for obj in sys.argv[2:]: if not os.path.exists(obj): - sys.exit(1) + sys.exit(f'File {obj} not found.') if sys.argv[1] == 'ninja' and obj not in output: sys.exit(1) print('Verified', obj) |