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.
25 lines
899 B
25 lines
899 B
# Regression test for a diamond dependency graph: |
|
# ┌►R1┐ |
|
# main-►R3─┤ ├─►C1 |
|
# └►R2┘ |
|
# Both libr1.rlib and libr2.rlib used to contain func.c.o. That was causing |
|
# libr3.rlib to have duplicated func.c.o and then libmain.so failed to link: |
|
# multiple definition of `c_func'. |
|
|
|
libc1 = static_library('c1', 'func.c') |
|
libr1 = static_library('r1', 'r1.rs', link_with: libc1) |
|
libr2 = static_library('r2', 'r2.rs', link_with: libc1) |
|
libr3 = static_library('r3', 'r3.rs', |
|
link_with: [libr1, libr2], |
|
rust_abi: 'c', |
|
) |
|
shared_library('main', 'main.c', link_whole: [libr3]) |
|
|
|
# Same dependency graph, but r3 is now installed. Since c1, r1 and r2 are |
|
# not installed, r3 must contain them. |
|
libr3 = static_library('r3-installed', 'r3.rs', |
|
link_with: [libr1, libr2], |
|
rust_abi: 'c', |
|
install: true, |
|
) |
|
shared_library('main-installed', 'main.c', link_with: [libr3])
|
|
|