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.
113 lines
2.5 KiB
113 lines
2.5 KiB
project( |
|
'test both libraries', |
|
'c', |
|
meson_version: '>= 1.6.0', |
|
) |
|
|
|
expected = 0 |
|
|
|
|
|
with_bl = both_libraries( |
|
'with_bl', |
|
files('src/both_libraries.c'), |
|
c_shared_args: ['-DEXPORT'], |
|
) |
|
|
|
with_bl_dep = declare_dependency( |
|
link_with: with_bl, |
|
) |
|
|
|
|
|
if get_option('use_dep') |
|
lib_deps = [with_bl_dep] |
|
lib_links = [] |
|
else |
|
lib_deps = [] |
|
lib_links = [with_bl] |
|
endif |
|
|
|
|
|
with_library = library( |
|
'with_library', |
|
files('src/library.c'), |
|
c_shared_args: ['-DEXPORT'], |
|
link_with: lib_links, |
|
dependencies: lib_deps, |
|
) |
|
|
|
with_library_dep = declare_dependency( |
|
link_with: with_library, |
|
) |
|
|
|
|
|
if get_option('default_library') == 'shared' |
|
expected += 1 |
|
if get_option('default_both_libraries') in ['shared', 'auto'] |
|
expected += 1 |
|
endif |
|
elif get_option('default_library') == 'both' |
|
if get_option('default_both_libraries') in ['shared', 'auto'] |
|
expected += 2 |
|
endif |
|
else |
|
if get_option('default_both_libraries') == 'shared' |
|
expected += 1 |
|
endif |
|
endif |
|
|
|
|
|
if get_option('use_dep') |
|
main_deps = [with_library_dep] |
|
main_links = [] |
|
else |
|
main_deps = [] |
|
main_links = [with_library] |
|
endif |
|
|
|
main = executable( |
|
'main', |
|
files('src/main.c'), |
|
c_args: [f'-DEXPECTED=@expected@'], |
|
link_with: main_links, |
|
dependencies: main_deps, |
|
) |
|
test('test both libs', main) |
|
|
|
|
|
if get_option('default_library') == 'both' and get_option('default_both_libraries') == 'auto' |
|
# With those options, even if the both_libraries defaults to 'shared', |
|
# 'static' version is used when linking to the static part of another both_libraries. |
|
|
|
if get_option('use_dep') |
|
main_static_deps = [with_library_dep.as_static(recursive: true)] |
|
main_static_links = [] |
|
else |
|
main_static_deps = [] |
|
main_static_links = [with_library.get_static_lib()] |
|
endif |
|
main_static = executable( |
|
'main_static', |
|
files('src/main.c'), |
|
c_args: [f'-DEXPECTED=0'], |
|
link_with: main_static_links, |
|
dependencies: main_static_deps, |
|
) |
|
test('test static', main_static) |
|
|
|
|
|
if get_option('use_dep') |
|
main_shared_deps = [with_library_dep.as_shared(recursive: true)] |
|
main_shared_links = [] |
|
else |
|
main_shared_deps = [] |
|
main_shared_links = [with_library.get_shared_lib()] |
|
endif |
|
main_shared = executable( |
|
'main_shared', |
|
files('src/main.c'), |
|
c_args: [f'-DEXPECTED=2'], |
|
link_with: main_shared_links, |
|
dependencies: main_shared_deps, |
|
) |
|
test('test shared', main_shared) |
|
endif
|
|
|