aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHemmo Nieminen <hemmo.nieminen@iki.fi>2015-04-02 13:54:37 +0300
committerJussi Pakkanen <jpakkane@gmail.com>2015-04-02 14:56:37 +0300
commita3544847ca1414a23d7afe2a77848ea777bba1b0 (patch)
treefeed37b30a6d1535b4e8b11c41489a1d1a0fa901
parent9158c42839ba01d144844f4dcd1f633d0405843b (diff)
downloadmeson-a3544847ca1414a23d7afe2a77848ea777bba1b0.zip
meson-a3544847ca1414a23d7afe2a77848ea777bba1b0.tar.gz
meson-a3544847ca1414a23d7afe2a77848ea777bba1b0.tar.bz2
Accept source files in extract_objects() (also) as a list.
Signed-off-by: Hemmo Nieminen <hemmo.nieminen@iki.fi>
-rw-r--r--build.py17
-rw-r--r--test cases/common/25 object extraction/meson.build11
2 files changed, 18 insertions, 10 deletions
diff --git a/build.py b/build.py
index 89103d5..8efb356 100644
--- a/build.py
+++ b/build.py
@@ -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