project('subproject-sandbox-violation') sub1_d = subproject('subproj1').get_variable('d') sub1_mustfail = sub1_d.get_variable('dir') / '..' / 'file.txt' sub2_d = subproject('subproj2').get_variable('d') sub2_mustfail = sub2_d.get_variable('dir') / 'file.txt' main_d = declare_dependency( variables: [ 'dir=@0@'.format(meson.current_source_dir()), ] ) main_mustfail = main_d.get_variable('dir') / 'subprojects/subproj3/file.txt' if get_option('failmode') == 'parent-dir' mustfail = sub1_mustfail elif get_option('failmode') == 'not-installed' mustfail = sub2_mustfail elif get_option('failmode') == 'root-subdir' mustfail = main_mustfail endif custom_target( 'mustfail', input: mustfail, output: 'file.txt', command: [ 'python3', '-c', 'import os; shutil.copy(sys.argv[1], sys.argv[2])', '@INPUT@', '@OUTPUT@' ], )