project('rust proc-macro', 'rust') if build_machine.system() != 'linux' error('MESON_SKIP_TEST, this test only works on Linux. Patches welcome.') endif pm = shared_library( 'proc_macro_examples', 'proc.rs', rust_crate_type : 'proc-macro', ) main = executable( 'main', 'use.rs', link_with : pm, rust_args : ['-C', 'panic=abort'], ) test('main_test', main) rust = import('rust') pm = rust.proc_macro('proc_macro_examples2', 'proc.rs') main = executable( 'main2', 'use.rs', link_with : pm, rust_dependency_map : {'proc_macro_examples2' : 'proc_macro_examples'} ) test('main_test2', main) subdir('subdir') staticlib = static_library('staticlib', 'lib.rs', link_with: pm_in_subdir, rust_dependency_map : {'proc_macro_examples3' : 'proc_macro_examples'} ) executable('transitive-proc-macro', 'transitive-proc-macro.rs', link_with: staticlib, )