diff options
-rw-r--r-- | build.py | 17 | ||||
-rw-r--r-- | test cases/common/25 object extraction/meson.build | 11 |
2 files changed, 18 insertions, 10 deletions
@@ -248,14 +248,17 @@ class BuildTarget(): if 'link_with' in self.kwargs: self.kwargs['link_with'] = self.unpack_holder(self.kwargs['link_with']) - def extract_objects(self, srclist): + def extract_objects(self, srcargs): obj_src = [] - for src in srclist: - if not isinstance(src, str): - raise coredata.MesonException('Extraction arguments must be strings.') - if src not in self.sources: - raise coredata.MesonException('Tried to extract unknown source %s.' % src) - obj_src.append(src) + for srclist in srcargs: + if not isinstance(srclist, list): + srclist = [srclist] + for src in srclist: + if not isinstance(src, str): + raise coredata.MesonException('Extraction arguments must be strings.') + if src not in self.sources: + raise coredata.MesonException('Tried to extract unknown source %s.' % src) + obj_src.append(src) return ExtractedObjects(self, obj_src) def get_rpaths(self): diff --git a/test cases/common/25 object extraction/meson.build b/test cases/common/25 object extraction/meson.build index f936609..0a17c60 100644 --- a/test cases/common/25 object extraction/meson.build +++ b/test cases/common/25 object extraction/meson.build @@ -4,8 +4,13 @@ if meson.is_unity() message('Skipping extraction test because this is a Unity build.') else lib = shared_library('somelib', 'lib.c') - obj = lib.extract_objects('lib.c') - e = executable('main', 'main.c', objects : obj) - test('extraction test', e) + obj1 = lib.extract_objects('lib.c') + obj2 = lib.extract_objects(['lib.c']) + + e1 = executable('main 1', 'main.c', objects : obj1) + e2 = executable('main 2', 'main.c', objects : obj2) + + test('extraction test 1', e1) + test('extraction test 2', e2) endif |