|
|
|
# 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.name() == 'darwin'
|
|
|
|
object = 'osx.o'
|
|
|
|
elif host.name() == 'linux'
|
|
|
|
if meson.get_compiler('c').sizeof('void*') == 8
|
|
|
|
object = 'linux-amd64.o'
|
|
|
|
else
|
|
|
|
object = 'linux-i386.o'
|
|
|
|
endif
|
|
|
|
elif host.name() == 'freebsd'
|
|
|
|
if meson.get_compiler('c').sizeof('void*') == 8
|
|
|
|
object = 'freebsd-amd64.o'
|
|
|
|
else
|
|
|
|
object = 'freebsd-i386.o'
|
|
|
|
endif
|
|
|
|
elif host.name() == 'windows'
|
|
|
|
id = meson.get_compiler('c').get_id()
|
|
|
|
if id == 'gcc'
|
|
|
|
object = 'mingw.obj'
|
|
|
|
elif id == 'msvc'
|
|
|
|
object = 'msvc.obj'
|
|
|
|
else
|
|
|
|
error('Unknown compiler.')
|
|
|
|
endif
|
|
|
|
else
|
|
|
|
error('Unknown platform.')
|
|
|
|
endif
|
|
|
|
|
|
|
|
# Remember: do not put source.c in this
|
|
|
|
# declaration. Only the prebuilt object.
|
|
|
|
e = executable('prog', 'main.c',
|
|
|
|
objects : object)
|
|
|
|
|
|
|
|
test('objtest', e)
|