The Meson Build System http://mesonbuild.com/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

50 lines
1.6 KiB

dep3_libs = []
# Permutate all combinations of shared and static libraries up to three levels
# executable -> shared -> static -> shared (etc)
foreach dep2 : ['sh', 'st']
foreach dep1 : ['sh', 'st']
foreach libtype : ['sh', 'st']
name = libtype + dep1 + dep2
if dep2 == 'sh'
libret = 1
elif dep2 == 'st'
libret = 2
else
error('Unknown dep2 "@0@"'.format(dep2))
endif
if libtype == 'sh'
target = 'shared_library'
build_args = []
elif libtype == 'st'
target = 'static_library'
build_args = ['-DMESON_STATIC_BUILD']
else
error('Unknown libtype "@0@"'.format(libtype))
endif
cdata = configuration_data()
cdata.set('DEPENDENCY', dep1 + dep2)
cdata.set('LIBTYPE', libtype)
cdata.set('VALUE', libret)
lib_c = configure_file(input : 'lib.c.in',
output : name + '-lib.c',
configuration : cdata)
dep = get_variable(dep1 + dep2 + 'dep')
dep3_lib = build_target(name, lib_c, link_with : dep,
target_type : target,
c_args : build_args)
dep3_libs += [dep3_lib]
main_c = configure_file(input : 'main.c.in',
output : name + '-main.c',
configuration : cdata)
dep3_bin = executable(name, main_c, link_with : dep3_lib,
c_args : build_args)
test(name + 'test', dep3_bin)
endforeach
endforeach
endforeach