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.
26 lines
1.5 KiB
26 lines
1.5 KiB
project('static rust and c polyglot executable', 'c', 'rust') |
|
|
|
r = static_library('stuff', 'stuff.rs', rust_crate_type : 'staticlib') |
|
|
|
# clib is installed static library and stuff is not installed. That means that |
|
# to be usable clib must link_whole stuff. Meson automatically promote to link_whole, |
|
# as it would do with C libraries, but then cannot extract objects from stuff and |
|
# thus should error out. |
|
# FIXME: We should support this use-case in the future. |
|
testcase expect_error('Cannot link_whole a custom or Rust target \'stuff\' into a static library \'clib\'. Instead, pass individual object files with the "objects:" keyword argument if possible. Meson had to promote link to link_whole because \'clib\' is installed but not \'stuff\', and thus has to include objects from \'stuff\' to be usable.') |
|
l = static_library('clib', 'clib.c', link_with : r, install : true) |
|
endtestcase |
|
|
|
l = static_library('clib', 'clib.c', link_with : r) |
|
|
|
e = executable('prog', 'prog.c', |
|
link_with : l, |
|
install : true) |
|
test('polyglottest', e) |
|
|
|
# Create a version that has overflow-checks on, then run a test to ensure that |
|
# the overflow-checks is larger than the other version by some amount |
|
r2 = static_library('stuff2', 'stuff.rs', rust_crate_type : 'staticlib', rust_args : ['-C', 'overflow-checks=on']) |
|
l2 = static_library('clib2', 'clib.c') |
|
e2 = executable('prog2', 'prog.c', link_with : [r2, l2]) |
|
test('overflow-checks', find_program('overflow_size_checks.py'), args : [e, e2])
|
|
|