|
|
|
project('object extraction', 'c')
|
|
|
|
|
|
|
|
if meson.is_unity()
|
|
|
|
message('Skipping extraction test because this is a Unity build.')
|
|
|
|
else
|
|
|
|
lib1 = library('somelib', 'src/lib.c')
|
|
|
|
lib2 = library('somelib2', 'lib.c', 'header.h', 'lib2.c')
|
|
|
|
|
|
|
|
obj1 = lib1.extract_objects('src/lib.c')
|
|
|
|
obj2 = lib2.extract_objects(['lib.c'])
|
|
|
|
obj3 = lib2.extract_objects(files('lib.c'))
|
|
|
|
obj4 = lib2.extract_objects(['lib.c', 'lib.c'])
|
|
|
|
obj5 = lib2.extract_objects(['lib.c', 'header.h'])
|
|
|
|
obj6 = lib2.extract_all_objects(recursive: true)
|
|
|
|
|
|
|
|
e1 = executable('main1', 'main.c', objects : obj1)
|
|
|
|
e2 = executable('main2', 'main.c', objects : obj2)
|
|
|
|
e3 = executable('main3', 'main.c', objects : obj3)
|
|
|
|
e4 = executable('main4', 'main.c', objects : obj4)
|
|
|
|
e5 = executable('main5', 'main.c', objects : obj5)
|
|
|
|
e6 = executable('main6', 'main.c', objects : obj6)
|
|
|
|
|
|
|
|
custom_target('custom_target with object inputs', output: 'objs',
|
|
|
|
input: [obj1, obj2, obj3, obj5, obj6],
|
|
|
|
build_by_default: true,
|
|
|
|
command: [find_program('check-obj.py'), meson.backend(), '@INPUT@'],
|
|
|
|
capture: true)
|
|
|
|
|
|
|
|
test('extraction test 1', e1)
|
|
|
|
test('extraction test 2', e2)
|
|
|
|
test('extraction test 3', e3)
|
|
|
|
test('extraction test 4', e4)
|
|
|
|
test('extraction test 5', e5)
|
|
|
|
test('extraction test 6', e6)
|
|
|
|
endif
|