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

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