project('recursive dependencies', 'c')

# Test that you can link a shared executable to:
# - A shared library with no other deps
subdir('shnodep')
# - A static library with no other deps
subdir('stnodep')
# - A shared library with a shared library dep
subdir('shshdep')
# - A shared library with a static library dep
subdir('shstdep')
# - A static library with a shared library dep
subdir('stshdep')
# - A static library with a static library dep
subdir('ststdep')

test('alldeps',
     executable('alldeps', 'main.c',
                link_with : [shshdep, shstdep, ststdep, stshdep]))

# More combinations of static and shared libraries
subdir('3rdorderdeps')

# Circular dependencies between static libraries
# This requires the use of --start/end-group with GNU ld
subdir('circular')

# Various edge cases that have been reported
subdir('edge-cases')