|
|
|
# This test is on its own because it is special.
|
|
|
|
# To run the test you need the prebuilt object
|
|
|
|
# file for the given platform.
|
|
|
|
#
|
|
|
|
# Combined with cross compilation this would make
|
|
|
|
# the state space explode so let's just keep this
|
|
|
|
# in its own subdir so it's not run during cross
|
|
|
|
# compilation tests.
|
|
|
|
|
|
|
|
project('prebuilt object', 'c')
|
|
|
|
|
|
|
|
if host_machine.system() == 'windows'
|
|
|
|
prebuilt = 'prebuilt.obj'
|
|
|
|
else
|
|
|
|
prebuilt = 'prebuilt.o'
|
|
|
|
endif
|
|
|
|
|
|
|
|
# Remember: do not put source.c in this
|
|
|
|
# declaration. run_tests.py generates the
|
|
|
|
# prebuilt object before running this test.
|
|
|
|
|
|
|
|
e = []
|
|
|
|
|
|
|
|
e += executable('exe1', sources: 'main.c', objects: prebuilt)
|
|
|
|
e += executable('exe2', sources: 'main.c', objects: files(prebuilt))
|
|
|
|
|
|
|
|
sl1 = static_library('lib3', objects: prebuilt)
|
|
|
|
e += executable('exe3', sources: 'main.c', objects: sl1.extract_all_objects(recursive: true))
|
|
|
|
|
|
|
|
ct = custom_target(output: 'copy-' + prebuilt, input: prebuilt,
|
|
|
|
command: [find_program('cp.py'), '@INPUT@', '@OUTPUT@'])
|
|
|
|
e += executable('exe4', 'main.c', ct)
|
|
|
|
e += executable('exe5', 'main.c', ct[0])
|
|
|
|
|
|
|
|
sl2 = static_library('lib6', sources: ct)
|
|
|
|
e += executable('exe6', sources: 'main.c', objects: sl2.extract_all_objects(recursive: true))
|
|
|
|
|
|
|
|
e += executable('exe7', sources: 'main.c', objects: ct)
|
|
|
|
e += executable('exe8', sources: 'main.c', objects: ct[0])
|
|
|
|
|
|
|
|
sl3 = static_library('lib9', objects: ct)
|
|
|
|
e += executable('exe9', sources: 'main.c', objects: sl2.extract_all_objects(recursive: true))
|
|
|
|
|
|
|
|
foreach i : e
|
|
|
|
test(i.name(), i)
|
|
|
|
endforeach
|