aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--.travis.yml4
-rw-r--r--docs/markdown/Builtin-options.md1
-rw-r--r--docs/markdown/Porting-from-autotools.md4
-rw-r--r--docs/markdown/Reference-manual.md44
-rw-r--r--docs/markdown/Reference-tables.md2
-rw-r--r--docs/markdown/snippets/buildtype_toggles.md21
-rw-r--r--docs/markdown/snippets/dependency_version.md14
-rw-r--r--docs/markdown/snippets/distscript.md12
-rw-r--r--docs/markdown/snippets/native_args.md34
-rwxr-xr-xghwt.py5
-rwxr-xr-xmanual tests/4 standalone binaries/build_windows_package.py2
-rw-r--r--mesonbuild/backend/backends.py16
-rw-r--r--mesonbuild/backend/ninjabackend.py31
-rw-r--r--mesonbuild/backend/vs2010backend.py31
-rw-r--r--mesonbuild/build.py28
-rw-r--r--mesonbuild/compilers/c.py153
-rw-r--r--mesonbuild/compilers/compilers.py172
-rw-r--r--mesonbuild/compilers/cpp.py59
-rw-r--r--mesonbuild/compilers/cs.py13
-rw-r--r--mesonbuild/compilers/d.py172
-rw-r--r--mesonbuild/compilers/fortran.py71
-rw-r--r--mesonbuild/compilers/rust.py16
-rw-r--r--mesonbuild/compilers/swift.py16
-rw-r--r--mesonbuild/compilers/vala.py6
-rw-r--r--mesonbuild/coredata.py60
-rw-r--r--mesonbuild/dependencies/base.py157
-rw-r--r--mesonbuild/dependencies/boost.py2
-rw-r--r--mesonbuild/dependencies/dev.py2
-rw-r--r--mesonbuild/dependencies/misc.py21
-rw-r--r--mesonbuild/dependencies/platform.py6
-rw-r--r--mesonbuild/dependencies/ui.py8
-rw-r--r--mesonbuild/environment.py29
-rw-r--r--mesonbuild/interpreter.py165
-rw-r--r--mesonbuild/linkers.py49
-rw-r--r--mesonbuild/mconf.py5
-rw-r--r--mesonbuild/mesonmain.py12
-rw-r--r--mesonbuild/minstall.py51
-rw-r--r--mesonbuild/mintro.py3
-rw-r--r--mesonbuild/mlog.py3
-rw-r--r--mesonbuild/modules/windows.py27
-rw-r--r--mesonbuild/scripts/dist.py29
-rw-r--r--mesonbuild/wrap/__init__.py9
-rw-r--r--mesonbuild/wrap/wrap.py7
-rw-r--r--mesonbuild/wrap/wraptool.py4
-rwxr-xr-xrun_meson_command_tests.py2
-rwxr-xr-xrun_project_tests.py6
-rwxr-xr-xrun_tests.py36
-rwxr-xr-xrun_unittests.py303
-rw-r--r--test cases/common/100 manygen/depuser.c (renamed from test cases/common/103 manygen/depuser.c)0
-rw-r--r--test cases/common/100 manygen/meson.build (renamed from test cases/common/103 manygen/meson.build)0
-rw-r--r--test cases/common/100 manygen/subdir/funcinfo.def (renamed from test cases/common/103 manygen/subdir/funcinfo.def)0
-rwxr-xr-xtest cases/common/100 manygen/subdir/manygen.py (renamed from test cases/common/103 manygen/subdir/manygen.py)0
-rw-r--r--test cases/common/100 manygen/subdir/meson.build (renamed from test cases/common/103 manygen/subdir/meson.build)0
-rw-r--r--test cases/common/101 stringdef/meson.build (renamed from test cases/common/104 stringdef/meson.build)0
-rw-r--r--test cases/common/101 stringdef/stringdef.c (renamed from test cases/common/104 stringdef/stringdef.c)0
-rw-r--r--test cases/common/102 find program path/meson.build (renamed from test cases/common/105 find program path/meson.build)0
-rwxr-xr-xtest cases/common/102 find program path/program.py (renamed from test cases/common/105 find program path/program.py)0
-rw-r--r--test cases/common/103 subproject subdir/meson.build (renamed from test cases/common/106 subproject subdir/meson.build)0
-rw-r--r--test cases/common/103 subproject subdir/prog.c (renamed from test cases/common/106 subproject subdir/prog.c)0
-rw-r--r--test cases/common/103 subproject subdir/subprojects/sub/lib/meson.build (renamed from test cases/common/106 subproject subdir/subprojects/sub/lib/meson.build)0
-rw-r--r--test cases/common/103 subproject subdir/subprojects/sub/lib/sub.c (renamed from test cases/common/106 subproject subdir/subprojects/sub/lib/sub.c)0
-rw-r--r--test cases/common/103 subproject subdir/subprojects/sub/lib/sub.h (renamed from test cases/common/106 subproject subdir/subprojects/sub/lib/sub.h)0
-rw-r--r--test cases/common/103 subproject subdir/subprojects/sub/meson.build (renamed from test cases/common/106 subproject subdir/subprojects/sub/meson.build)0
-rw-r--r--test cases/common/104 postconf/meson.build (renamed from test cases/common/107 postconf/meson.build)0
-rw-r--r--test cases/common/104 postconf/postconf.py (renamed from test cases/common/107 postconf/postconf.py)0
-rw-r--r--test cases/common/104 postconf/prog.c (renamed from test cases/common/107 postconf/prog.c)0
-rw-r--r--test cases/common/104 postconf/raw.dat (renamed from test cases/common/107 postconf/raw.dat)0
-rw-r--r--test cases/common/105 postconf with args/meson.build (renamed from test cases/common/108 postconf with args/meson.build)0
-rw-r--r--test cases/common/105 postconf with args/postconf.py (renamed from test cases/common/108 postconf with args/postconf.py)0
-rw-r--r--test cases/common/105 postconf with args/prog.c (renamed from test cases/common/108 postconf with args/prog.c)0
-rw-r--r--test cases/common/105 postconf with args/raw.dat (renamed from test cases/common/108 postconf with args/raw.dat)0
-rw-r--r--test cases/common/106 testframework options/meson.build (renamed from test cases/common/109 testframework options/meson.build)0
-rw-r--r--test cases/common/106 testframework options/meson_options.txt (renamed from test cases/common/109 testframework options/meson_options.txt)0
-rw-r--r--test cases/common/106 testframework options/test_args.txt (renamed from test cases/common/109 testframework options/test_args.txt)0
-rw-r--r--test cases/common/107 extract same name/lib.c (renamed from test cases/common/110 extract same name/lib.c)0
-rw-r--r--test cases/common/107 extract same name/main.c (renamed from test cases/common/110 extract same name/main.c)0
-rw-r--r--test cases/common/107 extract same name/meson.build (renamed from test cases/common/110 extract same name/meson.build)0
-rw-r--r--test cases/common/107 extract same name/src/lib.c (renamed from test cases/common/110 extract same name/src/lib.c)0
-rw-r--r--test cases/common/108 has header symbol/meson.build (renamed from test cases/common/111 has header symbol/meson.build)0
-rw-r--r--test cases/common/109 has arg/meson.build (renamed from test cases/common/112 has arg/meson.build)0
-rwxr-xr-xtest cases/common/110 generatorcustom/catter.py (renamed from test cases/common/113 generatorcustom/catter.py)0
-rwxr-xr-xtest cases/common/110 generatorcustom/gen.py (renamed from test cases/common/113 generatorcustom/gen.py)0
-rw-r--r--test cases/common/110 generatorcustom/main.c (renamed from test cases/common/113 generatorcustom/main.c)0
-rw-r--r--test cases/common/110 generatorcustom/meson.build (renamed from test cases/common/113 generatorcustom/meson.build)0
-rw-r--r--test cases/common/110 generatorcustom/res1.txt (renamed from test cases/common/113 generatorcustom/res1.txt)0
-rw-r--r--test cases/common/110 generatorcustom/res2.txt (renamed from test cases/common/113 generatorcustom/res2.txt)0
-rw-r--r--test cases/common/111 multiple dir configure file/meson.build (renamed from test cases/common/114 multiple dir configure file/meson.build)0
-rw-r--r--test cases/common/111 multiple dir configure file/subdir/foo.txt (renamed from test cases/common/114 multiple dir configure file/subdir/foo.txt)0
-rw-r--r--test cases/common/111 multiple dir configure file/subdir/meson.build (renamed from test cases/common/114 multiple dir configure file/subdir/meson.build)0
-rw-r--r--test cases/common/111 multiple dir configure file/subdir/someinput.in (renamed from test cases/common/114 multiple dir configure file/subdir/someinput.in)0
-rw-r--r--test cases/common/112 spaces backslash/asm output/meson.build (renamed from test cases/common/115 spaces backslash/asm output/meson.build)0
-rw-r--r--test cases/common/112 spaces backslash/comparer-end-notstring.c (renamed from test cases/common/115 spaces backslash/comparer-end-notstring.c)0
-rw-r--r--test cases/common/112 spaces backslash/comparer-end.c (renamed from test cases/common/115 spaces backslash/comparer-end.c)0
-rw-r--r--test cases/common/112 spaces backslash/comparer.c (renamed from test cases/common/115 spaces backslash/comparer.c)0
-rw-r--r--test cases/common/112 spaces backslash/include/comparer.h (renamed from test cases/common/115 spaces backslash/include/comparer.h)0
-rw-r--r--test cases/common/112 spaces backslash/meson.build (renamed from test cases/common/115 spaces backslash/meson.build)0
-rw-r--r--test cases/common/113 ternary/meson.build (renamed from test cases/common/116 ternary/meson.build)0
-rw-r--r--test cases/common/114 custom target capture/data_source.txt (renamed from test cases/common/117 custom target capture/data_source.txt)0
-rw-r--r--test cases/common/114 custom target capture/installed_files.txt (renamed from test cases/common/117 custom target capture/installed_files.txt)0
-rw-r--r--test cases/common/114 custom target capture/meson.build (renamed from test cases/common/117 custom target capture/meson.build)0
-rwxr-xr-xtest cases/common/114 custom target capture/my_compiler.py (renamed from test cases/common/117 custom target capture/my_compiler.py)0
-rwxr-xr-xtest cases/common/115 allgenerate/converter.py (renamed from test cases/common/118 allgenerate/converter.py)0
-rw-r--r--test cases/common/115 allgenerate/foobar.cpp.in (renamed from test cases/common/118 allgenerate/foobar.cpp.in)0
-rw-r--r--test cases/common/115 allgenerate/meson.build (renamed from test cases/common/118 allgenerate/meson.build)0
-rw-r--r--test cases/common/116 pathjoin/meson.build (renamed from test cases/common/119 pathjoin/meson.build)0
-rw-r--r--test cases/common/117 subdir subproject/meson.build (renamed from test cases/common/120 subdir subproject/meson.build)0
-rw-r--r--test cases/common/117 subdir subproject/prog/meson.build (renamed from test cases/common/120 subdir subproject/prog/meson.build)0
-rw-r--r--test cases/common/117 subdir subproject/prog/prog.c (renamed from test cases/common/120 subdir subproject/prog/prog.c)0
-rw-r--r--test cases/common/117 subdir subproject/subprojects/sub/meson.build (renamed from test cases/common/120 subdir subproject/subprojects/sub/meson.build)0
-rw-r--r--test cases/common/117 subdir subproject/subprojects/sub/sub.c (renamed from test cases/common/120 subdir subproject/subprojects/sub/sub.c)0
-rw-r--r--test cases/common/117 subdir subproject/subprojects/sub/sub.h (renamed from test cases/common/120 subdir subproject/subprojects/sub/sub.h)0
-rw-r--r--test cases/common/118 interpreter copy mutable var on assignment/meson.build (renamed from test cases/common/121 interpreter copy mutable var on assignment/meson.build)0
-rw-r--r--test cases/common/119 skip/meson.build (renamed from test cases/common/122 skip/meson.build)0
-rw-r--r--test cases/common/120 subproject project arguments/exe.c (renamed from test cases/common/123 subproject project arguments/exe.c)0
-rw-r--r--test cases/common/120 subproject project arguments/exe.cpp (renamed from test cases/common/123 subproject project arguments/exe.cpp)0
-rw-r--r--test cases/common/120 subproject project arguments/meson.build (renamed from test cases/common/123 subproject project arguments/meson.build)0
-rw-r--r--test cases/common/120 subproject project arguments/subprojects/subexe/meson.build (renamed from test cases/common/123 subproject project arguments/subprojects/subexe/meson.build)0
-rw-r--r--test cases/common/120 subproject project arguments/subprojects/subexe/subexe.c (renamed from test cases/common/123 subproject project arguments/subprojects/subexe/subexe.c)0
-rw-r--r--test cases/common/121 test skip/meson.build (renamed from test cases/common/124 test skip/meson.build)0
-rw-r--r--test cases/common/121 test skip/test_skip.c (renamed from test cases/common/124 test skip/test_skip.c)0
-rw-r--r--test cases/common/122 shared module/installed_files.txt (renamed from test cases/common/125 shared module/installed_files.txt)0
-rw-r--r--test cases/common/122 shared module/meson.build (renamed from test cases/common/125 shared module/meson.build)0
-rw-r--r--test cases/common/122 shared module/module.c (renamed from test cases/common/125 shared module/module.c)0
-rw-r--r--test cases/common/122 shared module/nosyms.c (renamed from test cases/common/125 shared module/nosyms.c)0
-rw-r--r--test cases/common/122 shared module/prog.c (renamed from test cases/common/125 shared module/prog.c)0
-rw-r--r--test cases/common/122 shared module/runtime.c (renamed from test cases/common/125 shared module/runtime.c)0
-rw-r--r--test cases/common/123 llvm ir and assembly/main.c (renamed from test cases/common/126 llvm ir and assembly/main.c)0
-rw-r--r--test cases/common/123 llvm ir and assembly/main.cpp (renamed from test cases/common/126 llvm ir and assembly/main.cpp)0
-rw-r--r--test cases/common/123 llvm ir and assembly/meson.build (renamed from test cases/common/126 llvm ir and assembly/meson.build)2
-rw-r--r--test cases/common/123 llvm ir and assembly/square-arm.S (renamed from test cases/common/126 llvm ir and assembly/square-arm.S)0
-rw-r--r--test cases/common/123 llvm ir and assembly/square-x86.S (renamed from test cases/common/126 llvm ir and assembly/square-x86.S)0
-rw-r--r--test cases/common/123 llvm ir and assembly/square-x86_64.S (renamed from test cases/common/126 llvm ir and assembly/square-x86_64.S)0
-rw-r--r--test cases/common/123 llvm ir and assembly/square.ll (renamed from test cases/common/126 llvm ir and assembly/square.ll)0
-rw-r--r--test cases/common/123 llvm ir and assembly/symbol-underscore.h (renamed from test cases/common/126 llvm ir and assembly/symbol-underscore.h)0
-rw-r--r--test cases/common/124 cpp and asm/meson.build (renamed from test cases/common/127 cpp and asm/meson.build)0
-rw-r--r--test cases/common/124 cpp and asm/retval-arm.S (renamed from test cases/common/127 cpp and asm/retval-arm.S)0
-rw-r--r--test cases/common/124 cpp and asm/retval-x86.S (renamed from test cases/common/127 cpp and asm/retval-x86.S)0
-rw-r--r--test cases/common/124 cpp and asm/retval-x86_64.S (renamed from test cases/common/127 cpp and asm/retval-x86_64.S)0
-rw-r--r--test cases/common/124 cpp and asm/symbol-underscore.h (renamed from test cases/common/127 cpp and asm/symbol-underscore.h)0
-rw-r--r--test cases/common/124 cpp and asm/trivial.cc (renamed from test cases/common/127 cpp and asm/trivial.cc)0
-rw-r--r--test cases/common/125 extract all shared library/extractor.h (renamed from test cases/common/128 extract all shared library/extractor.h)0
-rw-r--r--test cases/common/125 extract all shared library/four.c (renamed from test cases/common/128 extract all shared library/four.c)0
-rw-r--r--test cases/common/125 extract all shared library/func1234.def (renamed from test cases/common/128 extract all shared library/func1234.def)0
-rw-r--r--test cases/common/125 extract all shared library/meson.build (renamed from test cases/common/128 extract all shared library/meson.build)0
-rw-r--r--test cases/common/125 extract all shared library/one.c (renamed from test cases/common/128 extract all shared library/one.c)0
-rw-r--r--test cases/common/125 extract all shared library/prog.c (renamed from test cases/common/128 extract all shared library/prog.c)0
-rw-r--r--test cases/common/125 extract all shared library/three.c (renamed from test cases/common/128 extract all shared library/three.c)0
-rw-r--r--test cases/common/125 extract all shared library/two.c (renamed from test cases/common/128 extract all shared library/two.c)0
-rw-r--r--test cases/common/126 object only target/installed_files.txt (renamed from test cases/common/129 object only target/installed_files.txt)0
-rw-r--r--test cases/common/126 object only target/meson.build (renamed from test cases/common/129 object only target/meson.build)0
-rwxr-xr-xtest cases/common/126 object only target/obj_generator.py (renamed from test cases/common/129 object only target/obj_generator.py)0
-rw-r--r--test cases/common/126 object only target/prog.c (renamed from test cases/common/129 object only target/prog.c)0
-rw-r--r--test cases/common/126 object only target/source.c (renamed from test cases/common/129 object only target/source.c)0
-rw-r--r--test cases/common/126 object only target/source2.c (renamed from test cases/common/129 object only target/source2.c)0
-rw-r--r--test cases/common/126 object only target/source2.def (renamed from test cases/common/129 object only target/source2.def)0
-rw-r--r--test cases/common/126 object only target/source3.c (renamed from test cases/common/129 object only target/source3.c)0
-rw-r--r--test cases/common/127 no buildincdir/include/header.h (renamed from test cases/common/130 no buildincdir/include/header.h)0
-rw-r--r--test cases/common/127 no buildincdir/meson.build (renamed from test cases/common/130 no buildincdir/meson.build)0
-rw-r--r--test cases/common/127 no buildincdir/prog.c (renamed from test cases/common/130 no buildincdir/prog.c)0
-rw-r--r--test cases/common/128 custom target directory install/docgen.py (renamed from test cases/common/131 custom target directory install/docgen.py)0
-rw-r--r--test cases/common/128 custom target directory install/installed_files.txt (renamed from test cases/common/131 custom target directory install/installed_files.txt)0
-rw-r--r--test cases/common/128 custom target directory install/meson.build (renamed from test cases/common/131 custom target directory install/meson.build)0
-rw-r--r--test cases/common/129 dependency file generation/main .c (renamed from test cases/common/132 dependency file generation/main .c)0
-rw-r--r--test cases/common/129 dependency file generation/meson.build (renamed from test cases/common/132 dependency file generation/meson.build)0
-rw-r--r--test cases/common/13 pch/c/meson.build8
-rw-r--r--test cases/common/13 pch/c/pch/prog.h (renamed from test cases/common/13 pch/pch/prog.h)0
-rw-r--r--test cases/common/13 pch/c/pch/prog_pch.c (renamed from test cases/common/13 pch/pch/prog_pch.c)0
-rw-r--r--test cases/common/13 pch/c/prog.c (renamed from test cases/common/13 pch/prog.c)0
-rw-r--r--test cases/common/13 pch/cpp/meson.build (renamed from test cases/common/14 cpp pch/meson.build)1
-rw-r--r--test cases/common/13 pch/cpp/pch/prog.hh (renamed from test cases/common/14 cpp pch/pch/prog.hh)0
-rw-r--r--test cases/common/13 pch/cpp/pch/prog_pch.cc (renamed from test cases/common/14 cpp pch/pch/prog_pch.cc)0
-rw-r--r--test cases/common/13 pch/cpp/prog.cc (renamed from test cases/common/14 cpp pch/prog.cc)0
-rw-r--r--test cases/common/13 pch/meson.build13
-rw-r--r--test cases/common/13 pch/mixed/func.c (renamed from test cases/common/15 mixed pch/func.c)0
-rw-r--r--test cases/common/13 pch/mixed/main.cc (renamed from test cases/common/15 mixed pch/main.cc)0
-rw-r--r--test cases/common/13 pch/mixed/meson.build (renamed from test cases/common/15 mixed pch/meson.build)3
-rw-r--r--test cases/common/13 pch/mixed/pch/func.h (renamed from test cases/common/15 mixed pch/pch/func.h)0
-rw-r--r--test cases/common/13 pch/mixed/pch/func_pch.c (renamed from test cases/common/15 mixed pch/pch/func_pch.c)0
-rw-r--r--test cases/common/13 pch/mixed/pch/main.h (renamed from test cases/common/15 mixed pch/pch/main.h)0
-rw-r--r--test cases/common/13 pch/mixed/pch/main_pch.cc (renamed from test cases/common/15 mixed pch/pch/main_pch.cc)0
-rw-r--r--test cases/common/130 configure file in generator/inc/confdata.in (renamed from test cases/common/133 configure file in generator/inc/confdata.in)0
-rw-r--r--test cases/common/130 configure file in generator/inc/meson.build (renamed from test cases/common/133 configure file in generator/inc/meson.build)0
-rw-r--r--test cases/common/130 configure file in generator/meson.build (renamed from test cases/common/133 configure file in generator/meson.build)0
-rwxr-xr-xtest cases/common/130 configure file in generator/src/gen.py (renamed from test cases/common/133 configure file in generator/src/gen.py)0
-rw-r--r--test cases/common/130 configure file in generator/src/main.c (renamed from test cases/common/133 configure file in generator/src/main.c)0
-rw-r--r--test cases/common/130 configure file in generator/src/meson.build (renamed from test cases/common/133 configure file in generator/src/meson.build)0
-rw-r--r--test cases/common/130 configure file in generator/src/source (renamed from test cases/common/133 configure file in generator/src/source)0
-rw-r--r--test cases/common/131 generated llvm ir/copyfile.py (renamed from test cases/common/134 generated llvm ir/copyfile.py)0
-rw-r--r--test cases/common/131 generated llvm ir/main.c (renamed from test cases/common/134 generated llvm ir/main.c)0
-rw-r--r--test cases/common/131 generated llvm ir/meson.build (renamed from test cases/common/134 generated llvm ir/meson.build)0
-rw-r--r--test cases/common/131 generated llvm ir/square.ll.in (renamed from test cases/common/134 generated llvm ir/square.ll.in)0
-rw-r--r--test cases/common/132 generated assembly/copyfile.py (renamed from test cases/common/135 generated assembly/copyfile.py)0
-rw-r--r--test cases/common/132 generated assembly/main.c (renamed from test cases/common/135 generated assembly/main.c)0
-rw-r--r--test cases/common/132 generated assembly/meson.build (renamed from test cases/common/135 generated assembly/meson.build)0
-rw-r--r--test cases/common/132 generated assembly/square-arm.S.in (renamed from test cases/common/135 generated assembly/square-arm.S.in)0
-rw-r--r--test cases/common/132 generated assembly/square-x86.S.in (renamed from test cases/common/135 generated assembly/square-x86.S.in)0
-rw-r--r--test cases/common/132 generated assembly/square-x86_64.S.in (renamed from test cases/common/135 generated assembly/square-x86_64.S.in)0
-rw-r--r--test cases/common/132 generated assembly/symbol-underscore.h (renamed from test cases/common/135 generated assembly/symbol-underscore.h)0
-rw-r--r--test cases/common/133 build by default targets in tests/main.c (renamed from test cases/common/136 build by default targets in tests/main.c)0
-rw-r--r--test cases/common/133 build by default targets in tests/meson.build (renamed from test cases/common/136 build by default targets in tests/meson.build)0
-rw-r--r--test cases/common/133 build by default targets in tests/write_file.py (renamed from test cases/common/136 build by default targets in tests/write_file.py)0
-rw-r--r--test cases/common/134 build by default/checkexists.py (renamed from test cases/common/137 build by default/checkexists.py)0
-rw-r--r--test cases/common/134 build by default/foo.c (renamed from test cases/common/137 build by default/foo.c)0
-rw-r--r--test cases/common/134 build by default/meson.build (renamed from test cases/common/137 build by default/meson.build)0
-rw-r--r--test cases/common/134 build by default/mygen.py (renamed from test cases/common/137 build by default/mygen.py)0
-rw-r--r--test cases/common/134 build by default/source.txt (renamed from test cases/common/137 build by default/source.txt)0
-rw-r--r--test cases/common/135 include order/ctsub/copyfile.py (renamed from test cases/common/138 include order/ctsub/copyfile.py)0
-rw-r--r--test cases/common/135 include order/ctsub/emptyfile.c (renamed from test cases/common/138 include order/ctsub/emptyfile.c)0
-rw-r--r--test cases/common/135 include order/ctsub/main.h (renamed from test cases/common/138 include order/ctsub/main.h)0
-rw-r--r--test cases/common/135 include order/ctsub/meson.build (renamed from test cases/common/138 include order/ctsub/meson.build)0
-rw-r--r--test cases/common/135 include order/inc1/hdr.h (renamed from test cases/common/138 include order/inc1/hdr.h)0
-rw-r--r--test cases/common/135 include order/inc2/hdr.h (renamed from test cases/common/138 include order/inc2/hdr.h)0
-rw-r--r--test cases/common/135 include order/meson.build (renamed from test cases/common/138 include order/meson.build)0
-rw-r--r--test cases/common/135 include order/ordertest.c (renamed from test cases/common/138 include order/ordertest.c)0
-rw-r--r--test cases/common/135 include order/sub1/main.h (renamed from test cases/common/138 include order/sub1/main.h)0
-rw-r--r--test cases/common/135 include order/sub1/meson.build (renamed from test cases/common/138 include order/sub1/meson.build)0
-rw-r--r--test cases/common/135 include order/sub1/some.c (renamed from test cases/common/138 include order/sub1/some.c)0
-rw-r--r--test cases/common/135 include order/sub1/some.h (renamed from test cases/common/138 include order/sub1/some.h)0
-rw-r--r--test cases/common/135 include order/sub2/main.h (renamed from test cases/common/138 include order/sub2/main.h)0
-rw-r--r--test cases/common/135 include order/sub2/meson.build (renamed from test cases/common/138 include order/sub2/meson.build)0
-rw-r--r--test cases/common/135 include order/sub3/main.h (renamed from test cases/common/138 include order/sub3/main.h)0
-rw-r--r--test cases/common/135 include order/sub3/meson.build (renamed from test cases/common/138 include order/sub3/meson.build)0
-rw-r--r--test cases/common/135 include order/sub4/main.c (renamed from test cases/common/138 include order/sub4/main.c)0
-rw-r--r--test cases/common/135 include order/sub4/main.h (renamed from test cases/common/138 include order/sub4/main.h)0
-rw-r--r--test cases/common/135 include order/sub4/meson.build (renamed from test cases/common/138 include order/sub4/meson.build)0
-rw-r--r--test cases/common/136 override options/four.c (renamed from test cases/common/139 override options/four.c)0
-rw-r--r--test cases/common/136 override options/meson.build (renamed from test cases/common/139 override options/meson.build)0
-rw-r--r--test cases/common/136 override options/one.c (renamed from test cases/common/139 override options/one.c)0
-rw-r--r--test cases/common/136 override options/three.c (renamed from test cases/common/139 override options/three.c)0
-rw-r--r--test cases/common/136 override options/two.c (renamed from test cases/common/139 override options/two.c)0
-rw-r--r--test cases/common/137 get define/concat.h (renamed from test cases/common/140 get define/concat.h)0
-rw-r--r--test cases/common/137 get define/meson.build (renamed from test cases/common/140 get define/meson.build)0
-rw-r--r--test cases/common/137 get define/meson_options.txt (renamed from test cases/common/140 get define/meson_options.txt)0
-rw-r--r--test cases/common/138 c cpp and asm/main.c (renamed from test cases/common/141 c cpp and asm/main.c)0
-rw-r--r--test cases/common/138 c cpp and asm/main.cpp (renamed from test cases/common/141 c cpp and asm/main.cpp)0
-rw-r--r--test cases/common/138 c cpp and asm/meson.build (renamed from test cases/common/141 c cpp and asm/meson.build)0
-rw-r--r--test cases/common/138 c cpp and asm/retval-arm.S (renamed from test cases/common/141 c cpp and asm/retval-arm.S)0
-rw-r--r--test cases/common/138 c cpp and asm/retval-x86.S (renamed from test cases/common/141 c cpp and asm/retval-x86.S)0
-rw-r--r--test cases/common/138 c cpp and asm/retval-x86_64.S (renamed from test cases/common/141 c cpp and asm/retval-x86_64.S)0
-rw-r--r--test cases/common/138 c cpp and asm/somelib.c (renamed from test cases/common/141 c cpp and asm/somelib.c)0
-rw-r--r--test cases/common/138 c cpp and asm/symbol-underscore.h (renamed from test cases/common/141 c cpp and asm/symbol-underscore.h)0
-rw-r--r--test cases/common/139 compute int/config.h.in (renamed from test cases/common/142 compute int/config.h.in)0
-rw-r--r--test cases/common/139 compute int/foobar.h (renamed from test cases/common/142 compute int/foobar.h)0
-rw-r--r--test cases/common/139 compute int/meson.build (renamed from test cases/common/142 compute int/meson.build)0
-rw-r--r--test cases/common/139 compute int/prog.c.in (renamed from test cases/common/142 compute int/prog.c.in)0
-rw-r--r--test cases/common/14 configure file/basename.py (renamed from test cases/common/16 configure file/basename.py)0
-rw-r--r--test cases/common/14 configure file/check_file.py (renamed from test cases/common/16 configure file/check_file.py)0
-rw-r--r--test cases/common/14 configure file/config.h (renamed from test cases/common/16 configure file/config.h)0
-rw-r--r--test cases/common/14 configure file/config.h.in (renamed from test cases/common/16 configure file/config.h.in)0
-rw-r--r--test cases/common/14 configure file/config4a.h.in (renamed from test cases/common/16 configure file/config4a.h.in)0
-rw-r--r--test cases/common/14 configure file/config4b.h.in (renamed from test cases/common/16 configure file/config4b.h.in)0
-rw-r--r--test cases/common/14 configure file/config5.h.in (renamed from test cases/common/16 configure file/config5.h.in)0
-rw-r--r--test cases/common/14 configure file/config6.h.in (renamed from test cases/common/16 configure file/config6.h.in)0
-rw-r--r--test cases/common/14 configure file/config7.h.in (renamed from test cases/common/16 configure file/config7.h.in)0
-rw-r--r--test cases/common/14 configure file/config8.h.in (renamed from test cases/common/16 configure file/config8.h.in)0
-rw-r--r--test cases/common/14 configure file/dummy.dat (renamed from test cases/common/16 configure file/dummy.dat)0
-rw-r--r--test cases/common/14 configure file/dumpprog.c (renamed from test cases/common/16 configure file/dumpprog.c)0
-rw-r--r--test cases/common/14 configure file/file_contains.py (renamed from test cases/common/16 configure file/file_contains.py)0
-rwxr-xr-xtest cases/common/14 configure file/generator-without-input-file.py (renamed from test cases/common/16 configure file/generator-without-input-file.py)0
-rwxr-xr-xtest cases/common/14 configure file/generator.py (renamed from test cases/common/16 configure file/generator.py)0
-rw-r--r--test cases/common/14 configure file/installed_files.txt (renamed from test cases/common/16 configure file/installed_files.txt)0
-rw-r--r--test cases/common/14 configure file/invalid-utf8.bin.in (renamed from test cases/common/16 configure file/invalid-utf8.bin.in)bin10 -> 10 bytes
-rw-r--r--test cases/common/14 configure file/meson.build (renamed from test cases/common/16 configure file/meson.build)0
-rw-r--r--test cases/common/14 configure file/nosubst-nocopy1.txt.in (renamed from test cases/common/16 configure file/nosubst-nocopy1.txt.in)0
-rw-r--r--test cases/common/14 configure file/nosubst-nocopy2.txt.in (renamed from test cases/common/16 configure file/nosubst-nocopy2.txt.in)0
-rw-r--r--test cases/common/14 configure file/prog.c (renamed from test cases/common/16 configure file/prog.c)0
-rw-r--r--test cases/common/14 configure file/prog2.c (renamed from test cases/common/16 configure file/prog2.c)0
-rw-r--r--test cases/common/14 configure file/prog4.c (renamed from test cases/common/16 configure file/prog4.c)0
-rw-r--r--test cases/common/14 configure file/prog5.c (renamed from test cases/common/16 configure file/prog5.c)0
-rw-r--r--test cases/common/14 configure file/prog6.c (renamed from test cases/common/16 configure file/prog6.c)0
-rw-r--r--test cases/common/14 configure file/prog7.c (renamed from test cases/common/16 configure file/prog7.c)0
-rw-r--r--test cases/common/14 configure file/subdir/meson.build (renamed from test cases/common/16 configure file/subdir/meson.build)0
-rw-r--r--test cases/common/14 configure file/test.py.in (renamed from test cases/common/16 configure file/test.py.in)0
-rw-r--r--test cases/common/14 configure file/touch.py (renamed from test cases/common/16 configure file/touch.py)0
-rw-r--r--test cases/common/140 custom target object output/meson.build (renamed from test cases/common/143 custom target object output/meson.build)0
-rw-r--r--test cases/common/140 custom target object output/obj_generator.py (renamed from test cases/common/143 custom target object output/obj_generator.py)0
-rw-r--r--test cases/common/140 custom target object output/objdir/meson.build (renamed from test cases/common/143 custom target object output/objdir/meson.build)0
-rw-r--r--test cases/common/140 custom target object output/objdir/source.c (renamed from test cases/common/143 custom target object output/objdir/source.c)0
-rw-r--r--test cases/common/140 custom target object output/progdir/meson.build (renamed from test cases/common/143 custom target object output/progdir/meson.build)0
-rw-r--r--test cases/common/140 custom target object output/progdir/prog.c (renamed from test cases/common/143 custom target object output/progdir/prog.c)0
-rw-r--r--test cases/common/141 empty build file/meson.build (renamed from test cases/common/144 empty build file/meson.build)0
-rw-r--r--test cases/common/141 empty build file/subdir/meson.build (renamed from test cases/common/144 empty build file/subdir/meson.build)0
-rw-r--r--test cases/common/142 whole archive/exe/meson.build (renamed from test cases/common/145 whole archive/exe/meson.build)0
-rw-r--r--test cases/common/142 whole archive/exe2/meson.build (renamed from test cases/common/145 whole archive/exe2/meson.build)0
-rw-r--r--test cases/common/142 whole archive/exe3/meson.build (renamed from test cases/common/145 whole archive/exe3/meson.build)0
-rw-r--r--test cases/common/142 whole archive/exe4/meson.build (renamed from test cases/common/145 whole archive/exe4/meson.build)0
-rw-r--r--test cases/common/142 whole archive/func1.c (renamed from test cases/common/145 whole archive/func1.c)0
-rw-r--r--test cases/common/142 whole archive/func2.c (renamed from test cases/common/145 whole archive/func2.c)0
-rw-r--r--test cases/common/142 whole archive/meson.build (renamed from test cases/common/145 whole archive/meson.build)0
-rw-r--r--test cases/common/142 whole archive/mylib.h (renamed from test cases/common/145 whole archive/mylib.h)0
-rw-r--r--test cases/common/142 whole archive/prog.c (renamed from test cases/common/145 whole archive/prog.c)0
-rw-r--r--test cases/common/142 whole archive/sh_func2_dep_func1/meson.build (renamed from test cases/common/145 whole archive/sh_func2_dep_func1/meson.build)0
-rw-r--r--test cases/common/142 whole archive/sh_func2_linked_func1/meson.build (renamed from test cases/common/145 whole archive/sh_func2_linked_func1/meson.build)0
-rw-r--r--test cases/common/142 whole archive/sh_func2_transdep_func1/meson.build (renamed from test cases/common/145 whole archive/sh_func2_transdep_func1/meson.build)0
-rw-r--r--test cases/common/142 whole archive/sh_only_link_whole/meson.build (renamed from test cases/common/145 whole archive/sh_only_link_whole/meson.build)0
-rw-r--r--test cases/common/142 whole archive/st_func1/meson.build (renamed from test cases/common/145 whole archive/st_func1/meson.build)0
-rw-r--r--test cases/common/142 whole archive/st_func2/meson.build (renamed from test cases/common/145 whole archive/st_func2/meson.build)0
-rw-r--r--test cases/common/143 C and CPP link/dummy.c (renamed from test cases/common/146 C and CPP link/dummy.c)0
-rw-r--r--test cases/common/143 C and CPP link/foo.c (renamed from test cases/common/146 C and CPP link/foo.c)0
-rw-r--r--test cases/common/143 C and CPP link/foo.cpp (renamed from test cases/common/146 C and CPP link/foo.cpp)0
-rw-r--r--test cases/common/143 C and CPP link/foo.h (renamed from test cases/common/146 C and CPP link/foo.h)0
-rw-r--r--test cases/common/143 C and CPP link/foo.hpp (renamed from test cases/common/146 C and CPP link/foo.hpp)0
-rw-r--r--test cases/common/143 C and CPP link/foobar.c (renamed from test cases/common/146 C and CPP link/foobar.c)0
-rw-r--r--test cases/common/143 C and CPP link/foobar.h (renamed from test cases/common/146 C and CPP link/foobar.h)0
-rw-r--r--test cases/common/143 C and CPP link/meson.build (renamed from test cases/common/146 C and CPP link/meson.build)0
-rw-r--r--test cases/common/143 C and CPP link/sub.c (renamed from test cases/common/146 C and CPP link/sub.c)0
-rw-r--r--test cases/common/143 C and CPP link/sub.h (renamed from test cases/common/146 C and CPP link/sub.h)0
-rw-r--r--test cases/common/144 mesonintrospect from scripts/check_env.py (renamed from test cases/common/147 mesonintrospect from scripts/check_env.py)0
-rw-r--r--test cases/common/144 mesonintrospect from scripts/meson.build (renamed from test cases/common/147 mesonintrospect from scripts/meson.build)0
-rwxr-xr-xtest cases/common/145 custom target multiple outputs/generator.py (renamed from test cases/common/148 custom target multiple outputs/generator.py)0
-rw-r--r--test cases/common/145 custom target multiple outputs/installed_files.txt (renamed from test cases/common/148 custom target multiple outputs/installed_files.txt)0
-rw-r--r--test cases/common/145 custom target multiple outputs/meson.build (renamed from test cases/common/148 custom target multiple outputs/meson.build)0
-rw-r--r--test cases/common/146 special characters/check_quoting.py (renamed from test cases/common/149 special characters/check_quoting.py)0
-rw-r--r--test cases/common/146 special characters/installed_files.txt (renamed from test cases/common/149 special characters/installed_files.txt)0
-rw-r--r--test cases/common/146 special characters/meson.build (renamed from test cases/common/149 special characters/meson.build)0
-rw-r--r--test cases/common/147 nested links/meson.build (renamed from test cases/common/150 nested links/meson.build)0
-rw-r--r--test cases/common/147 nested links/xephyr.c (renamed from test cases/common/150 nested links/xephyr.c)0
-rw-r--r--test cases/common/148 list of file sources/foo (renamed from test cases/common/151 list of file sources/foo)0
-rw-r--r--test cases/common/148 list of file sources/gen.py (renamed from test cases/common/151 list of file sources/gen.py)0
-rw-r--r--test cases/common/148 list of file sources/meson.build (renamed from test cases/common/151 list of file sources/meson.build)0
-rw-r--r--test cases/common/149 link depends custom target/foo.c (renamed from test cases/common/152 link depends custom target/foo.c)0
-rwxr-xr-xtest cases/common/149 link depends custom target/make_file.py (renamed from test cases/common/152 link depends custom target/make_file.py)0
-rw-r--r--test cases/common/149 link depends custom target/meson.build (renamed from test cases/common/152 link depends custom target/meson.build)0
-rw-r--r--test cases/common/15 if/meson.build (renamed from test cases/common/17 if/meson.build)30
-rw-r--r--test cases/common/15 if/prog.c (renamed from test cases/common/17 if/prog.c)0
-rw-r--r--test cases/common/150 recursive linking/3rdorderdeps/lib.c.in (renamed from test cases/common/153 recursive linking/3rdorderdeps/lib.c.in)0
-rw-r--r--test cases/common/150 recursive linking/3rdorderdeps/main.c.in (renamed from test cases/common/153 recursive linking/3rdorderdeps/main.c.in)0
-rw-r--r--test cases/common/150 recursive linking/3rdorderdeps/meson.build (renamed from test cases/common/153 recursive linking/3rdorderdeps/meson.build)0
-rw-r--r--test cases/common/150 recursive linking/circular/lib1.c (renamed from test cases/common/153 recursive linking/circular/lib1.c)0
-rw-r--r--test cases/common/150 recursive linking/circular/lib2.c (renamed from test cases/common/153 recursive linking/circular/lib2.c)0
-rw-r--r--test cases/common/150 recursive linking/circular/lib3.c (renamed from test cases/common/153 recursive linking/circular/lib3.c)0
-rw-r--r--test cases/common/150 recursive linking/circular/main.c (renamed from test cases/common/153 recursive linking/circular/main.c)0
-rw-r--r--test cases/common/150 recursive linking/circular/meson.build (renamed from test cases/common/153 recursive linking/circular/meson.build)0
-rw-r--r--test cases/common/150 recursive linking/circular/prop1.c (renamed from test cases/common/153 recursive linking/circular/prop1.c)0
-rw-r--r--test cases/common/150 recursive linking/circular/prop2.c (renamed from test cases/common/153 recursive linking/circular/prop2.c)0
-rw-r--r--test cases/common/150 recursive linking/circular/prop3.c (renamed from test cases/common/153 recursive linking/circular/prop3.c)0
-rw-r--r--test cases/common/150 recursive linking/edge-cases/libsto.c (renamed from test cases/common/153 recursive linking/edge-cases/libsto.c)0
-rw-r--r--test cases/common/150 recursive linking/edge-cases/meson.build (renamed from test cases/common/153 recursive linking/edge-cases/meson.build)0
-rw-r--r--test cases/common/150 recursive linking/edge-cases/shstmain.c (renamed from test cases/common/153 recursive linking/edge-cases/shstmain.c)0
-rw-r--r--test cases/common/150 recursive linking/edge-cases/stobuilt.c (renamed from test cases/common/153 recursive linking/edge-cases/stobuilt.c)0
-rw-r--r--test cases/common/150 recursive linking/edge-cases/stomain.c (renamed from test cases/common/153 recursive linking/edge-cases/stomain.c)0
-rw-r--r--test cases/common/150 recursive linking/lib.h (renamed from test cases/common/153 recursive linking/lib.h)0
-rw-r--r--test cases/common/150 recursive linking/main.c (renamed from test cases/common/153 recursive linking/main.c)0
-rw-r--r--test cases/common/150 recursive linking/meson.build (renamed from test cases/common/153 recursive linking/meson.build)0
-rw-r--r--test cases/common/150 recursive linking/shnodep/lib.c (renamed from test cases/common/153 recursive linking/shnodep/lib.c)0
-rw-r--r--test cases/common/150 recursive linking/shnodep/meson.build (renamed from test cases/common/153 recursive linking/shnodep/meson.build)0
-rw-r--r--test cases/common/150 recursive linking/shshdep/lib.c (renamed from test cases/common/153 recursive linking/shshdep/lib.c)0
-rw-r--r--test cases/common/150 recursive linking/shshdep/meson.build (renamed from test cases/common/153 recursive linking/shshdep/meson.build)0
-rw-r--r--test cases/common/150 recursive linking/shstdep/lib.c (renamed from test cases/common/153 recursive linking/shstdep/lib.c)0
-rw-r--r--test cases/common/150 recursive linking/shstdep/meson.build (renamed from test cases/common/153 recursive linking/shstdep/meson.build)0
-rw-r--r--test cases/common/150 recursive linking/stnodep/lib.c (renamed from test cases/common/153 recursive linking/stnodep/lib.c)0
-rw-r--r--test cases/common/150 recursive linking/stnodep/meson.build (renamed from test cases/common/153 recursive linking/stnodep/meson.build)0
-rw-r--r--test cases/common/150 recursive linking/stshdep/lib.c (renamed from test cases/common/153 recursive linking/stshdep/lib.c)0
-rw-r--r--test cases/common/150 recursive linking/stshdep/meson.build (renamed from test cases/common/153 recursive linking/stshdep/meson.build)0
-rw-r--r--test cases/common/150 recursive linking/ststdep/lib.c (renamed from test cases/common/153 recursive linking/ststdep/lib.c)0
-rw-r--r--test cases/common/150 recursive linking/ststdep/meson.build (renamed from test cases/common/153 recursive linking/ststdep/meson.build)0
-rw-r--r--test cases/common/151 library at root/lib.c (renamed from test cases/common/154 library at root/lib.c)0
-rw-r--r--test cases/common/151 library at root/main/main.c (renamed from test cases/common/154 library at root/main/main.c)0
-rw-r--r--test cases/common/151 library at root/main/meson.build (renamed from test cases/common/154 library at root/main/meson.build)0
-rw-r--r--test cases/common/151 library at root/meson.build (renamed from test cases/common/154 library at root/meson.build)0
-rw-r--r--test cases/common/152 simd/fallback.c (renamed from test cases/common/155 simd/fallback.c)0
-rw-r--r--test cases/common/152 simd/include/simdheader.h (renamed from test cases/common/155 simd/include/simdheader.h)0
-rw-r--r--test cases/common/152 simd/meson.build (renamed from test cases/common/155 simd/meson.build)0
-rw-r--r--test cases/common/152 simd/simd_avx.c (renamed from test cases/common/155 simd/simd_avx.c)0
-rw-r--r--test cases/common/152 simd/simd_avx2.c (renamed from test cases/common/155 simd/simd_avx2.c)0
-rw-r--r--test cases/common/152 simd/simd_mmx.c (renamed from test cases/common/155 simd/simd_mmx.c)0
-rw-r--r--test cases/common/152 simd/simd_neon.c (renamed from test cases/common/155 simd/simd_neon.c)0
-rw-r--r--test cases/common/152 simd/simd_sse.c (renamed from test cases/common/155 simd/simd_sse.c)0
-rw-r--r--test cases/common/152 simd/simd_sse2.c (renamed from test cases/common/155 simd/simd_sse2.c)0
-rw-r--r--test cases/common/152 simd/simd_sse3.c (renamed from test cases/common/155 simd/simd_sse3.c)0
-rw-r--r--test cases/common/152 simd/simd_sse41.c (renamed from test cases/common/155 simd/simd_sse41.c)0
-rw-r--r--test cases/common/152 simd/simd_sse42.c (renamed from test cases/common/155 simd/simd_sse42.c)0
-rw-r--r--test cases/common/152 simd/simd_ssse3.c (renamed from test cases/common/155 simd/simd_ssse3.c)0
-rw-r--r--test cases/common/152 simd/simdchecker.c (renamed from test cases/common/155 simd/simdchecker.c)0
-rw-r--r--test cases/common/152 simd/simdfuncs.h (renamed from test cases/common/155 simd/simdfuncs.h)0
-rw-r--r--test cases/common/153 shared module resolving symbol in executable/meson.build (renamed from test cases/common/156 shared module resolving symbol in executable/meson.build)0
-rw-r--r--test cases/common/153 shared module resolving symbol in executable/module.c (renamed from test cases/common/156 shared module resolving symbol in executable/module.c)0
-rw-r--r--test cases/common/153 shared module resolving symbol in executable/prog.c (renamed from test cases/common/156 shared module resolving symbol in executable/prog.c)0
-rw-r--r--test cases/common/154 dotinclude/dotproc.c (renamed from test cases/common/157 dotinclude/dotproc.c)0
-rw-r--r--test cases/common/154 dotinclude/meson.build (renamed from test cases/common/157 dotinclude/meson.build)0
-rw-r--r--test cases/common/154 dotinclude/stdio.h (renamed from test cases/common/157 dotinclude/stdio.h)0
-rw-r--r--test cases/common/155 reserved targets/all/meson.build (renamed from test cases/common/158 reserved targets/all/meson.build)0
-rw-r--r--test cases/common/155 reserved targets/benchmark/meson.build (renamed from test cases/common/158 reserved targets/benchmark/meson.build)0
-rw-r--r--test cases/common/155 reserved targets/clean-ctlist/meson.build (renamed from test cases/common/158 reserved targets/clean-ctlist/meson.build)0
-rw-r--r--test cases/common/155 reserved targets/clean-gcda/meson.build (renamed from test cases/common/158 reserved targets/clean-gcda/meson.build)0
-rw-r--r--test cases/common/155 reserved targets/clean-gcno/meson.build (renamed from test cases/common/158 reserved targets/clean-gcno/meson.build)0
-rw-r--r--test cases/common/155 reserved targets/clean/meson.build (renamed from test cases/common/158 reserved targets/clean/meson.build)0
-rw-r--r--test cases/common/155 reserved targets/coverage-html/meson.build (renamed from test cases/common/158 reserved targets/coverage-html/meson.build)0
-rw-r--r--test cases/common/155 reserved targets/coverage-text/meson.build (renamed from test cases/common/158 reserved targets/coverage-text/meson.build)0
-rw-r--r--test cases/common/155 reserved targets/coverage-xml/meson.build (renamed from test cases/common/158 reserved targets/coverage-xml/meson.build)0
-rw-r--r--test cases/common/155 reserved targets/coverage/meson.build (renamed from test cases/common/158 reserved targets/coverage/meson.build)0
-rw-r--r--test cases/common/155 reserved targets/dist/meson.build (renamed from test cases/common/158 reserved targets/dist/meson.build)0
-rw-r--r--test cases/common/155 reserved targets/distcheck/meson.build (renamed from test cases/common/158 reserved targets/distcheck/meson.build)0
-rw-r--r--test cases/common/155 reserved targets/install/meson.build (renamed from test cases/common/158 reserved targets/install/meson.build)0
-rw-r--r--test cases/common/155 reserved targets/meson.build (renamed from test cases/common/158 reserved targets/meson.build)0
-rw-r--r--test cases/common/155 reserved targets/phony/meson.build (renamed from test cases/common/158 reserved targets/phony/meson.build)0
-rw-r--r--test cases/common/155 reserved targets/reconfigure/meson.build (renamed from test cases/common/158 reserved targets/reconfigure/meson.build)0
-rw-r--r--test cases/common/155 reserved targets/runtarget/meson.build (renamed from test cases/common/158 reserved targets/runtarget/meson.build)0
-rw-r--r--test cases/common/155 reserved targets/scan-build/meson.build (renamed from test cases/common/158 reserved targets/scan-build/meson.build)0
-rw-r--r--test cases/common/155 reserved targets/test.c (renamed from test cases/common/158 reserved targets/test.c)0
-rw-r--r--test cases/common/155 reserved targets/test/meson.build (renamed from test cases/common/158 reserved targets/test/meson.build)0
-rw-r--r--test cases/common/155 reserved targets/uninstall/meson.build (renamed from test cases/common/158 reserved targets/uninstall/meson.build)0
-rw-r--r--test cases/common/156 duplicate source names/dir1/file.c (renamed from test cases/common/159 duplicate source names/dir1/file.c)0
-rw-r--r--test cases/common/156 duplicate source names/dir1/meson.build (renamed from test cases/common/159 duplicate source names/dir1/meson.build)0
-rw-r--r--test cases/common/156 duplicate source names/dir2/dir1/file.c (renamed from test cases/common/159 duplicate source names/dir2/dir1/file.c)0
-rw-r--r--test cases/common/156 duplicate source names/dir2/file.c (renamed from test cases/common/159 duplicate source names/dir2/file.c)0
-rw-r--r--test cases/common/156 duplicate source names/dir2/meson.build (renamed from test cases/common/159 duplicate source names/dir2/meson.build)0
-rw-r--r--test cases/common/156 duplicate source names/dir3/dir1/file.c (renamed from test cases/common/159 duplicate source names/dir3/dir1/file.c)0
-rw-r--r--test cases/common/156 duplicate source names/dir3/file.c (renamed from test cases/common/159 duplicate source names/dir3/file.c)0
-rw-r--r--test cases/common/156 duplicate source names/dir3/meson.build (renamed from test cases/common/159 duplicate source names/dir3/meson.build)0
-rw-r--r--test cases/common/156 duplicate source names/meson.build (renamed from test cases/common/159 duplicate source names/meson.build)0
-rw-r--r--test cases/common/157 index customtarget/check_args.py (renamed from test cases/common/160 index customtarget/check_args.py)0
-rw-r--r--test cases/common/157 index customtarget/gen_sources.py (renamed from test cases/common/160 index customtarget/gen_sources.py)0
-rw-r--r--test cases/common/157 index customtarget/lib.c (renamed from test cases/common/160 index customtarget/lib.c)0
-rw-r--r--test cases/common/157 index customtarget/meson.build (renamed from test cases/common/160 index customtarget/meson.build)0
-rw-r--r--test cases/common/157 index customtarget/subdir/foo.c (renamed from test cases/common/160 index customtarget/subdir/foo.c)0
-rw-r--r--test cases/common/157 index customtarget/subdir/meson.build (renamed from test cases/common/160 index customtarget/subdir/meson.build)0
-rw-r--r--test cases/common/158 wrap file should not failed/meson.build (renamed from test cases/common/161 wrap file should not failed/meson.build)0
-rw-r--r--test cases/common/158 wrap file should not failed/src/meson.build (renamed from test cases/common/161 wrap file should not failed/src/meson.build)0
-rw-r--r--test cases/common/158 wrap file should not failed/src/subprojects/foo/prog2.c (renamed from test cases/common/161 wrap file should not failed/src/subprojects/foo/prog2.c)0
-rw-r--r--test cases/common/158 wrap file should not failed/src/subprojects/prog.c (renamed from test cases/common/161 wrap file should not failed/src/subprojects/prog.c)0
-rw-r--r--test cases/common/158 wrap file should not failed/subprojects/packagecache/zlib-1.2.8-8-wrap.zip (renamed from test cases/common/161 wrap file should not failed/subprojects/packagecache/zlib-1.2.8-8-wrap.zip)0
-rw-r--r--test cases/common/158 wrap file should not failed/subprojects/packagecache/zlib-1.2.8.tar.gz (renamed from test cases/common/161 wrap file should not failed/subprojects/packagecache/zlib-1.2.8.tar.gz)0
-rw-r--r--test cases/common/158 wrap file should not failed/subprojects/zlib-1.2.8/foo.c (renamed from test cases/common/161 wrap file should not failed/subprojects/zlib-1.2.8/foo.c)0
-rw-r--r--test cases/common/158 wrap file should not failed/subprojects/zlib-1.2.8/meson.build (renamed from test cases/common/161 wrap file should not failed/subprojects/zlib-1.2.8/meson.build)0
-rw-r--r--test cases/common/158 wrap file should not failed/subprojects/zlib.wrap (renamed from test cases/common/161 wrap file should not failed/subprojects/zlib.wrap)0
-rw-r--r--test cases/common/159 includedir subproj/meson.build (renamed from test cases/common/162 includedir subproj/meson.build)0
-rw-r--r--test cases/common/159 includedir subproj/prog.c (renamed from test cases/common/162 includedir subproj/prog.c)0
-rw-r--r--test cases/common/159 includedir subproj/subprojects/inctest/include/incfile.h (renamed from test cases/common/162 includedir subproj/subprojects/inctest/include/incfile.h)0
-rw-r--r--test cases/common/159 includedir subproj/subprojects/inctest/meson.build (renamed from test cases/common/162 includedir subproj/subprojects/inctest/meson.build)0
-rw-r--r--test cases/common/16 else/meson.build (renamed from test cases/common/18 else/meson.build)0
-rw-r--r--test cases/common/16 else/prog.c (renamed from test cases/common/18 else/prog.c)0
-rw-r--r--test cases/common/160 subproject dir name collision/a.c (renamed from test cases/common/163 subproject dir name collision/a.c)0
-rw-r--r--test cases/common/160 subproject dir name collision/custom_subproject_dir/B/b.c (renamed from test cases/common/163 subproject dir name collision/custom_subproject_dir/B/b.c)0
-rw-r--r--test cases/common/160 subproject dir name collision/custom_subproject_dir/B/meson.build (renamed from test cases/common/163 subproject dir name collision/custom_subproject_dir/B/meson.build)0
-rw-r--r--test cases/common/160 subproject dir name collision/custom_subproject_dir/C/c.c (renamed from test cases/common/163 subproject dir name collision/custom_subproject_dir/C/c.c)0
-rw-r--r--test cases/common/160 subproject dir name collision/custom_subproject_dir/C/meson.build (renamed from test cases/common/163 subproject dir name collision/custom_subproject_dir/C/meson.build)0
-rw-r--r--test cases/common/160 subproject dir name collision/meson.build (renamed from test cases/common/163 subproject dir name collision/meson.build)0
-rw-r--r--test cases/common/160 subproject dir name collision/other_subdir/custom_subproject_dir/other.c (renamed from test cases/common/163 subproject dir name collision/other_subdir/custom_subproject_dir/other.c)0
-rw-r--r--test cases/common/160 subproject dir name collision/other_subdir/meson.build (renamed from test cases/common/163 subproject dir name collision/other_subdir/meson.build)0
-rw-r--r--test cases/common/161 config tool variable/meson.build (renamed from test cases/common/164 config tool variable/meson.build)0
-rw-r--r--test cases/common/162 custom target subdir depend files/copyfile.py (renamed from test cases/common/165 custom target subdir depend files/copyfile.py)0
-rw-r--r--test cases/common/162 custom target subdir depend files/meson.build (renamed from test cases/common/165 custom target subdir depend files/meson.build)0
-rw-r--r--test cases/common/162 custom target subdir depend files/subdir/dep.dat (renamed from test cases/common/165 custom target subdir depend files/subdir/dep.dat)0
-rw-r--r--test cases/common/162 custom target subdir depend files/subdir/foo.c.in (renamed from test cases/common/165 custom target subdir depend files/subdir/foo.c.in)0
-rw-r--r--test cases/common/162 custom target subdir depend files/subdir/meson.build (renamed from test cases/common/165 custom target subdir depend files/subdir/meson.build)0
-rw-r--r--test cases/common/163 external program shebang parsing/input.txt (renamed from test cases/common/166 external program shebang parsing/input.txt)0
-rw-r--r--test cases/common/163 external program shebang parsing/main.c (renamed from test cases/common/166 external program shebang parsing/main.c)0
-rw-r--r--test cases/common/163 external program shebang parsing/meson.build (renamed from test cases/common/166 external program shebang parsing/meson.build)0
-rw-r--r--test cases/common/163 external program shebang parsing/script.int.in (renamed from test cases/common/166 external program shebang parsing/script.int.in)0
-rw-r--r--test cases/common/164 disabler/meson.build (renamed from test cases/common/167 disabler/meson.build)0
-rw-r--r--test cases/common/165 array option/meson.build (renamed from test cases/common/168 array option/meson.build)0
-rw-r--r--test cases/common/165 array option/meson_options.txt (renamed from test cases/common/168 array option/meson_options.txt)0
-rw-r--r--test cases/common/166 custom target template substitution/checkcopy.py (renamed from test cases/common/169 custom target template substitution/checkcopy.py)0
-rw-r--r--test cases/common/166 custom target template substitution/foo.c.in (renamed from test cases/common/169 custom target template substitution/foo.c.in)0
-rw-r--r--test cases/common/166 custom target template substitution/meson.build (renamed from test cases/common/169 custom target template substitution/meson.build)0
-rw-r--r--test cases/common/167 not-found dependency/meson.build (renamed from test cases/common/170 not-found dependency/meson.build)0
-rw-r--r--test cases/common/167 not-found dependency/sub/meson.build (renamed from test cases/common/170 not-found dependency/sub/meson.build)0
-rw-r--r--test cases/common/167 not-found dependency/subprojects/trivial/meson.build (renamed from test cases/common/170 not-found dependency/subprojects/trivial/meson.build)0
-rw-r--r--test cases/common/167 not-found dependency/subprojects/trivial/trivial.c (renamed from test cases/common/170 not-found dependency/subprojects/trivial/trivial.c)0
-rw-r--r--test cases/common/167 not-found dependency/testlib.c (renamed from test cases/common/170 not-found dependency/testlib.c)0
-rw-r--r--test cases/common/168 subdir if_found/meson.build (renamed from test cases/common/171 subdir if_found/meson.build)0
-rw-r--r--test cases/common/168 subdir if_found/subdir/meson.build (renamed from test cases/common/171 subdir if_found/subdir/meson.build)0
-rw-r--r--test cases/common/169 default options prefix dependent defaults/meson.build (renamed from test cases/common/172 default options prefix dependent defaults/meson.build)0
-rw-r--r--test cases/common/17 comparison/meson.build (renamed from test cases/common/19 comparison/meson.build)0
-rw-r--r--test cases/common/17 comparison/prog.c (renamed from test cases/common/19 comparison/prog.c)0
-rw-r--r--test cases/common/170 dependency factory/meson.build (renamed from test cases/common/173 dependency factory/meson.build)0
-rw-r--r--test cases/common/171 get project license/bar.c (renamed from test cases/common/174 get project license/bar.c)0
-rw-r--r--test cases/common/171 get project license/meson.build (renamed from test cases/common/174 get project license/meson.build)0
-rw-r--r--test cases/common/172 yield/meson.build (renamed from test cases/common/175 yield/meson.build)0
-rw-r--r--test cases/common/172 yield/meson_options.txt (renamed from test cases/common/175 yield/meson_options.txt)0
-rw-r--r--test cases/common/172 yield/subprojects/sub/meson.build (renamed from test cases/common/175 yield/subprojects/sub/meson.build)0
-rw-r--r--test cases/common/172 yield/subprojects/sub/meson_options.txt (renamed from test cases/common/175 yield/subprojects/sub/meson_options.txt)0
-rw-r--r--test cases/common/173 subproject nested subproject dirs/contrib/subprojects/alpha/a.c (renamed from test cases/common/176 subproject nested subproject dirs/contrib/subprojects/alpha/a.c)0
-rw-r--r--test cases/common/173 subproject nested subproject dirs/contrib/subprojects/alpha/meson.build (renamed from test cases/common/176 subproject nested subproject dirs/contrib/subprojects/alpha/meson.build)0
-rw-r--r--test cases/common/173 subproject nested subproject dirs/contrib/subprojects/alpha/var/subprojects/wrap_files_might_be_here (renamed from test cases/common/176 subproject nested subproject dirs/contrib/subprojects/alpha/var/subprojects/wrap_files_might_be_here)0
-rw-r--r--test cases/common/173 subproject nested subproject dirs/contrib/subprojects/beta/b.c (renamed from test cases/common/176 subproject nested subproject dirs/contrib/subprojects/beta/b.c)0
-rw-r--r--test cases/common/173 subproject nested subproject dirs/contrib/subprojects/beta/meson.build (renamed from test cases/common/176 subproject nested subproject dirs/contrib/subprojects/beta/meson.build)0
-rw-r--r--test cases/common/173 subproject nested subproject dirs/meson.build (renamed from test cases/common/176 subproject nested subproject dirs/meson.build)0
-rw-r--r--test cases/common/173 subproject nested subproject dirs/prog.c (renamed from test cases/common/176 subproject nested subproject dirs/prog.c)0
-rw-r--r--test cases/common/174 preserve gendir/base.inp (renamed from test cases/common/177 preserve gendir/base.inp)0
-rw-r--r--test cases/common/174 preserve gendir/com/mesonbuild/subbie.inp (renamed from test cases/common/177 preserve gendir/com/mesonbuild/subbie.inp)0
-rwxr-xr-xtest cases/common/174 preserve gendir/genprog.py (renamed from test cases/common/177 preserve gendir/genprog.py)0
-rw-r--r--test cases/common/174 preserve gendir/meson.build (renamed from test cases/common/177 preserve gendir/meson.build)0
-rw-r--r--test cases/common/174 preserve gendir/testprog.c (renamed from test cases/common/177 preserve gendir/testprog.c)0
-rw-r--r--test cases/common/175 source in dep/bar.cpp (renamed from test cases/common/178 source in dep/bar.cpp)0
-rw-r--r--test cases/common/175 source in dep/foo.c (renamed from test cases/common/178 source in dep/foo.c)0
-rw-r--r--test cases/common/175 source in dep/generated/funname (renamed from test cases/common/178 source in dep/generated/funname)0
-rwxr-xr-xtest cases/common/175 source in dep/generated/genheader.py (renamed from test cases/common/178 source in dep/generated/genheader.py)0
-rw-r--r--test cases/common/175 source in dep/generated/main.c (renamed from test cases/common/178 source in dep/generated/main.c)0
-rw-r--r--test cases/common/175 source in dep/generated/meson.build (renamed from test cases/common/178 source in dep/generated/meson.build)0
-rw-r--r--test cases/common/175 source in dep/meson.build (renamed from test cases/common/178 source in dep/meson.build)0
-rw-r--r--test cases/common/176 generator link whole/export.h (renamed from test cases/common/179 generator link whole/export.h)0
-rwxr-xr-xtest cases/common/176 generator link whole/generator.py (renamed from test cases/common/179 generator link whole/generator.py)0
-rw-r--r--test cases/common/176 generator link whole/main.c (renamed from test cases/common/179 generator link whole/main.c)0
-rw-r--r--test cases/common/176 generator link whole/meson.build (renamed from test cases/common/179 generator link whole/meson.build)0
-rw-r--r--test cases/common/176 generator link whole/meson_test_function.tmpl (renamed from test cases/common/179 generator link whole/meson_test_function.tmpl)0
-rw-r--r--test cases/common/176 generator link whole/pull_meson_test_function.c (renamed from test cases/common/179 generator link whole/pull_meson_test_function.c)0
-rw-r--r--test cases/common/177 initial c_args/meson.build (renamed from test cases/common/180 initial c_args/meson.build)0
-rw-r--r--test cases/common/177 initial c_args/test_args.txt (renamed from test cases/common/180 initial c_args/test_args.txt)0
-rw-r--r--test cases/common/178 identical target name in subproject flat layout/foo.c (renamed from test cases/common/181 identical target name in subproject flat layout/foo.c)0
-rw-r--r--test cases/common/178 identical target name in subproject flat layout/main.c (renamed from test cases/common/181 identical target name in subproject flat layout/main.c)0
-rw-r--r--test cases/common/178 identical target name in subproject flat layout/meson.build (renamed from test cases/common/181 identical target name in subproject flat layout/meson.build)0
-rw-r--r--test cases/common/178 identical target name in subproject flat layout/subprojects/subproj/foo.c (renamed from test cases/common/181 identical target name in subproject flat layout/subprojects/subproj/foo.c)0
-rw-r--r--test cases/common/178 identical target name in subproject flat layout/subprojects/subproj/meson.build (renamed from test cases/common/181 identical target name in subproject flat layout/subprojects/subproj/meson.build)0
-rw-r--r--test cases/common/179 as-needed/config.h (renamed from test cases/common/182 as-needed/config.h)0
-rw-r--r--test cases/common/179 as-needed/libA.cpp (renamed from test cases/common/182 as-needed/libA.cpp)0
-rw-r--r--test cases/common/179 as-needed/libA.h (renamed from test cases/common/182 as-needed/libA.h)0
-rw-r--r--test cases/common/179 as-needed/libB.cpp (renamed from test cases/common/182 as-needed/libB.cpp)0
-rw-r--r--test cases/common/179 as-needed/main.cpp (renamed from test cases/common/182 as-needed/main.cpp)0
-rw-r--r--test cases/common/179 as-needed/meson.build (renamed from test cases/common/182 as-needed/meson.build)0
-rw-r--r--test cases/common/18 array/func.c (renamed from test cases/common/20 array/func.c)0
-rw-r--r--test cases/common/18 array/meson.build (renamed from test cases/common/20 array/meson.build)0
-rw-r--r--test cases/common/18 array/prog.c (renamed from test cases/common/20 array/prog.c)0
-rw-r--r--test cases/common/180 ndebug if-release enabled/main.c (renamed from test cases/common/183 ndebug if-release enabled/main.c)0
-rw-r--r--test cases/common/180 ndebug if-release enabled/meson.build (renamed from test cases/common/183 ndebug if-release enabled/meson.build)0
-rw-r--r--test cases/common/181 ndebug if-release disabled/main.c (renamed from test cases/common/184 ndebug if-release disabled/main.c)0
-rw-r--r--test cases/common/181 ndebug if-release disabled/meson.build (renamed from test cases/common/184 ndebug if-release disabled/meson.build)0
-rw-r--r--test cases/common/182 subproject version/meson.build (renamed from test cases/common/185 subproject version/meson.build)0
-rw-r--r--test cases/common/182 subproject version/subprojects/a/meson.build (renamed from test cases/common/185 subproject version/subprojects/a/meson.build)0
-rw-r--r--test cases/common/183 subdir_done/meson.build (renamed from test cases/common/186 subdir_done/meson.build)0
-rw-r--r--test cases/common/184 bothlibraries/libfile.c (renamed from test cases/common/187 bothlibraries/libfile.c)0
-rw-r--r--test cases/common/184 bothlibraries/main.c (renamed from test cases/common/187 bothlibraries/main.c)0
-rw-r--r--test cases/common/184 bothlibraries/meson.build (renamed from test cases/common/187 bothlibraries/meson.build)0
-rw-r--r--test cases/common/184 bothlibraries/mylib.h (renamed from test cases/common/187 bothlibraries/mylib.h)0
-rw-r--r--test cases/common/185 escape and unicode/file.c.in (renamed from test cases/common/188 escape and unicode/file.c.in)0
-rw-r--r--test cases/common/185 escape and unicode/file.py (renamed from test cases/common/188 escape and unicode/file.py)0
-rw-r--r--test cases/common/185 escape and unicode/find.py (renamed from test cases/common/188 escape and unicode/find.py)0
-rw-r--r--test cases/common/185 escape and unicode/fun.c (renamed from test cases/common/188 escape and unicode/fun.c)0
-rw-r--r--test cases/common/185 escape and unicode/main.c (renamed from test cases/common/188 escape and unicode/main.c)0
-rw-r--r--test cases/common/185 escape and unicode/meson.build (renamed from test cases/common/188 escape and unicode/meson.build)0
-rw-r--r--test cases/common/186 has link arg/meson.build (renamed from test cases/common/189 has link arg/meson.build)0
-rw-r--r--test cases/common/187 same target name flat layout/foo.c (renamed from test cases/common/190 same target name flat layout/foo.c)0
-rw-r--r--test cases/common/187 same target name flat layout/main.c (renamed from test cases/common/190 same target name flat layout/main.c)0
-rw-r--r--test cases/common/187 same target name flat layout/meson.build (renamed from test cases/common/190 same target name flat layout/meson.build)0
-rw-r--r--test cases/common/187 same target name flat layout/subdir/foo.c (renamed from test cases/common/190 same target name flat layout/subdir/foo.c)0
-rw-r--r--test cases/common/187 same target name flat layout/subdir/meson.build (renamed from test cases/common/190 same target name flat layout/subdir/meson.build)0
-rw-r--r--test cases/common/188 find override/meson.build (renamed from test cases/common/191 find override/meson.build)0
-rw-r--r--test cases/common/188 find override/otherdir/main.c (renamed from test cases/common/191 find override/otherdir/main.c)0
-rw-r--r--test cases/common/188 find override/otherdir/main2.c (renamed from test cases/common/191 find override/otherdir/main2.c)0
-rw-r--r--test cases/common/188 find override/otherdir/meson.build (renamed from test cases/common/191 find override/otherdir/meson.build)0
-rw-r--r--test cases/common/188 find override/otherdir/source.desc (renamed from test cases/common/191 find override/otherdir/source.desc)0
-rw-r--r--test cases/common/188 find override/otherdir/source2.desc (renamed from test cases/common/191 find override/otherdir/source2.desc)0
-rwxr-xr-xtest cases/common/188 find override/subdir/converter.py (renamed from test cases/common/191 find override/subdir/converter.py)0
-rwxr-xr-xtest cases/common/188 find override/subdir/gencodegen.py.in (renamed from test cases/common/191 find override/subdir/gencodegen.py.in)0
-rw-r--r--test cases/common/188 find override/subdir/meson.build (renamed from test cases/common/191 find override/subdir/meson.build)0
-rw-r--r--test cases/common/189 partial dependency/declare_dependency/headers/foo.c (renamed from test cases/common/192 partial dependency/declare_dependency/headers/foo.c)0
-rw-r--r--test cases/common/189 partial dependency/declare_dependency/headers/foo.h (renamed from test cases/common/192 partial dependency/declare_dependency/headers/foo.h)0
-rw-r--r--test cases/common/189 partial dependency/declare_dependency/main.c (renamed from test cases/common/192 partial dependency/declare_dependency/main.c)0
-rw-r--r--test cases/common/189 partial dependency/declare_dependency/meson.build (renamed from test cases/common/192 partial dependency/declare_dependency/meson.build)0
-rw-r--r--test cases/common/189 partial dependency/declare_dependency/other.c (renamed from test cases/common/192 partial dependency/declare_dependency/other.c)0
-rw-r--r--test cases/common/189 partial dependency/meson.build (renamed from test cases/common/192 partial dependency/meson.build)0
-rw-r--r--test cases/common/19 includedir/include/func.h (renamed from test cases/common/21 includedir/include/func.h)0
-rw-r--r--test cases/common/19 includedir/meson.build (renamed from test cases/common/21 includedir/meson.build)0
-rw-r--r--test cases/common/19 includedir/src/func.c (renamed from test cases/common/21 includedir/src/func.c)0
-rw-r--r--test cases/common/19 includedir/src/meson.build (renamed from test cases/common/21 includedir/src/meson.build)0
-rw-r--r--test cases/common/19 includedir/src/prog.c (renamed from test cases/common/21 includedir/src/prog.c)0
-rw-r--r--test cases/common/190 openmp/main.c (renamed from test cases/common/193 openmp/main.c)0
-rw-r--r--test cases/common/190 openmp/main.cpp (renamed from test cases/common/193 openmp/main.cpp)0
-rw-r--r--test cases/common/190 openmp/main.f90 (renamed from test cases/common/193 openmp/main.f90)0
-rw-r--r--test cases/common/190 openmp/meson.build (renamed from test cases/common/193 openmp/meson.build)3
-rw-r--r--test cases/common/191 same target name/file.c (renamed from test cases/common/194 same target name/file.c)0
-rw-r--r--test cases/common/191 same target name/meson.build (renamed from test cases/common/194 same target name/meson.build)0
-rw-r--r--test cases/common/191 same target name/sub/file2.c (renamed from test cases/common/194 same target name/sub/file2.c)0
-rw-r--r--test cases/common/191 same target name/sub/meson.build (renamed from test cases/common/194 same target name/sub/meson.build)0
-rwxr-xr-xtest cases/common/192 test depends/gen.py (renamed from test cases/common/195 test depends/gen.py)0
-rw-r--r--test cases/common/192 test depends/main.c (renamed from test cases/common/195 test depends/main.c)0
-rw-r--r--test cases/common/192 test depends/meson.build (renamed from test cases/common/195 test depends/meson.build)0
-rwxr-xr-xtest cases/common/192 test depends/test.py (renamed from test cases/common/195 test depends/test.py)0
-rw-r--r--test cases/common/193 args flattening/meson.build (renamed from test cases/common/196 args flattening/meson.build)0
-rw-r--r--test cases/common/194 dict/meson.build (renamed from test cases/common/197 dict/meson.build)0
-rw-r--r--test cases/common/194 dict/prog.c (renamed from test cases/common/197 dict/prog.c)0
-rw-r--r--test cases/common/195 check header/meson.build (renamed from test cases/common/198 check header/meson.build)4
-rw-r--r--test cases/common/195 check header/ouagadougou.h (renamed from test cases/common/198 check header/ouagadougou.h)0
-rw-r--r--test cases/common/196 install_mode/config.h.in (renamed from test cases/common/199 install_mode/config.h.in)0
-rw-r--r--test cases/common/196 install_mode/data_source.txt (renamed from test cases/common/199 install_mode/data_source.txt)0
-rw-r--r--test cases/common/196 install_mode/foo.1 (renamed from test cases/common/199 install_mode/foo.1)0
-rw-r--r--test cases/common/196 install_mode/installed_files.txt (renamed from test cases/common/199 install_mode/installed_files.txt)1
-rw-r--r--test cases/common/196 install_mode/meson.build (renamed from test cases/common/199 install_mode/meson.build)3
-rw-r--r--test cases/common/196 install_mode/rootdir.h (renamed from test cases/common/199 install_mode/rootdir.h)0
-rw-r--r--test cases/common/196 install_mode/runscript.sh (renamed from test cases/common/199 install_mode/runscript.sh)0
-rw-r--r--test cases/common/196 install_mode/stat.c (renamed from test cases/common/199 install_mode/stat.c)0
-rw-r--r--test cases/common/196 install_mode/sub1/second.dat (renamed from test cases/common/199 install_mode/sub1/second.dat)0
-rw-r--r--test cases/common/196 install_mode/sub2/stub (renamed from test cases/common/60 install script/no-installed-files)0
-rw-r--r--test cases/common/196 install_mode/trivial.c (renamed from test cases/common/199 install_mode/trivial.c)0
-rw-r--r--test cases/common/197 subproject array version/meson.build (renamed from test cases/common/200 subproject array version/meson.build)0
-rw-r--r--test cases/common/197 subproject array version/subprojects/foo/meson.build (renamed from test cases/common/200 subproject array version/subprojects/foo/meson.build)0
-rw-r--r--test cases/common/198 feature option/meson.build (renamed from test cases/common/201 feature option/meson.build)0
-rw-r--r--test cases/common/198 feature option/meson_options.txt (renamed from test cases/common/201 feature option/meson_options.txt)0
-rw-r--r--test cases/common/199 feature option disabled/meson.build (renamed from test cases/common/202 feature option disabled/meson.build)0
-rw-r--r--test cases/common/199 feature option disabled/meson_options.txt (renamed from test cases/common/202 feature option disabled/meson_options.txt)0
-rw-r--r--test cases/common/20 header in file list/header.h (renamed from test cases/common/22 header in file list/header.h)0
-rw-r--r--test cases/common/20 header in file list/meson.build (renamed from test cases/common/22 header in file list/meson.build)0
-rw-r--r--test cases/common/20 header in file list/prog.c (renamed from test cases/common/22 header in file list/prog.c)0
-rw-r--r--test cases/common/200 static threads/lib1.c (renamed from test cases/common/203 static threads/lib1.c)0
-rw-r--r--test cases/common/200 static threads/lib2.c (renamed from test cases/common/203 static threads/lib2.c)0
-rw-r--r--test cases/common/200 static threads/meson.build (renamed from test cases/common/203 static threads/meson.build)0
-rw-r--r--test cases/common/200 static threads/prog.c (renamed from test cases/common/203 static threads/prog.c)0
-rw-r--r--test cases/common/201 generator in subdir/com/mesonbuild/genprog.py (renamed from test cases/common/205 generator in subdir/com/mesonbuild/genprog.py)0
-rw-r--r--test cases/common/201 generator in subdir/com/mesonbuild/meson.build (renamed from test cases/common/205 generator in subdir/com/mesonbuild/meson.build)0
-rw-r--r--test cases/common/201 generator in subdir/com/mesonbuild/subbie.inp (renamed from test cases/common/205 generator in subdir/com/mesonbuild/subbie.inp)0
-rw-r--r--test cases/common/201 generator in subdir/com/mesonbuild/testprog.c (renamed from test cases/common/205 generator in subdir/com/mesonbuild/testprog.c)0
-rw-r--r--test cases/common/201 generator in subdir/meson.build (renamed from test cases/common/205 generator in subdir/meson.build)0
-rw-r--r--test cases/common/206 subproject with features/meson.build17
-rw-r--r--test cases/common/206 subproject with features/meson_options.txt3
-rw-r--r--test cases/common/206 subproject with features/nothing.c4
-rw-r--r--test cases/common/206 subproject with features/subprojects/auto_sub_with_missing_dep/meson.build3
-rw-r--r--test cases/common/206 subproject with features/subprojects/disabled_sub/lib/meson.build3
-rw-r--r--test cases/common/206 subproject with features/subprojects/disabled_sub/lib/sub.c5
-rw-r--r--test cases/common/206 subproject with features/subprojects/disabled_sub/lib/sub.h6
-rw-r--r--test cases/common/206 subproject with features/subprojects/disabled_sub/meson.build3
-rw-r--r--test cases/common/206 subproject with features/subprojects/sub/lib/meson.build2
-rw-r--r--test cases/common/206 subproject with features/subprojects/sub/lib/sub.c5
-rw-r--r--test cases/common/206 subproject with features/subprojects/sub/lib/sub.h6
-rw-r--r--test cases/common/206 subproject with features/subprojects/sub/meson.build3
-rw-r--r--test cases/common/21 global arg/meson.build (renamed from test cases/common/23 global arg/meson.build)11
-rw-r--r--test cases/common/21 global arg/prog.c51
-rw-r--r--test cases/common/21 global arg/prog.cc (renamed from test cases/common/23 global arg/prog.cc)0
-rw-r--r--test cases/common/22 target arg/func.c (renamed from test cases/common/24 target arg/func.c)0
-rw-r--r--test cases/common/22 target arg/func2.c (renamed from test cases/common/24 target arg/func2.c)0
-rw-r--r--test cases/common/22 target arg/meson.build (renamed from test cases/common/24 target arg/meson.build)0
-rw-r--r--test cases/common/22 target arg/prog.cc (renamed from test cases/common/24 target arg/prog.cc)0
-rw-r--r--test cases/common/22 target arg/prog2.cc (renamed from test cases/common/24 target arg/prog2.cc)0
-rw-r--r--test cases/common/23 global arg/prog.c15
-rw-r--r--test cases/common/23 object extraction/lib.c (renamed from test cases/common/25 object extraction/lib.c)0
-rw-r--r--test cases/common/23 object extraction/lib2.c (renamed from test cases/common/25 object extraction/lib2.c)0
-rw-r--r--test cases/common/23 object extraction/main.c (renamed from test cases/common/25 object extraction/main.c)0
-rw-r--r--test cases/common/23 object extraction/meson.build (renamed from test cases/common/25 object extraction/meson.build)0
-rw-r--r--test cases/common/23 object extraction/src/lib.c (renamed from test cases/common/25 object extraction/src/lib.c)0
-rw-r--r--test cases/common/24 endian/meson.build (renamed from test cases/common/26 endian/meson.build)0
-rw-r--r--test cases/common/24 endian/prog.c (renamed from test cases/common/26 endian/prog.c)0
-rw-r--r--test cases/common/25 library versions/installed_files.txt (renamed from test cases/common/27 library versions/installed_files.txt)0
-rw-r--r--test cases/common/25 library versions/lib.c (renamed from test cases/common/27 library versions/lib.c)0
-rw-r--r--test cases/common/25 library versions/meson.build (renamed from test cases/common/27 library versions/meson.build)0
-rw-r--r--test cases/common/25 library versions/subdir/meson.build (renamed from test cases/common/27 library versions/subdir/meson.build)0
-rw-r--r--test cases/common/26 config subdir/include/config.h.in (renamed from test cases/common/28 config subdir/include/config.h.in)0
-rw-r--r--test cases/common/26 config subdir/include/meson.build (renamed from test cases/common/28 config subdir/include/meson.build)0
-rw-r--r--test cases/common/26 config subdir/meson.build (renamed from test cases/common/28 config subdir/meson.build)0
-rw-r--r--test cases/common/26 config subdir/src/meson.build (renamed from test cases/common/28 config subdir/src/meson.build)0
-rw-r--r--test cases/common/26 config subdir/src/prog.c (renamed from test cases/common/28 config subdir/src/prog.c)0
-rw-r--r--test cases/common/27 pipeline/input_src.dat (renamed from test cases/common/29 pipeline/input_src.dat)0
-rw-r--r--test cases/common/27 pipeline/meson.build (renamed from test cases/common/29 pipeline/meson.build)0
-rw-r--r--test cases/common/27 pipeline/prog.c (renamed from test cases/common/29 pipeline/prog.c)0
-rw-r--r--test cases/common/27 pipeline/srcgen.c (renamed from test cases/common/29 pipeline/srcgen.c)0
-rw-r--r--test cases/common/28 pipeline/meson.build (renamed from test cases/common/30 pipeline/meson.build)0
-rw-r--r--test cases/common/28 pipeline/src/input_src.dat (renamed from test cases/common/30 pipeline/src/input_src.dat)0
-rw-r--r--test cases/common/28 pipeline/src/meson.build (renamed from test cases/common/30 pipeline/src/meson.build)0
-rw-r--r--test cases/common/28 pipeline/src/prog.c (renamed from test cases/common/30 pipeline/src/prog.c)0
-rw-r--r--test cases/common/28 pipeline/src/srcgen.c (renamed from test cases/common/30 pipeline/src/srcgen.c)0
-rw-r--r--test cases/common/29 find program/meson.build (renamed from test cases/common/31 find program/meson.build)0
-rw-r--r--test cases/common/29 find program/source.in (renamed from test cases/common/31 find program/source.in)0
-rw-r--r--test cases/common/30 multiline string/meson.build (renamed from test cases/common/32 multiline string/meson.build)0
-rw-r--r--test cases/common/31 try compile/invalid.c (renamed from test cases/common/33 try compile/invalid.c)0
-rw-r--r--test cases/common/31 try compile/meson.build (renamed from test cases/common/33 try compile/meson.build)0
-rw-r--r--test cases/common/31 try compile/valid.c (renamed from test cases/common/33 try compile/valid.c)0
-rw-r--r--test cases/common/32 compiler id/meson.build (renamed from test cases/common/34 compiler id/meson.build)0
-rw-r--r--test cases/common/33 sizeof/config.h.in (renamed from test cases/common/35 sizeof/config.h.in)0
-rw-r--r--test cases/common/33 sizeof/meson.build (renamed from test cases/common/35 sizeof/meson.build)0
-rw-r--r--test cases/common/33 sizeof/prog.c.in (renamed from test cases/common/35 sizeof/prog.c.in)0
-rw-r--r--test cases/common/34 define10/config.h.in (renamed from test cases/common/36 define10/config.h.in)0
-rw-r--r--test cases/common/34 define10/meson.build (renamed from test cases/common/36 define10/meson.build)0
-rw-r--r--test cases/common/34 define10/prog.c (renamed from test cases/common/36 define10/prog.c)0
-rw-r--r--test cases/common/35 has header/meson.build (renamed from test cases/common/37 has header/meson.build)0
-rw-r--r--test cases/common/35 has header/ouagadougou.h (renamed from test cases/common/37 has header/ouagadougou.h)0
-rw-r--r--test cases/common/36 run program/get-version.py (renamed from test cases/common/38 run program/get-version.py)0
-rw-r--r--test cases/common/36 run program/meson.build (renamed from test cases/common/38 run program/meson.build)0
-rw-r--r--test cases/common/36 run program/scripts/hello.bat (renamed from test cases/common/38 run program/scripts/hello.bat)0
-rwxr-xr-xtest cases/common/36 run program/scripts/hello.sh (renamed from test cases/common/38 run program/scripts/hello.sh)0
-rw-r--r--test cases/common/37 tryrun/error.c (renamed from test cases/common/39 tryrun/error.c)0
-rw-r--r--test cases/common/37 tryrun/meson.build (renamed from test cases/common/39 tryrun/meson.build)0
-rw-r--r--test cases/common/37 tryrun/no_compile.c (renamed from test cases/common/39 tryrun/no_compile.c)0
-rw-r--r--test cases/common/37 tryrun/ok.c (renamed from test cases/common/39 tryrun/ok.c)0
-rw-r--r--test cases/common/38 logic ops/meson.build (renamed from test cases/common/40 logic ops/meson.build)0
-rw-r--r--test cases/common/39 string operations/meson.build (renamed from test cases/common/42 string operations/meson.build)0
-rw-r--r--test cases/common/40 has function/meson.build (renamed from test cases/common/43 has function/meson.build)0
-rw-r--r--test cases/common/41 elif/meson.build28
-rw-r--r--test cases/common/41 has member/meson.build (renamed from test cases/common/44 has member/meson.build)0
-rw-r--r--test cases/common/42 alignment/meson.build (renamed from test cases/common/45 alignment/meson.build)0
-rw-r--r--test cases/common/43 library chain/installed_files.txt (renamed from test cases/common/46 library chain/installed_files.txt)0
-rw-r--r--test cases/common/43 library chain/main.c (renamed from test cases/common/46 library chain/main.c)0
-rw-r--r--test cases/common/43 library chain/meson.build (renamed from test cases/common/46 library chain/meson.build)0
-rw-r--r--test cases/common/43 library chain/subdir/lib1.c (renamed from test cases/common/46 library chain/subdir/lib1.c)0
-rw-r--r--test cases/common/43 library chain/subdir/meson.build (renamed from test cases/common/46 library chain/subdir/meson.build)0
-rw-r--r--test cases/common/43 library chain/subdir/subdir2/lib2.c (renamed from test cases/common/46 library chain/subdir/subdir2/lib2.c)0
-rw-r--r--test cases/common/43 library chain/subdir/subdir2/meson.build (renamed from test cases/common/46 library chain/subdir/subdir2/meson.build)0
-rw-r--r--test cases/common/43 library chain/subdir/subdir3/lib3.c (renamed from test cases/common/46 library chain/subdir/subdir3/lib3.c)0
-rw-r--r--test cases/common/43 library chain/subdir/subdir3/meson.build (renamed from test cases/common/46 library chain/subdir/subdir3/meson.build)0
-rw-r--r--test cases/common/44 options/meson.build (renamed from test cases/common/47 options/meson.build)0
-rw-r--r--test cases/common/44 options/meson_options.txt (renamed from test cases/common/47 options/meson_options.txt)0
-rw-r--r--test cases/common/45 test args/cmd_args.c (renamed from test cases/common/48 test args/cmd_args.c)0
-rw-r--r--test cases/common/45 test args/copyfile.py (renamed from test cases/common/48 test args/copyfile.py)0
-rw-r--r--test cases/common/45 test args/env2vars.c (renamed from test cases/common/48 test args/env2vars.c)0
-rw-r--r--test cases/common/45 test args/envvars.c (renamed from test cases/common/48 test args/envvars.c)0
-rw-r--r--test cases/common/45 test args/meson.build (renamed from test cases/common/48 test args/meson.build)0
-rw-r--r--test cases/common/45 test args/tester.c (renamed from test cases/common/48 test args/tester.c)0
-rwxr-xr-xtest cases/common/45 test args/tester.py (renamed from test cases/common/48 test args/tester.py)0
-rw-r--r--test cases/common/45 test args/testfile.txt (renamed from test cases/common/48 test args/testfile.txt)0
-rw-r--r--test cases/common/46 subproject/installed_files.txt (renamed from test cases/common/49 subproject/installed_files.txt)0
-rw-r--r--test cases/common/46 subproject/meson.build (renamed from test cases/common/49 subproject/meson.build)0
-rw-r--r--test cases/common/46 subproject/subprojects/sublib/include/subdefs.h (renamed from test cases/common/49 subproject/subprojects/sublib/include/subdefs.h)0
-rw-r--r--test cases/common/46 subproject/subprojects/sublib/meson.build (renamed from test cases/common/49 subproject/subprojects/sublib/meson.build)0
-rw-r--r--test cases/common/46 subproject/subprojects/sublib/simpletest.c (renamed from test cases/common/49 subproject/subprojects/sublib/simpletest.c)0
-rw-r--r--test cases/common/46 subproject/subprojects/sublib/sublib.c (renamed from test cases/common/49 subproject/subprojects/sublib/sublib.c)0
-rw-r--r--test cases/common/46 subproject/user.c (renamed from test cases/common/49 subproject/user.c)0
-rw-r--r--test cases/common/47 subproject options/meson.build (renamed from test cases/common/50 subproject options/meson.build)0
-rw-r--r--test cases/common/47 subproject options/meson_options.txt (renamed from test cases/common/50 subproject options/meson_options.txt)0
-rw-r--r--test cases/common/47 subproject options/subprojects/subproject/meson.build (renamed from test cases/common/50 subproject options/subprojects/subproject/meson.build)0
-rw-r--r--test cases/common/47 subproject options/subprojects/subproject/meson_options.txt (renamed from test cases/common/50 subproject options/subprojects/subproject/meson_options.txt)0
-rw-r--r--test cases/common/48 pkgconfig-gen/dependencies/exposed.c (renamed from test cases/common/51 pkgconfig-gen/dependencies/exposed.c)0
-rw-r--r--test cases/common/48 pkgconfig-gen/dependencies/internal.c (renamed from test cases/common/51 pkgconfig-gen/dependencies/internal.c)0
-rw-r--r--test cases/common/48 pkgconfig-gen/dependencies/meson.build (renamed from test cases/common/51 pkgconfig-gen/dependencies/meson.build)0
-rw-r--r--test cases/common/48 pkgconfig-gen/installed_files.txt (renamed from test cases/common/51 pkgconfig-gen/installed_files.txt)0
-rw-r--r--test cases/common/48 pkgconfig-gen/meson.build (renamed from test cases/common/51 pkgconfig-gen/meson.build)0
-rw-r--r--test cases/common/48 pkgconfig-gen/simple.c (renamed from test cases/common/51 pkgconfig-gen/simple.c)0
-rw-r--r--test cases/common/48 pkgconfig-gen/simple.h (renamed from test cases/common/51 pkgconfig-gen/simple.h)0
-rw-r--r--test cases/common/49 custom install dirs/datafile.cat (renamed from test cases/common/52 custom install dirs/datafile.cat)0
-rw-r--r--test cases/common/49 custom install dirs/installed_files.txt (renamed from test cases/common/52 custom install dirs/installed_files.txt)0
-rw-r--r--test cases/common/49 custom install dirs/meson.build (renamed from test cases/common/52 custom install dirs/meson.build)0
-rw-r--r--test cases/common/49 custom install dirs/prog.1 (renamed from test cases/common/52 custom install dirs/prog.1)0
-rw-r--r--test cases/common/49 custom install dirs/prog.c (renamed from test cases/common/52 custom install dirs/prog.c)0
-rw-r--r--test cases/common/49 custom install dirs/sample.h (renamed from test cases/common/52 custom install dirs/sample.h)0
-rw-r--r--test cases/common/49 custom install dirs/subdir/datafile.dog (renamed from test cases/common/52 custom install dirs/subdir/datafile.dog)0
-rw-r--r--test cases/common/50 subproject subproject/meson.build (renamed from test cases/common/53 subproject subproject/meson.build)0
-rw-r--r--test cases/common/50 subproject subproject/prog.c (renamed from test cases/common/53 subproject subproject/prog.c)0
-rw-r--r--test cases/common/50 subproject subproject/subprojects/a/a.c (renamed from test cases/common/53 subproject subproject/subprojects/a/a.c)0
-rw-r--r--test cases/common/50 subproject subproject/subprojects/a/meson.build (renamed from test cases/common/53 subproject subproject/subprojects/a/meson.build)0
-rw-r--r--test cases/common/50 subproject subproject/subprojects/b/b.c (renamed from test cases/common/53 subproject subproject/subprojects/b/b.c)0
-rw-r--r--test cases/common/50 subproject subproject/subprojects/b/meson.build (renamed from test cases/common/53 subproject subproject/subprojects/b/meson.build)0
-rw-r--r--test cases/common/51 same file name/d1/file.c (renamed from test cases/common/54 same file name/d1/file.c)0
-rw-r--r--test cases/common/51 same file name/d2/file.c (renamed from test cases/common/54 same file name/d2/file.c)0
-rw-r--r--test cases/common/51 same file name/meson.build (renamed from test cases/common/54 same file name/meson.build)0
-rw-r--r--test cases/common/51 same file name/prog.c (renamed from test cases/common/54 same file name/prog.c)0
-rw-r--r--test cases/common/52 file grabber/a.c (renamed from test cases/common/55 file grabber/a.c)0
-rw-r--r--test cases/common/52 file grabber/b.c (renamed from test cases/common/55 file grabber/b.c)0
-rw-r--r--test cases/common/52 file grabber/c.c (renamed from test cases/common/55 file grabber/c.c)0
-rw-r--r--test cases/common/52 file grabber/grabber.bat (renamed from test cases/common/55 file grabber/grabber.bat)0
-rwxr-xr-xtest cases/common/52 file grabber/grabber.sh (renamed from test cases/common/55 file grabber/grabber.sh)0
-rw-r--r--test cases/common/52 file grabber/grabber2.bat (renamed from test cases/common/55 file grabber/grabber2.bat)0
-rw-r--r--test cases/common/52 file grabber/meson.build (renamed from test cases/common/55 file grabber/meson.build)0
-rw-r--r--test cases/common/52 file grabber/prog.c (renamed from test cases/common/55 file grabber/prog.c)0
-rw-r--r--test cases/common/52 file grabber/subdir/meson.build (renamed from test cases/common/55 file grabber/subdir/meson.build)0
-rw-r--r--test cases/common/52 file grabber/subdir/suba.c (renamed from test cases/common/55 file grabber/subdir/suba.c)0
-rw-r--r--test cases/common/52 file grabber/subdir/subb.c (renamed from test cases/common/55 file grabber/subdir/subb.c)0
-rw-r--r--test cases/common/52 file grabber/subdir/subc.c (renamed from test cases/common/55 file grabber/subdir/subc.c)0
-rw-r--r--test cases/common/52 file grabber/subdir/subprog.c (renamed from test cases/common/55 file grabber/subdir/subprog.c)0
-rw-r--r--test cases/common/53 custom target/data_source.txt (renamed from test cases/common/56 custom target/data_source.txt)0
-rwxr-xr-xtest cases/common/53 custom target/depfile/dep.py (renamed from test cases/common/56 custom target/depfile/dep.py)0
-rw-r--r--test cases/common/53 custom target/depfile/meson.build (renamed from test cases/common/56 custom target/depfile/meson.build)0
-rw-r--r--test cases/common/53 custom target/installed_files.txt (renamed from test cases/common/56 custom target/installed_files.txt)0
-rw-r--r--test cases/common/53 custom target/meson.build (renamed from test cases/common/56 custom target/meson.build)0
-rwxr-xr-xtest cases/common/53 custom target/my_compiler.py (renamed from test cases/common/56 custom target/my_compiler.py)0
-rw-r--r--test cases/common/54 custom target chain/data_source.txt (renamed from test cases/common/57 custom target chain/data_source.txt)0
-rw-r--r--test cases/common/54 custom target chain/installed_files.txt (renamed from test cases/common/57 custom target chain/installed_files.txt)0
-rw-r--r--test cases/common/54 custom target chain/meson.build (renamed from test cases/common/57 custom target chain/meson.build)0
-rwxr-xr-xtest cases/common/54 custom target chain/my_compiler.py (renamed from test cases/common/57 custom target chain/my_compiler.py)0
-rwxr-xr-xtest cases/common/54 custom target chain/my_compiler2.py (renamed from test cases/common/57 custom target chain/my_compiler2.py)0
-rw-r--r--test cases/common/54 custom target chain/usetarget/meson.build (renamed from test cases/common/57 custom target chain/usetarget/meson.build)0
-rw-r--r--test cases/common/54 custom target chain/usetarget/myexe.c (renamed from test cases/common/57 custom target chain/usetarget/myexe.c)0
-rwxr-xr-xtest cases/common/54 custom target chain/usetarget/subcomp.py (renamed from test cases/common/57 custom target chain/usetarget/subcomp.py)0
-rwxr-xr-xtest cases/common/55 run target/check_exists.py (renamed from test cases/common/58 run target/check_exists.py)0
-rwxr-xr-xtest cases/common/55 run target/configure.in (renamed from test cases/common/58 run target/configure.in)0
-rw-r--r--test cases/common/55 run target/converter.py (renamed from test cases/common/58 run target/converter.py)0
-rwxr-xr-xtest cases/common/55 run target/fakeburner.py (renamed from test cases/common/58 run target/fakeburner.py)0
-rw-r--r--test cases/common/55 run target/helloprinter.c (renamed from test cases/common/58 run target/helloprinter.c)0
-rw-r--r--test cases/common/55 run target/meson.build (renamed from test cases/common/58 run target/meson.build)0
-rwxr-xr-xtest cases/common/55 run target/scripts/script.sh (renamed from test cases/common/58 run target/scripts/script.sh)0
-rw-r--r--test cases/common/56 object generator/meson.build (renamed from test cases/common/59 object generator/meson.build)0
-rwxr-xr-xtest cases/common/56 object generator/obj_generator.py (renamed from test cases/common/59 object generator/obj_generator.py)0
-rw-r--r--test cases/common/56 object generator/prog.c (renamed from test cases/common/59 object generator/prog.c)0
-rw-r--r--test cases/common/56 object generator/source.c (renamed from test cases/common/59 object generator/source.c)0
-rw-r--r--test cases/common/56 object generator/source2.c (renamed from test cases/common/59 object generator/source2.c)0
-rw-r--r--test cases/common/56 object generator/source3.c (renamed from test cases/common/59 object generator/source3.c)0
-rw-r--r--test cases/common/57 install script/installed_files.txt (renamed from test cases/common/60 install script/installed_files.txt)0
-rw-r--r--test cases/common/57 install script/meson.build (renamed from test cases/common/60 install script/meson.build)0
-rw-r--r--test cases/common/57 install script/myinstall.py (renamed from test cases/common/60 install script/myinstall.py)0
-rw-r--r--test cases/common/57 install script/no-installed-files (renamed from test cases/common/64 custom header generator/somefile.txt)0
-rw-r--r--test cases/common/57 install script/prog.c (renamed from test cases/common/60 install script/prog.c)0
-rw-r--r--test cases/common/57 install script/src/meson.build (renamed from test cases/common/60 install script/src/meson.build)0
-rw-r--r--test cases/common/57 install script/src/myinstall.py (renamed from test cases/common/60 install script/src/myinstall.py)0
-rwxr-xr-xtest cases/common/58 custom target source output/generator.py (renamed from test cases/common/61 custom target source output/generator.py)0
-rw-r--r--test cases/common/58 custom target source output/main.c (renamed from test cases/common/61 custom target source output/main.c)0
-rw-r--r--test cases/common/58 custom target source output/meson.build (renamed from test cases/common/61 custom target source output/meson.build)0
-rw-r--r--test cases/common/59 exe static shared/meson.build (renamed from test cases/common/62 exe static shared/meson.build)0
-rw-r--r--test cases/common/59 exe static shared/prog.c (renamed from test cases/common/62 exe static shared/prog.c)0
-rw-r--r--test cases/common/59 exe static shared/shlib2.c (renamed from test cases/common/62 exe static shared/shlib2.c)0
-rw-r--r--test cases/common/59 exe static shared/stat.c (renamed from test cases/common/62 exe static shared/stat.c)0
-rw-r--r--test cases/common/59 exe static shared/stat2.c (renamed from test cases/common/62 exe static shared/stat2.c)0
-rw-r--r--test cases/common/59 exe static shared/subdir/exports.h (renamed from test cases/common/62 exe static shared/subdir/exports.h)0
-rw-r--r--test cases/common/59 exe static shared/subdir/meson.build (renamed from test cases/common/62 exe static shared/subdir/meson.build)0
-rw-r--r--test cases/common/59 exe static shared/subdir/shlib.c (renamed from test cases/common/62 exe static shared/subdir/shlib.c)0
-rw-r--r--test cases/common/60 array methods/meson.build (renamed from test cases/common/63 array methods/meson.build)0
-rw-r--r--test cases/common/61 custom header generator/input.def (renamed from test cases/common/64 custom header generator/input.def)0
-rw-r--r--test cases/common/61 custom header generator/makeheader.py (renamed from test cases/common/64 custom header generator/makeheader.py)0
-rw-r--r--test cases/common/61 custom header generator/meson.build (renamed from test cases/common/64 custom header generator/meson.build)0
-rw-r--r--test cases/common/61 custom header generator/prog.c (renamed from test cases/common/64 custom header generator/prog.c)0
-rw-r--r--test cases/common/61 custom header generator/somefile.txt (renamed from test cases/common/66 install subdir/sub2/dircheck/excluded-three.dat)0
-rw-r--r--test cases/common/62 multiple generators/data2.dat (renamed from test cases/common/65 multiple generators/data2.dat)0
-rw-r--r--test cases/common/62 multiple generators/main.cpp (renamed from test cases/common/65 multiple generators/main.cpp)0
-rw-r--r--test cases/common/62 multiple generators/meson.build (renamed from test cases/common/65 multiple generators/meson.build)0
-rwxr-xr-xtest cases/common/62 multiple generators/mygen.py (renamed from test cases/common/65 multiple generators/mygen.py)0
-rw-r--r--test cases/common/62 multiple generators/subdir/data.dat (renamed from test cases/common/65 multiple generators/subdir/data.dat)0
-rw-r--r--test cases/common/62 multiple generators/subdir/meson.build (renamed from test cases/common/65 multiple generators/subdir/meson.build)0
-rw-r--r--test cases/common/63 install subdir/installed_files.txt (renamed from test cases/common/66 install subdir/installed_files.txt)0
-rw-r--r--test cases/common/63 install subdir/meson.build (renamed from test cases/common/66 install subdir/meson.build)0
-rw-r--r--test cases/common/63 install subdir/nested_elided/sub/dircheck/nineth.dat (renamed from test cases/common/66 install subdir/nested_elided/sub/dircheck/nineth.dat)0
-rw-r--r--test cases/common/63 install subdir/nested_elided/sub/eighth.dat (renamed from test cases/common/66 install subdir/nested_elided/sub/eighth.dat)0
-rw-r--r--test cases/common/63 install subdir/sub/sub1/third.dat (renamed from test cases/common/66 install subdir/sub/sub1/third.dat)0
-rw-r--r--test cases/common/63 install subdir/sub1/second.dat (renamed from test cases/common/66 install subdir/sub1/second.dat)0
-rw-r--r--test cases/common/63 install subdir/sub2/dircheck/excluded-three.dat (renamed from test cases/common/66 install subdir/sub2/excluded-three.dat)0
-rw-r--r--test cases/common/63 install subdir/sub2/excluded-three.dat (renamed from test cases/common/66 install subdir/sub2/excluded/two.dat)0
-rw-r--r--test cases/common/63 install subdir/sub2/excluded/two.dat (renamed from test cases/common/66 install subdir/sub2/one.dat)0
-rw-r--r--test cases/common/63 install subdir/sub2/one.dat (renamed from test cases/common/93 private include/stlib/foo1.def)0
-rw-r--r--test cases/common/63 install subdir/sub_elided/dircheck/fifth.dat (renamed from test cases/common/66 install subdir/sub_elided/dircheck/fifth.dat)0
-rw-r--r--test cases/common/63 install subdir/sub_elided/fourth.dat (renamed from test cases/common/66 install subdir/sub_elided/fourth.dat)0
-rw-r--r--test cases/common/63 install subdir/subdir/meson.build (renamed from test cases/common/66 install subdir/subdir/meson.build)0
-rw-r--r--test cases/common/63 install subdir/subdir/sub1/data1.dat (renamed from test cases/common/66 install subdir/subdir/sub1/data1.dat)0
-rw-r--r--test cases/common/63 install subdir/subdir/sub1/sub2/data2.dat (renamed from test cases/common/66 install subdir/subdir/sub1/sub2/data2.dat)0
-rw-r--r--test cases/common/63 install subdir/subdir/sub_elided/dircheck/seventh.dat (renamed from test cases/common/66 install subdir/subdir/sub_elided/dircheck/seventh.dat)0
-rw-r--r--test cases/common/63 install subdir/subdir/sub_elided/sixth.dat (renamed from test cases/common/66 install subdir/subdir/sub_elided/sixth.dat)0
-rw-r--r--test cases/common/64 foreach/installed_files.txt (renamed from test cases/common/67 foreach/installed_files.txt)0
-rw-r--r--test cases/common/64 foreach/meson.build (renamed from test cases/common/67 foreach/meson.build)0
-rw-r--r--test cases/common/64 foreach/prog1.c (renamed from test cases/common/67 foreach/prog1.c)0
-rw-r--r--test cases/common/64 foreach/prog2.c (renamed from test cases/common/67 foreach/prog2.c)0
-rw-r--r--test cases/common/64 foreach/prog3.c (renamed from test cases/common/67 foreach/prog3.c)0
-rw-r--r--test cases/common/65 number arithmetic/meson.build (renamed from test cases/common/68 number arithmetic/meson.build)0
-rw-r--r--test cases/common/66 string arithmetic/meson.build (renamed from test cases/common/69 string arithmetic/meson.build)0
-rw-r--r--test cases/common/67 array arithmetic/meson.build (renamed from test cases/common/70 array arithmetic/meson.build)0
-rw-r--r--test cases/common/68 arithmetic bidmas/meson.build (renamed from test cases/common/71 arithmetic bidmas/meson.build)0
-rw-r--r--test cases/common/69 build always/main.c (renamed from test cases/common/72 build always/main.c)0
-rw-r--r--test cases/common/69 build always/meson.build (renamed from test cases/common/72 build always/meson.build)0
-rw-r--r--test cases/common/69 build always/version.c.in (renamed from test cases/common/72 build always/version.c.in)0
-rw-r--r--test cases/common/69 build always/version.h (renamed from test cases/common/72 build always/version.h)0
-rwxr-xr-xtest cases/common/69 build always/version_gen.py (renamed from test cases/common/72 build always/version_gen.py)0
-rw-r--r--test cases/common/70 vcstag/meson.build (renamed from test cases/common/73 vcstag/meson.build)0
-rw-r--r--test cases/common/70 vcstag/tagprog.c (renamed from test cases/common/73 vcstag/tagprog.c)0
-rw-r--r--test cases/common/70 vcstag/vcstag.c.in (renamed from test cases/common/73 vcstag/vcstag.c.in)0
-rw-r--r--test cases/common/71 modules/meson.build (renamed from test cases/common/74 modules/meson.build)0
-rw-r--r--test cases/common/72 should fail/failing.c (renamed from test cases/common/75 should fail/failing.c)0
-rw-r--r--test cases/common/72 should fail/meson.build (renamed from test cases/common/75 should fail/meson.build)0
-rw-r--r--test cases/common/73 configure file in custom target/inc/confdata.in (renamed from test cases/common/76 configure file in custom target/inc/confdata.in)0
-rw-r--r--test cases/common/73 configure file in custom target/inc/meson.build (renamed from test cases/common/76 configure file in custom target/inc/meson.build)0
-rw-r--r--test cases/common/73 configure file in custom target/meson.build (renamed from test cases/common/76 configure file in custom target/meson.build)0
-rw-r--r--test cases/common/73 configure file in custom target/src/meson.build (renamed from test cases/common/76 configure file in custom target/src/meson.build)0
-rw-r--r--test cases/common/73 configure file in custom target/src/mycompiler.py (renamed from test cases/common/76 configure file in custom target/src/mycompiler.py)0
-rw-r--r--test cases/common/74 external test program/meson.build (renamed from test cases/common/77 external test program/meson.build)0
-rwxr-xr-xtest cases/common/74 external test program/mytest.py (renamed from test cases/common/77 external test program/mytest.py)0
-rwxr-xr-xtest cases/common/75 ctarget dependency/gen1.py (renamed from test cases/common/78 ctarget dependency/gen1.py)0
-rwxr-xr-xtest cases/common/75 ctarget dependency/gen2.py (renamed from test cases/common/78 ctarget dependency/gen2.py)0
-rw-r--r--test cases/common/75 ctarget dependency/input.dat (renamed from test cases/common/78 ctarget dependency/input.dat)0
-rw-r--r--test cases/common/75 ctarget dependency/meson.build (renamed from test cases/common/78 ctarget dependency/meson.build)0
-rw-r--r--test cases/common/76 shared subproject/a.c (renamed from test cases/common/79 shared subproject/a.c)0
-rw-r--r--test cases/common/76 shared subproject/meson.build (renamed from test cases/common/79 shared subproject/meson.build)0
-rw-r--r--test cases/common/76 shared subproject/subprojects/B/b.c (renamed from test cases/common/79 shared subproject/subprojects/B/b.c)0
-rw-r--r--test cases/common/76 shared subproject/subprojects/B/meson.build (renamed from test cases/common/79 shared subproject/subprojects/B/meson.build)0
-rw-r--r--test cases/common/76 shared subproject/subprojects/C/c.c (renamed from test cases/common/79 shared subproject/subprojects/C/c.c)0
-rw-r--r--test cases/common/76 shared subproject/subprojects/C/meson.build (renamed from test cases/common/79 shared subproject/subprojects/C/meson.build)0
-rw-r--r--test cases/common/77 shared subproject 2/a.c (renamed from test cases/common/80 shared subproject 2/a.c)0
-rw-r--r--test cases/common/77 shared subproject 2/meson.build (renamed from test cases/common/80 shared subproject 2/meson.build)0
-rw-r--r--test cases/common/77 shared subproject 2/subprojects/B/b.c (renamed from test cases/common/80 shared subproject 2/subprojects/B/b.c)0
-rw-r--r--test cases/common/77 shared subproject 2/subprojects/B/meson.build (renamed from test cases/common/80 shared subproject 2/subprojects/B/meson.build)0
-rw-r--r--test cases/common/77 shared subproject 2/subprojects/C/c.c (renamed from test cases/common/80 shared subproject 2/subprojects/C/c.c)0
-rw-r--r--test cases/common/77 shared subproject 2/subprojects/C/meson.build (renamed from test cases/common/80 shared subproject 2/subprojects/C/meson.build)0
-rw-r--r--test cases/common/78 file object/lib.c (renamed from test cases/common/81 file object/lib.c)0
-rw-r--r--test cases/common/78 file object/meson.build (renamed from test cases/common/81 file object/meson.build)0
-rw-r--r--test cases/common/78 file object/prog.c (renamed from test cases/common/81 file object/prog.c)0
-rw-r--r--test cases/common/78 file object/subdir1/lib.c (renamed from test cases/common/81 file object/subdir1/lib.c)0
-rw-r--r--test cases/common/78 file object/subdir1/meson.build (renamed from test cases/common/81 file object/subdir1/meson.build)0
-rw-r--r--test cases/common/78 file object/subdir1/prog.c (renamed from test cases/common/81 file object/subdir1/prog.c)0
-rw-r--r--test cases/common/78 file object/subdir2/lib.c (renamed from test cases/common/81 file object/subdir2/lib.c)0
-rw-r--r--test cases/common/78 file object/subdir2/meson.build (renamed from test cases/common/81 file object/subdir2/meson.build)0
-rw-r--r--test cases/common/78 file object/subdir2/prog.c (renamed from test cases/common/81 file object/subdir2/prog.c)0
-rw-r--r--test cases/common/79 custom subproject dir/a.c (renamed from test cases/common/82 custom subproject dir/a.c)0
-rw-r--r--test cases/common/79 custom subproject dir/custom_subproject_dir/B/b.c (renamed from test cases/common/82 custom subproject dir/custom_subproject_dir/B/b.c)0
-rw-r--r--test cases/common/79 custom subproject dir/custom_subproject_dir/B/meson.build (renamed from test cases/common/82 custom subproject dir/custom_subproject_dir/B/meson.build)0
-rw-r--r--test cases/common/79 custom subproject dir/custom_subproject_dir/C/c.c (renamed from test cases/common/82 custom subproject dir/custom_subproject_dir/C/c.c)0
-rw-r--r--test cases/common/79 custom subproject dir/custom_subproject_dir/C/meson.build (renamed from test cases/common/82 custom subproject dir/custom_subproject_dir/C/meson.build)0
-rw-r--r--test cases/common/79 custom subproject dir/meson.build (renamed from test cases/common/82 custom subproject dir/meson.build)0
-rw-r--r--test cases/common/80 has type/meson.build (renamed from test cases/common/83 has type/meson.build)0
-rw-r--r--test cases/common/81 extract from nested subdir/meson.build (renamed from test cases/common/84 extract from nested subdir/meson.build)0
-rw-r--r--test cases/common/81 extract from nested subdir/src/first/lib_first.c (renamed from test cases/common/84 extract from nested subdir/src/first/lib_first.c)0
-rw-r--r--test cases/common/81 extract from nested subdir/src/first/meson.build (renamed from test cases/common/84 extract from nested subdir/src/first/meson.build)0
-rw-r--r--test cases/common/81 extract from nested subdir/src/meson.build (renamed from test cases/common/84 extract from nested subdir/src/meson.build)0
-rw-r--r--test cases/common/81 extract from nested subdir/tst/first/exe_first.c (renamed from test cases/common/84 extract from nested subdir/tst/first/exe_first.c)0
-rw-r--r--test cases/common/81 extract from nested subdir/tst/first/meson.build (renamed from test cases/common/84 extract from nested subdir/tst/first/meson.build)0
-rw-r--r--test cases/common/81 extract from nested subdir/tst/meson.build (renamed from test cases/common/84 extract from nested subdir/tst/meson.build)0
-rw-r--r--test cases/common/82 internal dependency/meson.build (renamed from test cases/common/85 internal dependency/meson.build)0
-rw-r--r--test cases/common/82 internal dependency/proj1/include/proj1.h (renamed from test cases/common/85 internal dependency/proj1/include/proj1.h)0
-rw-r--r--test cases/common/82 internal dependency/proj1/meson.build (renamed from test cases/common/85 internal dependency/proj1/meson.build)0
-rw-r--r--test cases/common/82 internal dependency/proj1/proj1f1.c (renamed from test cases/common/85 internal dependency/proj1/proj1f1.c)0
-rw-r--r--test cases/common/82 internal dependency/proj1/proj1f2.c (renamed from test cases/common/85 internal dependency/proj1/proj1f2.c)0
-rw-r--r--test cases/common/82 internal dependency/proj1/proj1f3.c (renamed from test cases/common/85 internal dependency/proj1/proj1f3.c)0
-rw-r--r--test cases/common/82 internal dependency/src/main.c (renamed from test cases/common/85 internal dependency/src/main.c)0
-rw-r--r--test cases/common/82 internal dependency/src/meson.build (renamed from test cases/common/85 internal dependency/src/meson.build)0
-rw-r--r--test cases/common/83 same basename/exe1.c (renamed from test cases/common/86 same basename/exe1.c)0
-rw-r--r--test cases/common/83 same basename/exe2.c (renamed from test cases/common/86 same basename/exe2.c)0
-rw-r--r--test cases/common/83 same basename/lib.c (renamed from test cases/common/86 same basename/lib.c)0
-rw-r--r--test cases/common/83 same basename/meson.build (renamed from test cases/common/86 same basename/meson.build)0
-rw-r--r--test cases/common/83 same basename/sharedsub/meson.build (renamed from test cases/common/86 same basename/sharedsub/meson.build)0
-rw-r--r--test cases/common/83 same basename/staticsub/meson.build (renamed from test cases/common/86 same basename/staticsub/meson.build)0
-rw-r--r--test cases/common/84 declare dep/entity/entity.h (renamed from test cases/common/87 declare dep/entity/entity.h)0
-rw-r--r--test cases/common/84 declare dep/entity/entity1.c (renamed from test cases/common/87 declare dep/entity/entity1.c)0
-rw-r--r--test cases/common/84 declare dep/entity/entity2.c (renamed from test cases/common/87 declare dep/entity/entity2.c)0
-rw-r--r--test cases/common/84 declare dep/entity/meson.build (renamed from test cases/common/87 declare dep/entity/meson.build)0
-rw-r--r--test cases/common/84 declare dep/main.c (renamed from test cases/common/87 declare dep/main.c)0
-rw-r--r--test cases/common/84 declare dep/meson.build (renamed from test cases/common/87 declare dep/meson.build)0
-rw-r--r--test cases/common/85 extract all/extractor.h (renamed from test cases/common/88 extract all/extractor.h)0
-rw-r--r--test cases/common/85 extract all/four.c (renamed from test cases/common/88 extract all/four.c)0
-rw-r--r--test cases/common/85 extract all/meson.build (renamed from test cases/common/88 extract all/meson.build)0
-rw-r--r--test cases/common/85 extract all/one.c (renamed from test cases/common/88 extract all/one.c)0
-rw-r--r--test cases/common/85 extract all/prog.c (renamed from test cases/common/88 extract all/prog.c)0
-rw-r--r--test cases/common/85 extract all/three.c (renamed from test cases/common/88 extract all/three.c)0
-rw-r--r--test cases/common/85 extract all/two.c (renamed from test cases/common/88 extract all/two.c)0
-rw-r--r--test cases/common/86 add language/meson.build (renamed from test cases/common/89 add language/meson.build)0
-rw-r--r--test cases/common/86 add language/prog.c (renamed from test cases/common/89 add language/prog.c)0
-rw-r--r--test cases/common/86 add language/prog.cc (renamed from test cases/common/89 add language/prog.cc)0
-rw-r--r--test cases/common/87 identical target name in subproject/bar.c (renamed from test cases/common/90 identical target name in subproject/bar.c)0
-rw-r--r--test cases/common/87 identical target name in subproject/meson.build (renamed from test cases/common/90 identical target name in subproject/meson.build)0
-rw-r--r--test cases/common/87 identical target name in subproject/subprojects/foo/bar.c (renamed from test cases/common/90 identical target name in subproject/subprojects/foo/bar.c)0
-rw-r--r--test cases/common/87 identical target name in subproject/subprojects/foo/meson.build (renamed from test cases/common/90 identical target name in subproject/subprojects/foo/meson.build)0
-rw-r--r--test cases/common/88 plusassign/meson.build (renamed from test cases/common/91 plusassign/meson.build)0
-rw-r--r--test cases/common/89 skip subdir/meson.build (renamed from test cases/common/92 skip subdir/meson.build)0
-rw-r--r--test cases/common/89 skip subdir/subdir1/meson.build (renamed from test cases/common/92 skip subdir/subdir1/meson.build)0
-rw-r--r--test cases/common/89 skip subdir/subdir1/subdir2/meson.build (renamed from test cases/common/92 skip subdir/subdir1/subdir2/meson.build)0
-rw-r--r--test cases/common/90 private include/meson.build (renamed from test cases/common/93 private include/meson.build)0
-rwxr-xr-xtest cases/common/90 private include/stlib/compiler.py (renamed from test cases/common/93 private include/stlib/compiler.py)0
-rw-r--r--test cases/common/90 private include/stlib/foo1.def (renamed from test cases/common/93 private include/stlib/foo2.def)0
-rw-r--r--test cases/common/90 private include/stlib/foo2.def (renamed from test cases/unit/40 rpath order/subprojects/sub1/lib.c)0
-rw-r--r--test cases/common/90 private include/stlib/meson.build (renamed from test cases/common/93 private include/stlib/meson.build)0
-rw-r--r--test cases/common/90 private include/user/libuser.c (renamed from test cases/common/93 private include/user/libuser.c)0
-rw-r--r--test cases/common/90 private include/user/meson.build (renamed from test cases/common/93 private include/user/meson.build)0
-rw-r--r--test cases/common/91 default options/meson.build (renamed from test cases/common/94 default options/meson.build)0
-rw-r--r--test cases/common/92 dep fallback/gensrc.py (renamed from test cases/common/95 dep fallback/gensrc.py)0
-rw-r--r--test cases/common/92 dep fallback/meson.build (renamed from test cases/common/95 dep fallback/meson.build)0
-rw-r--r--test cases/common/92 dep fallback/subprojects/boblib/bob.c (renamed from test cases/common/95 dep fallback/subprojects/boblib/bob.c)0
-rw-r--r--test cases/common/92 dep fallback/subprojects/boblib/bob.h (renamed from test cases/common/95 dep fallback/subprojects/boblib/bob.h)0
-rw-r--r--test cases/common/92 dep fallback/subprojects/boblib/genbob.py (renamed from test cases/common/95 dep fallback/subprojects/boblib/genbob.py)0
-rw-r--r--test cases/common/92 dep fallback/subprojects/boblib/meson.build (renamed from test cases/common/95 dep fallback/subprojects/boblib/meson.build)0
-rw-r--r--test cases/common/92 dep fallback/subprojects/dummylib/meson.build (renamed from test cases/common/95 dep fallback/subprojects/dummylib/meson.build)0
-rw-r--r--test cases/common/92 dep fallback/tester.c (renamed from test cases/common/95 dep fallback/tester.c)0
-rw-r--r--test cases/common/93 default library/ef.cpp (renamed from test cases/common/96 default library/ef.cpp)0
-rw-r--r--test cases/common/93 default library/ef.h (renamed from test cases/common/96 default library/ef.h)0
-rw-r--r--test cases/common/93 default library/eftest.cpp (renamed from test cases/common/96 default library/eftest.cpp)0
-rw-r--r--test cases/common/93 default library/meson.build (renamed from test cases/common/96 default library/meson.build)0
-rw-r--r--test cases/common/94 selfbuilt custom/data.dat (renamed from test cases/common/97 selfbuilt custom/data.dat)0
-rw-r--r--test cases/common/94 selfbuilt custom/mainprog.cpp (renamed from test cases/common/97 selfbuilt custom/mainprog.cpp)0
-rw-r--r--test cases/common/94 selfbuilt custom/meson.build (renamed from test cases/common/97 selfbuilt custom/meson.build)0
-rw-r--r--test cases/common/94 selfbuilt custom/tool.cpp (renamed from test cases/common/97 selfbuilt custom/tool.cpp)0
-rw-r--r--test cases/common/95 gen extra/meson.build (renamed from test cases/common/98 gen extra/meson.build)0
-rw-r--r--test cases/common/95 gen extra/name.dat (renamed from test cases/common/98 gen extra/name.dat)0
-rw-r--r--test cases/common/95 gen extra/name.l (renamed from test cases/common/98 gen extra/name.l)0
-rw-r--r--test cases/common/95 gen extra/plain.c (renamed from test cases/common/98 gen extra/plain.c)0
-rwxr-xr-xtest cases/common/95 gen extra/srcgen.py (renamed from test cases/common/98 gen extra/srcgen.py)0
-rw-r--r--test cases/common/95 gen extra/srcgen2.py (renamed from test cases/common/98 gen extra/srcgen2.py)0
-rw-r--r--test cases/common/95 gen extra/srcgen3.py (renamed from test cases/common/98 gen extra/srcgen3.py)0
-rw-r--r--test cases/common/95 gen extra/upper.c (renamed from test cases/common/98 gen extra/upper.c)0
-rw-r--r--test cases/common/96 benchmark/delayer.c (renamed from test cases/common/99 benchmark/delayer.c)0
-rw-r--r--test cases/common/96 benchmark/meson.build (renamed from test cases/common/99 benchmark/meson.build)0
-rw-r--r--test cases/common/97 test workdir/meson.build (renamed from test cases/common/100 test workdir/meson.build)0
-rw-r--r--test cases/common/97 test workdir/opener.c (renamed from test cases/common/100 test workdir/opener.c)0
-rw-r--r--test cases/common/98 suites/exe1.c (renamed from test cases/common/101 suites/exe1.c)0
-rw-r--r--test cases/common/98 suites/exe2.c (renamed from test cases/common/101 suites/exe2.c)0
-rw-r--r--test cases/common/98 suites/meson.build (renamed from test cases/common/101 suites/meson.build)0
-rw-r--r--test cases/common/98 suites/subprojects/sub/meson.build (renamed from test cases/common/101 suites/subprojects/sub/meson.build)0
-rw-r--r--test cases/common/98 suites/subprojects/sub/sub1.c (renamed from test cases/common/101 suites/subprojects/sub/sub1.c)0
-rw-r--r--test cases/common/98 suites/subprojects/sub/sub2.c (renamed from test cases/common/101 suites/subprojects/sub/sub2.c)0
-rw-r--r--test cases/common/99 threads/meson.build (renamed from test cases/common/102 threads/meson.build)0
-rw-r--r--test cases/common/99 threads/threadprog.c (renamed from test cases/common/102 threads/threadprog.c)0
-rw-r--r--test cases/common/99 threads/threadprog.cpp (renamed from test cases/common/102 threads/threadprog.cpp)0
-rw-r--r--test cases/d/10 d cpp/cppmain.cpp12
-rw-r--r--test cases/d/3 shared library/installed_files.txt4
-rw-r--r--test cases/d/3 shared library/libstuff.d9
-rw-r--r--test cases/d/3 shared library/libstuff.di3
-rw-r--r--test cases/d/3 shared library/meson.build18
-rw-r--r--test cases/d/4 library versions/installed_files.txt26
-rw-r--r--test cases/d/4 library versions/lib.d8
-rw-r--r--test cases/d/5 mixed/installed_files.txt4
-rw-r--r--test cases/d/7 multilib/installed_files.txt16
-rw-r--r--test cases/d/7 multilib/say1.d8
-rw-r--r--test cases/d/7 multilib/say1.di1
-rw-r--r--test cases/d/7 multilib/say2.d8
-rw-r--r--test cases/d/7 multilib/say2.di1
-rw-r--r--test cases/failing/81 framework dependency with version/meson.build4
-rw-r--r--test cases/failing/82 gl dependency with version/meson.build9
-rw-r--r--test cases/failing/83 threads dependency with version/meson.build3
-rw-r--r--test cases/failing/84 gtest dependency with version/meson.build3
-rw-r--r--test cases/frameworks/1 boost/meson.build3
-rw-r--r--test cases/frameworks/15 llvm/meson.build3
-rw-r--r--test cases/frameworks/16 sdl2/meson.build4
-rw-r--r--test cases/frameworks/17 mpi/meson.build3
-rw-r--r--test cases/frameworks/18 vulkan/meson.build3
-rw-r--r--test cases/frameworks/19 pcap/meson.build4
-rw-r--r--test cases/frameworks/20 cups/meson.build4
-rw-r--r--test cases/frameworks/21 libwmf/meson.build4
-rw-r--r--test cases/frameworks/4 qt/meson.build4
-rw-r--r--test cases/frameworks/9 wxwidgets/meson.build4
-rw-r--r--test cases/osx/2 library versions/meson.build6
-rw-r--r--test cases/python3/2 extmodule/meson.build4
-rw-r--r--test cases/unit/35 dist script/meson.build7
-rw-r--r--test cases/unit/35 dist script/prog.c7
-rwxr-xr-xtest cases/unit/35 dist script/replacer.py12
-rw-r--r--test cases/unit/36 mixed command line args/meson.build (renamed from test cases/unit/35 mixed command line args/meson.build)0
-rw-r--r--test cases/unit/36 mixed command line args/meson_options.txt (renamed from test cases/unit/35 mixed command line args/meson_options.txt)0
-rw-r--r--test cases/unit/37 pkgconfig format/meson.build (renamed from test cases/unit/36 pkgconfig format/meson.build)0
-rw-r--r--test cases/unit/37 pkgconfig format/somelib.c (renamed from test cases/unit/36 pkgconfig format/somelib.c)0
-rw-r--r--test cases/unit/37 pkgconfig format/someret.c (renamed from test cases/unit/36 pkgconfig format/someret.c)0
-rw-r--r--test cases/unit/38 external, internal library rpath/built library/meson.build12
-rw-r--r--test cases/unit/38 external, internal library rpath/external library/meson.build9
-rwxr-xr-xtest cases/unit/38 python extmodule/blaster.py (renamed from test cases/unit/37 python extmodule/blaster.py)0
-rw-r--r--test cases/unit/38 python extmodule/ext/meson.build (renamed from test cases/unit/37 python extmodule/ext/meson.build)0
-rw-r--r--test cases/unit/38 python extmodule/ext/tachyon_module.c (renamed from test cases/unit/37 python extmodule/ext/tachyon_module.c)0
-rw-r--r--test cases/unit/38 python extmodule/meson.build (renamed from test cases/unit/37 python extmodule/meson.build)0
-rw-r--r--test cases/unit/38 python extmodule/meson_options.txt (renamed from test cases/unit/37 python extmodule/meson_options.txt)0
-rw-r--r--test cases/unit/39 external, internal library rpath/built library/bar.c (renamed from test cases/unit/38 external, internal library rpath/built library/bar.c)0
-rw-r--r--test cases/unit/39 external, internal library rpath/built library/meson.build21
-rw-r--r--test cases/unit/39 external, internal library rpath/built library/meson_options.txt (renamed from test cases/unit/38 external, internal library rpath/built library/meson_options.txt)0
-rw-r--r--test cases/unit/39 external, internal library rpath/built library/prog.c (renamed from test cases/unit/38 external, internal library rpath/built library/prog.c)0
-rw-r--r--test cases/unit/39 external, internal library rpath/external library/bar.c6
-rw-r--r--test cases/unit/39 external, internal library rpath/external library/faa.c (renamed from test cases/unit/38 external, internal library rpath/external library/faa.c)0
-rw-r--r--test cases/unit/39 external, internal library rpath/external library/foo.c (renamed from test cases/unit/38 external, internal library rpath/external library/foo.c)0
-rw-r--r--test cases/unit/39 external, internal library rpath/external library/meson.build22
-rw-r--r--test cases/unit/40 featurenew subprojects/meson.build (renamed from test cases/unit/39 featurenew subprojects/meson.build)0
-rw-r--r--test cases/unit/40 featurenew subprojects/subprojects/bar/meson.build (renamed from test cases/unit/39 featurenew subprojects/subprojects/bar/meson.build)0
-rw-r--r--test cases/unit/40 featurenew subprojects/subprojects/foo/meson.build (renamed from test cases/unit/39 featurenew subprojects/subprojects/foo/meson.build)0
-rw-r--r--test cases/unit/41 rpath order/meson.build (renamed from test cases/unit/40 rpath order/meson.build)0
-rw-r--r--test cases/unit/41 rpath order/myexe.c (renamed from test cases/unit/40 rpath order/myexe.c)0
-rw-r--r--test cases/unit/41 rpath order/subprojects/sub1/lib.c (renamed from test cases/unit/40 rpath order/subprojects/sub2/lib.c)0
-rw-r--r--test cases/unit/41 rpath order/subprojects/sub1/meson.build (renamed from test cases/unit/40 rpath order/subprojects/sub1/meson.build)0
-rw-r--r--test cases/unit/41 rpath order/subprojects/sub2/lib.c (renamed from test cases/unit/41 dep order/lib1.c)0
-rw-r--r--test cases/unit/41 rpath order/subprojects/sub2/meson.build (renamed from test cases/unit/40 rpath order/subprojects/sub2/meson.build)0
-rw-r--r--test cases/unit/42 dep order/lib1.c (renamed from test cases/unit/41 dep order/lib2.c)0
-rw-r--r--test cases/unit/42 dep order/lib2.c (renamed from test cases/windows/17 gui app/dummy.c)0
-rw-r--r--test cases/unit/42 dep order/meson.build (renamed from test cases/unit/41 dep order/meson.build)0
-rw-r--r--test cases/unit/42 dep order/myexe.c (renamed from test cases/unit/41 dep order/myexe.c)0
-rw-r--r--test cases/unit/43 promote wrap/meson.build (renamed from test cases/unit/42 promote wrap/meson.build)0
-rw-r--r--test cases/unit/43 promote wrap/subprojects/s1/meson.build (renamed from test cases/unit/42 promote wrap/subprojects/s1/meson.build)0
-rw-r--r--test cases/unit/43 promote wrap/subprojects/s1/subprojects/ambiguous/meson.build (renamed from test cases/unit/42 promote wrap/subprojects/s1/subprojects/ambiguous/meson.build)0
-rw-r--r--test cases/unit/43 promote wrap/subprojects/s2/meson.build (renamed from test cases/unit/42 promote wrap/subprojects/s2/meson.build)0
-rw-r--r--test cases/unit/43 promote wrap/subprojects/s2/subprojects/ambiguous.wrap (renamed from test cases/unit/42 promote wrap/subprojects/s2/subprojects/ambiguous.wrap)0
-rw-r--r--test cases/windows/15 resource scripts with duplicate filenames/exe3/meson.build5
-rw-r--r--test cases/windows/15 resource scripts with duplicate filenames/exe3/src_dll/main.c6
-rw-r--r--test cases/windows/15 resource scripts with duplicate filenames/exe3/src_dll/version.rc11
-rw-r--r--test cases/windows/15 resource scripts with duplicate filenames/exe3/src_exe/main.c (renamed from test cases/windows/17 gui app/console_prog.c)0
-rw-r--r--test cases/windows/15 resource scripts with duplicate filenames/exe3/src_exe/version.rc11
-rw-r--r--test cases/windows/15 resource scripts with duplicate filenames/exe4/meson.build5
-rw-r--r--test cases/windows/15 resource scripts with duplicate filenames/exe4/src_dll/main.c6
-rw-r--r--test cases/windows/15 resource scripts with duplicate filenames/exe4/src_dll/version.rc11
-rw-r--r--test cases/windows/15 resource scripts with duplicate filenames/exe4/src_exe/main.c3
-rw-r--r--test cases/windows/15 resource scripts with duplicate filenames/exe4/src_exe/version.rc11
-rw-r--r--test cases/windows/15 resource scripts with duplicate filenames/meson.build2
-rw-r--r--test cases/windows/16 gui app/console_prog.c3
-rw-r--r--test cases/windows/16 gui app/dummy.c0
-rw-r--r--test cases/windows/16 gui app/gui_app_tester.py (renamed from test cases/windows/17 gui app/gui_app_tester.py)0
-rw-r--r--test cases/windows/16 gui app/gui_prog.c (renamed from test cases/windows/17 gui app/gui_prog.c)0
-rw-r--r--test cases/windows/16 gui app/meson.build (renamed from test cases/windows/17 gui app/meson.build)0
1055 files changed, 1922 insertions, 588 deletions
diff --git a/.gitignore b/.gitignore
index 0221a05..fc09082 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,6 +3,7 @@
/.settings
/.cproject
/.idea
+/.vscode
__pycache__
.coverage
diff --git a/.travis.yml b/.travis.yml
index 197c803..dd5cebb 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -41,7 +41,9 @@ matrix:
before_install:
- python ./skip_ci.py --base-branch-env=TRAVIS_BRANCH --is-pull-env=TRAVIS_PULL_REQUEST
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew update; fi
- - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew install qt pkg-config; fi
+ - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew install qt; fi
+ # # Run one macOS build without pkg-config available, and the other (unity=on) with pkg-config
+ - if [[ "$TRAVIS_OS_NAME" == "osx" && "$MESON_ARGS" =~ .*unity=on.* ]]; then brew install pkg-config; fi
# Use a Ninja with QuLogic's patch: https://github.com/ninja-build/ninja/issues/1219
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then mkdir -p $HOME/tools; curl -L http://nirbheek.in/files/binaries/ninja/macos/ninja -o $HOME/tools/ninja; chmod +x $HOME/tools/ninja; fi
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then docker pull jpakkane/mesonci:bionic; fi
diff --git a/docs/markdown/Builtin-options.md b/docs/markdown/Builtin-options.md
index b23cc94..05578c7 100644
--- a/docs/markdown/Builtin-options.md
+++ b/docs/markdown/Builtin-options.md
@@ -74,6 +74,7 @@ platforms or with all compilers:
| b_bitcode | false | true, false | Embed Apple bitcode, see below |
| b_colorout | always | auto, always, never | Use colored output |
| b_coverage | false | true, false | Enable coverage tracking |
+| b_vscrt | from_buildtype| none, md, mdd, mt, mtd, from_buildtype | VS runtime library to use (since 0.48.0) |
| b_lundef | true | true, false | Don't allow undefined symbols when linking |
| b_lto | false | true, false | Use link time optimization |
| b_ndebug | false | true, false, if-release | Disable asserts |
diff --git a/docs/markdown/Porting-from-autotools.md b/docs/markdown/Porting-from-autotools.md
index 5786e0e..5c4c35d 100644
--- a/docs/markdown/Porting-from-autotools.md
+++ b/docs/markdown/Porting-from-autotools.md
@@ -622,8 +622,8 @@ import subprocess
schemadir = os.path.join(os.environ['MESON_INSTALL_PREFIX'], 'share', 'glib-2.0', 'schemas')
if not os.environ.get('DESTDIR'):
- print('Compiling gsettings schemas...')
- subprocess.call(['glib-compile-schemas', schemadir])
+ print('Compiling gsettings schemas...')
+ subprocess.call(['glib-compile-schemas', schemadir])
```
### gettext
diff --git a/docs/markdown/Reference-manual.md b/docs/markdown/Reference-manual.md
index 3ae740d..e830557 100644
--- a/docs/markdown/Reference-manual.md
+++ b/docs/markdown/Reference-manual.md
@@ -13,13 +13,22 @@ afterwards](#returned-objects).
void add_global_arguments(arg1, arg2, ...)
```
-Adds the positional arguments to the compiler command line for the
-language specified in `language` keyword argument. If a list of
-languages is given, the arguments are added to each of the
-corresponding compiler command lines. Note that there is no way to
-remove an argument set in this way. If you have an argument that is
-only used in a subset of targets, you have to specify it in per-target
-flags.
+Adds the positional arguments to the compiler command line. This
+function has two keyword arguments:
+
+- `language` specifies the language(s) that the arguments should be
+applied to. If a list of languages is given, the arguments are added
+to each of the corresponding compiler command lines. Note that there
+is no way to remove an argument set in this way. If you have an
+argument that is only used in a subset of targets, you have to specify
+it in per-target flags.
+
+- `native` is a boolean specifying whether the arguments should be
+ applied to the native or cross compilation. If `true` the arguments
+ will only be used for native compilations. If `false` the arguments
+ will only be used in cross compilations. If omitted, the flags are
+ added to native compilations if compiling natively and cross
+ compilations (only) when cross compiling. Available since 0.48.0
The arguments are used in all compiler invocations with the exception
of compile tests, because you might need to run a compile test with
@@ -60,8 +69,9 @@ endif
Takes one keyword argument, `required`. It defaults to `true`, which
means that if any of the languages specified is not found, Meson will
halt. Returns true if all languages specified were found and false
-otherwise. Since *0.47.0* the value of a [`feature`](Build-options.md#features)
-option can also be passed to the `required` keyword argument.
+otherwise. Since *0.47.0* the value of a
+[`feature`](Build-options.md#features) option can also be passed to
+the `required` keyword argument.
### add_project_arguments()
@@ -370,11 +380,12 @@ otherwise. This function supports the following keyword arguments:
- `static` tells the dependency provider to try to get static
libraries instead of dynamic ones (note that this is not supported
by all dependency backends)
-- `version`, specifies the required version, a string containing a
+- `version` specifies the required version, a string containing a
comparison operator followed by the version string, examples include
`>1.0.0`, `<=2.3.5` or `3.1.4` for exact matching. (*Added 0.37.0*)
You can also specify multiple restrictions by passing a list to this
keyword argument, such as: `['>=3.14.0', '<=4.1.0']`.
+ These requirements are never met if the version is unknown.
- other
[library-specific](Dependencies.md#dependencies-with-custom-lookup-functionality)
keywords may also be accepted (e.g. `modules` specifies submodules to use for
@@ -1405,6 +1416,15 @@ The `meson` object allows you to introspect various properties of the
system. This object is always mapped in the `meson` variable. It has
the following methods.
+- `add_dist_script` causes the script given as argument to run during
+ `dist` operation after the distribution source has been generated
+ but before it is archived. Note that this runs the script file that
+ is in the _staging_ directory, not the one in the source
+ directory. If the script file can not be found in the staging
+ directory, it is a hard error. This command can only invoked from
+ the main project, calling it from a subproject is a hard
+ error. Available since 0.48.0.
+
- `add_install_script(script_name, arg1, arg2, ...)` causes the script
given as an argument to be run during the install step, this script
will have the environment variables `MESON_SOURCE_ROOT`,
@@ -1976,7 +1996,9 @@ an external dependency with the following methods:
with `declare_dependency()` and `pkgconfig` for system dependencies
obtained with Pkg-config.
- - `version()` is the version number as a string, for example `1.2.8`
+ - `version()` is the version number as a string, for example `1.2.8`.
+ `unknown` if the dependency provider doesn't support determining the
+ version.
- `partial_dependency(compile_args : false, link_args : false, links
: false, includes : false, source : false)` (*added 0.46.0*) returns
diff --git a/docs/markdown/Reference-tables.md b/docs/markdown/Reference-tables.md
index 9aa8609..46bcc3d 100644
--- a/docs/markdown/Reference-tables.md
+++ b/docs/markdown/Reference-tables.md
@@ -33,6 +33,8 @@ These are return values of the `get_id` method in a compiler object.
| MESON_BUILD_ROOT | Absolute path to the build dir |
| MESONINTROSPECT | Command to run to run the introspection command, may be of the form `python /path/to/meson introspect`, user is responsible for splitting the path if necessary. |
| MESON_SUBDIR | Current subdirectory, only set for `run_command` |
+| MESON_DIST_ROOT | Points to the root of the staging directory, only set when running `dist` scripts |
+
## CPU families
diff --git a/docs/markdown/snippets/buildtype_toggles.md b/docs/markdown/snippets/buildtype_toggles.md
new file mode 100644
index 0000000..e6ae53d
--- /dev/null
+++ b/docs/markdown/snippets/buildtype_toggles.md
@@ -0,0 +1,21 @@
+## Toggles for build type, optimization and vcrt type
+
+Since the very beginning Meson has provided different project types to
+use, such as *debug* and *minsize*. There is also a *plain* type that
+adds nothing by default but instead makes it the user's responsibility
+to add everything by hand. This works but is a bit tedious.
+
+In this release we have added new new options to manually toggle
+e.g. optimization levels and debug info so those can be changed
+independently of other options. For example by default the debug
+buildtype has no optmization enabled at all. If you wish to use GCC's
+`-Og` instead, you could set it with the following command:
+
+```
+meson configure -Doptimization=g
+```
+
+Similarly we have added a toggle option to select the version of
+Visual Studio C runtime to use. By default it uses the debug runtime
+DLL debug builds and release DLL for release builds but this can be
+manually changed with the new base option `b_vscrt`.
diff --git a/docs/markdown/snippets/dependency_version.md b/docs/markdown/snippets/dependency_version.md
new file mode 100644
index 0000000..4bbf346
--- /dev/null
+++ b/docs/markdown/snippets/dependency_version.md
@@ -0,0 +1,14 @@
+## `dependency(version:)` now applies to all dependency types
+
+Previously, version constraints were only enforced for dependencies found using
+the pkg-config dependency provider. These constraints now apply to dependencies
+found using any dependency provider.
+
+Some combinations of dependency, host and method do not currently support
+discovery of the version. In these cases, the dependency will not be found if a
+version constraint is applied, otherwise the `version()` method for the
+dependency object will return `'unknown'`.
+
+(If discovering the version in one of these combinations is important to you,
+and a method exists to determine the version in that case, please file an issue
+with as much information as possible.)
diff --git a/docs/markdown/snippets/distscript.md b/docs/markdown/snippets/distscript.md
new file mode 100644
index 0000000..37d05fe
--- /dev/null
+++ b/docs/markdown/snippets/distscript.md
@@ -0,0 +1,12 @@
+## Dist scripts
+
+You can now specify scripts that are run as part of the `dist`
+target. An example usage would go like this:
+
+```meson
+project('foo', 'c')
+
+# other stuff here
+
+meson.add_dist_script('dist_cleanup.py')
+```
diff --git a/docs/markdown/snippets/native_args.md b/docs/markdown/snippets/native_args.md
new file mode 100644
index 0000000..54c6de2
--- /dev/null
+++ b/docs/markdown/snippets/native_args.md
@@ -0,0 +1,34 @@
+## Projects args can be set separately for cross and native builds (potentially breaking change)
+
+It has been a longstanding bug (or let's call it a "delayed bug fix")
+that if yo do this:
+
+```meson
+add_project_arguments('-DFOO', language : 'c')
+```
+
+Then the flag is used both in native and cross compilations. This is
+very confusing and almost never what you want. To fix this a new
+keyword `native` has been added to all functions that add arguments,
+namely `add_global_arguments`, `add_global_link_arguments`,
+`add_project_arguments` and `add_project_link_arguments` that behaves
+like the following:
+
+```
+## Added to native builds when compiling natively and to cross
+## compilations when doing cross compiles.
+add_project_arguments(...)
+
+## Added only to native compilations, not used in cross compilations.
+add_project_arguments(..., native : true)
+
+## Added only to cross compilations, not used in native compilations.
+add_project_arguments(..., native : false)
+```
+
+Also remember that cross compilation is a property of each
+target. There can be target that are compiled with the native compiler
+and some which are compiled with the cross compiler.
+
+Unfortunately this change is backwards incompatible and may cause some
+projects to fail building. However this should be very rare in practice.
diff --git a/ghwt.py b/ghwt.py
index 32db4be..cc79ce7 100755
--- a/ghwt.py
+++ b/ghwt.py
@@ -22,10 +22,11 @@
import urllib.request, json, sys, os, shutil, subprocess
import configparser, hashlib
+req_timeout = 600.0
private_repos = {'meson', 'wrapweb', 'meson-ci'}
def gh_get(url):
- r = urllib.request.urlopen(url)
+ r = urllib.request.urlopen(url, timeout=req_timeout)
jd = json.loads(r.read().decode('utf-8'))
return jd
@@ -45,7 +46,7 @@ def unpack(sproj, branch, outdir):
config = configparser.ConfigParser()
config.read(usfile)
us_url = config['wrap-file']['source_url']
- us = urllib.request.urlopen(us_url).read()
+ us = urllib.request.urlopen(us_url, timeout=req_timeout).read()
h = hashlib.sha256()
h.update(us)
dig = h.hexdigest()
diff --git a/manual tests/4 standalone binaries/build_windows_package.py b/manual tests/4 standalone binaries/build_windows_package.py
index b30ec4d..0932eac 100755
--- a/manual tests/4 standalone binaries/build_windows_package.py
+++ b/manual tests/4 standalone binaries/build_windows_package.py
@@ -11,7 +11,7 @@ shutil.rmtree('build', ignore_errors=True)
os.mkdir('build')
if not os.path.exists(sdl_filename):
- response = urllib.request.urlopen(sdl_url)
+ response = urllib.request.urlopen(sdl_url, timeout=600.0)
data = response.read()
open(sdl_filename, 'wb').write(data)
diff --git a/mesonbuild/backend/backends.py b/mesonbuild/backend/backends.py
index 7306848..bdc3fad 100644
--- a/mesonbuild/backend/backends.py
+++ b/mesonbuild/backend/backends.py
@@ -355,9 +355,9 @@ class Backend:
return l, stdlib_args
@staticmethod
- def _libdir_is_system(libdir, compilers):
+ def _libdir_is_system(libdir, compilers, env):
for cc in compilers.values():
- if libdir in cc.get_library_dirs():
+ if libdir in cc.get_library_dirs(env):
return True
return False
@@ -372,7 +372,7 @@ class Backend:
# The only link argument is an absolute path to a library file.
libpath = la[0]
libdir = os.path.dirname(libpath)
- if exclude_system and self._libdir_is_system(libdir, target.compilers):
+ if exclude_system and self._libdir_is_system(libdir, target.compilers, self.environment):
# No point in adding system paths.
continue
# Windows doesn't support rpaths, but we use this function to
@@ -532,11 +532,13 @@ class Backend:
commands += compiler.get_option_compile_args(copt_proxy)
# Add buildtype args: optimization level, debugging, etc.
commands += compiler.get_buildtype_args(self.get_option_for_target('buildtype', target))
+ commands += compiler.get_optimization_args(self.get_option_for_target('optimization', target))
+ commands += compiler.get_debug_args(self.get_option_for_target('debug', target))
# Add compile args added using add_project_arguments()
- commands += self.build.get_project_args(compiler, target.subproject)
+ commands += self.build.get_project_args(compiler, target.subproject, target.is_cross)
# Add compile args added using add_global_arguments()
# These override per-project arguments
- commands += self.build.get_global_args(compiler)
+ commands += self.build.get_global_args(compiler, target.is_cross)
if not target.is_cross:
# Compile args added from the env: CFLAGS/CXXFLAGS, etc. We want these
# to override all the defaults, but not the per-target compile args.
@@ -610,8 +612,8 @@ class Backend:
# Get program and library dirs from all target compilers
if isinstance(target, build.BuildTarget):
for cc in target.compilers.values():
- paths.update(cc.get_program_dirs())
- paths.update(cc.get_library_dirs())
+ paths.update(cc.get_program_dirs(self.environment))
+ paths.update(cc.get_library_dirs(self.environment))
return list(paths)
def determine_windows_extra_paths(self, target, extra_bdeps, is_cross=False):
diff --git a/mesonbuild/backend/ninjabackend.py b/mesonbuild/backend/ninjabackend.py
index 9b71894..acbeed3 100644
--- a/mesonbuild/backend/ninjabackend.py
+++ b/mesonbuild/backend/ninjabackend.py
@@ -32,7 +32,7 @@ from ..compilers import CompilerArgs, CCompiler
from ..linkers import ArLinker
from ..mesonlib import File, MesonException, OrderedSet
from ..mesonlib import get_compiler_for_source, has_path_sep
-from .backends import CleanTrees, InstallData, TargetInstallData
+from .backends import CleanTrees
from ..build import InvalidArguments
if mesonlib.is_windows():
@@ -826,6 +826,8 @@ int dummy;
deps = []
commands = CompilerArgs(compiler, target.extra_args.get('cs', []))
commands += compiler.get_buildtype_args(buildtype)
+ commands += compiler.get_optimization_args(self.get_option_for_target('optimization', target))
+ commands += compiler.get_debug_args(self.get_option_for_target('debug', target))
if isinstance(target, build.Executable):
commands.append('-target:exe')
elif isinstance(target, build.SharedLibrary):
@@ -853,8 +855,8 @@ int dummy;
for dep in target.get_external_deps():
commands.extend_direct(dep.get_link_args())
- commands += self.build.get_project_args(compiler, target.subproject)
- commands += self.build.get_global_args(compiler)
+ commands += self.build.get_project_args(compiler, target.subproject, target.is_cross)
+ commands += self.build.get_global_args(compiler, target.is_cross)
elem = NinjaBuildElement(self.all_outputs, outputs, 'cs_COMPILER', rel_srcs)
elem.add_dep(deps)
@@ -867,8 +869,8 @@ int dummy;
deps = [os.path.join(self.get_target_dir(l), l.get_filename()) for l in target.link_targets]
args = []
args += compiler.get_buildtype_args(self.get_option_for_target('buildtype', target))
- args += self.build.get_global_args(compiler)
- args += self.build.get_project_args(compiler, target.subproject)
+ args += self.build.get_global_args(compiler, target.is_cross)
+ args += self.build.get_project_args(compiler, target.subproject, target.is_cross)
args += target.get_java_args()
args += compiler.get_output_args(self.get_target_private_dir(target))
args += target.get_classpath_args()
@@ -1117,6 +1119,7 @@ int dummy;
args.append(cratetype)
args += ['--crate-name', target.name]
args += rustc.get_buildtype_args(self.get_option_for_target('buildtype', target))
+ args += rustc.get_debug_args(self.get_option_for_target('debug', target))
depfile = os.path.join(target.subdir, target.name + '.d')
args += ['--emit', 'dep-info={}'.format(depfile), '--emit', 'link']
args += target.get_extra_args('rust')
@@ -1241,9 +1244,11 @@ int dummy;
raise InvalidArguments('Swift target %s contains a non-swift source file.' % target.get_basename())
os.makedirs(self.get_target_private_dir_abs(target), exist_ok=True)
compile_args = swiftc.get_compile_only_args()
+ compile_args += swiftc.get_optimization_args(self.get_option_for_target('optimization', target))
+ compile_args += swiftc.get_debug_args(self.get_option_for_target('debug', target))
compile_args += swiftc.get_module_args(module_name)
- compile_args += self.build.get_project_args(swiftc, target.subproject)
- compile_args += self.build.get_global_args(swiftc)
+ compile_args += self.build.get_project_args(swiftc, target.subproject, target.is_cross)
+ compile_args += self.build.get_global_args(swiftc, target.is_cross)
for i in reversed(target.get_include_dirs()):
basedir = i.get_curdir()
for d in i.get_incdirs():
@@ -1255,8 +1260,8 @@ int dummy;
sargs = swiftc.get_include_args(srctreedir)
compile_args += sargs
link_args = swiftc.get_output_args(os.path.join(self.environment.get_build_dir(), self.get_target_filename(target)))
- link_args += self.build.get_project_link_args(swiftc, target.subproject)
- link_args += self.build.get_global_link_args(swiftc)
+ link_args += self.build.get_project_link_args(swiftc, target.subproject, target.is_cross)
+ link_args += self.build.get_global_link_args(swiftc, target.is_cross)
rundir = self.get_target_private_dir(target)
out_module_name = self.swift_module_file_name(target)
in_module_files = self.determine_swift_dep_modules(target)
@@ -2328,7 +2333,7 @@ rule FORTRAN_DEP_HACK%s
guessed_dependencies = []
# TODO The get_library_naming requirement currently excludes link targets that use d or fortran as their main linker
if hasattr(linker, 'get_library_naming'):
- search_dirs = list(search_dirs) + linker.get_library_dirs()
+ search_dirs = list(search_dirs) + linker.get_library_dirs(self.environment)
static_patterns = linker.get_library_naming(self.environment, 'static', strict=True)
shared_patterns = linker.get_library_naming(self.environment, 'shared', strict=True)
for libname in libs:
@@ -2369,7 +2374,7 @@ rule FORTRAN_DEP_HACK%s
# options passed on the command-line, in default_options, etc.
# These have the lowest priority.
if not isinstance(target, build.StaticLibrary):
- commands += compilers.get_base_link_args(self.environment.coredata.base_options,
+ commands += compilers.get_base_link_args(self.get_base_options_for_target(target),
linker,
isinstance(target, build.SharedModule))
# Add -nostdlib if needed; can't be overridden
@@ -2390,10 +2395,10 @@ rule FORTRAN_DEP_HACK%s
if not isinstance(target, build.StaticLibrary):
# Add link args added using add_project_link_arguments()
- commands += self.build.get_project_link_args(linker, target.subproject)
+ commands += self.build.get_project_link_args(linker, target.subproject, target.is_cross)
# Add link args added using add_global_link_arguments()
# These override per-project link arguments
- commands += self.build.get_global_link_args(linker)
+ commands += self.build.get_global_link_args(linker, target.is_cross)
if not target.is_cross:
# Link args added from the env: LDFLAGS. We want these to
# override all the defaults but not the per-target link args.
diff --git a/mesonbuild/backend/vs2010backend.py b/mesonbuild/backend/vs2010backend.py
index acbb12d..2e86ca9 100644
--- a/mesonbuild/backend/vs2010backend.py
+++ b/mesonbuild/backend/vs2010backend.py
@@ -534,9 +534,17 @@ class Vs2010Backend(backends.Backend):
pch_out = ET.SubElement(inc_cl, 'PrecompiledHeaderOutputFile')
pch_out.text = '$(IntDir)$(TargetName)-%s.pch' % lang
+ def is_argument_with_msbuild_xml_entry(self, entry):
+ # Remove arguments that have a top level XML entry so
+ # they are not used twice.
+ # FIXME add args as needed.
+ return entry[1:].startswith('M')
+
def add_additional_options(self, lang, parent_node, file_args):
args = []
for arg in file_args[lang].to_native():
+ if self.is_argument_with_msbuild_xml_entry(arg):
+ continue
if arg == '%(AdditionalOptions)':
args.append(arg)
else:
@@ -677,6 +685,7 @@ class Vs2010Backend(backends.Backend):
compiler = self._get_cl_compiler(target)
buildtype_args = compiler.get_buildtype_args(self.buildtype)
buildtype_link_args = compiler.get_buildtype_linker_args(self.buildtype)
+ vscrt_type = self.environment.coredata.base_options['b_vscrt']
project_name = target.name
target_name = target.name
root = ET.Element('Project', {'DefaultTargets': "Build",
@@ -730,9 +739,24 @@ class Vs2010Backend(backends.Backend):
if '/INCREMENTAL:NO' in buildtype_link_args:
ET.SubElement(type_config, 'LinkIncremental').text = 'false'
# CRT type; debug or release
- if '/MDd' in buildtype_args:
+ if vscrt_type.value == 'from_buildtype':
+ if self.buildtype == 'debug' or self.buildtype == 'debugoptimized':
+ ET.SubElement(type_config, 'UseDebugLibraries').text = 'true'
+ ET.SubElement(type_config, 'RuntimeLibrary').text = 'MultiThreadedDebugDLL'
+ else:
+ ET.SubElement(type_config, 'UseDebugLibraries').text = 'false'
+ ET.SubElement(type_config, 'RuntimeLibrary').text = 'MultiThreaded'
+ elif vscrt_type.value == 'mdd':
ET.SubElement(type_config, 'UseDebugLibraries').text = 'true'
ET.SubElement(type_config, 'RuntimeLibrary').text = 'MultiThreadedDebugDLL'
+ elif vscrt_type.value == 'mt':
+ # FIXME, wrong
+ ET.SubElement(type_config, 'UseDebugLibraries').text = 'false'
+ ET.SubElement(type_config, 'RuntimeLibrary').text = 'MultiThreaded'
+ elif vscrt_type.value == 'mtd':
+ # FIXME, wrong
+ ET.SubElement(type_config, 'UseDebugLibraries').text = 'true'
+ ET.SubElement(type_config, 'RuntimeLibrary').text = 'MultiThreadedDebug'
else:
ET.SubElement(type_config, 'UseDebugLibraries').text = 'false'
ET.SubElement(type_config, 'RuntimeLibrary').text = 'MultiThreadedDLL'
@@ -800,6 +824,7 @@ class Vs2010Backend(backends.Backend):
if l in file_args:
file_args[l] += compilers.get_base_compile_args(self.get_base_options_for_target(target), comp)
file_args[l] += comp.get_option_compile_args(self.environment.coredata.compiler_options)
+
# Add compile args added using add_project_arguments()
for l, args in self.build.projects_args.get(target.subproject, {}).items():
if l in file_args:
@@ -973,10 +998,10 @@ class Vs2010Backend(backends.Backend):
options = self.environment.coredata.base_options
extra_link_args += compiler.get_std_shared_module_link_args(options)
# Add link args added using add_project_link_arguments()
- extra_link_args += self.build.get_project_link_args(compiler, target.subproject)
+ extra_link_args += self.build.get_project_link_args(compiler, target.subproject, target.is_cross)
# Add link args added using add_global_link_arguments()
# These override per-project link arguments
- extra_link_args += self.build.get_global_link_args(compiler)
+ extra_link_args += self.build.get_global_link_args(compiler, target.is_cross)
if not target.is_cross:
# Link args added from the env: LDFLAGS. We want these to
# override all the defaults but not the per-target link args.
diff --git a/mesonbuild/build.py b/mesonbuild/build.py
index e03d7a6..3debeeb 100644
--- a/mesonbuild/build.py
+++ b/mesonbuild/build.py
@@ -108,6 +108,10 @@ class Build:
self.projects_args = {}
self.global_link_args = {}
self.projects_link_args = {}
+ self.cross_global_args = {}
+ self.cross_projects_args = {}
+ self.cross_global_link_args = {}
+ self.cross_projects_link_args = {}
self.tests = []
self.benchmarks = []
self.headers = []
@@ -119,6 +123,7 @@ class Build:
self.subproject_dir = ''
self.install_scripts = []
self.postconf_scripts = []
+ self.dist_scripts = []
self.install_dirs = []
self.dep_manifest_name = None
self.dep_manifest = {}
@@ -168,20 +173,25 @@ class Build:
def get_install_subdirs(self):
return self.install_dirs
- def get_global_args(self, compiler):
- return self.global_args.get(compiler.get_language(), [])
+ def get_global_args(self, compiler, for_cross):
+ d = self.cross_global_args if for_cross else self.global_args
+ return d.get(compiler.get_language(), [])
- def get_project_args(self, compiler, project):
- args = self.projects_args.get(project)
+ def get_project_args(self, compiler, project, for_cross):
+ d = self.cross_projects_args if for_cross else self.projects_args
+ args = d.get(project)
if not args:
return []
return args.get(compiler.get_language(), [])
- def get_global_link_args(self, compiler):
- return self.global_link_args.get(compiler.get_language(), [])
+ def get_global_link_args(self, compiler, for_cross):
+ d = self.cross_global_link_args if for_cross else self.global_link_args
+ return d.get(compiler.get_language(), [])
- def get_project_link_args(self, compiler, project):
- link_args = self.projects_link_args.get(project)
+ def get_project_link_args(self, compiler, project, for_cross):
+ d = self.cross_projects_link_args if for_cross else self.projects_link_args
+
+ link_args = d.get(project)
if not link_args:
return []
@@ -1079,7 +1089,7 @@ You probably should put it in link_with instead.''')
'''
linker, _ = self.get_clink_dynamic_linker_and_stdlibs()
# Mixing many languages with MSVC is not supported yet so ignore stdlibs.
- if linker and linker.get_id() == 'msvc':
+ if linker and linker.get_id() in ['msvc', 'llvm', 'dmd']:
return True
return False
diff --git a/mesonbuild/compilers/c.py b/mesonbuild/compilers/c.py
index 1a0d6b2..436f699 100644
--- a/mesonbuild/compilers/c.py
+++ b/mesonbuild/compilers/c.py
@@ -16,6 +16,8 @@ import re
import glob
import os.path
import subprocess
+import functools
+import itertools
from pathlib import Path
from .. import mlog
@@ -30,8 +32,6 @@ from .compilers import (
GCC_MINGW,
get_largefile_args,
gnu_winlibs,
- msvc_buildtype_args,
- msvc_buildtype_linker_args,
msvc_winlibs,
vs32_instruction_set_args,
vs64_instruction_set_args,
@@ -51,6 +51,7 @@ gnu_compiler_internal_libs = ('m', 'c', 'pthread', 'dl', 'rt')
class CCompiler(Compiler):
+ # TODO: Replace this manual cache with functools.lru_cache
library_dirs_cache = {}
program_dirs_cache = {}
find_library_cache = {}
@@ -146,6 +147,30 @@ class CCompiler(Compiler):
'''
return self.get_no_optimization_args()
+ def get_allow_undefined_link_args(self):
+ '''
+ Get args for allowing undefined symbols when linking to a shared library
+ '''
+ if self.id == 'clang':
+ if self.clang_type == compilers.CLANG_OSX:
+ # Apple ld
+ return ['-Wl,-undefined,dynamic_lookup']
+ else:
+ # GNU ld and LLVM lld
+ return ['-Wl,--allow-shlib-undefined']
+ elif self.id == 'gcc':
+ if self.gcc_type == compilers.GCC_OSX:
+ # Apple ld
+ return ['-Wl,-undefined,dynamic_lookup']
+ else:
+ # GNU ld and LLVM lld
+ return ['-Wl,--allow-shlib-undefined']
+ elif self.id == 'msvc':
+ # link.exe
+ return ['/FORCE:UNRESOLVED']
+ # FIXME: implement other linkers
+ return []
+
def get_output_args(self, target):
return ['-o', target]
@@ -174,42 +199,47 @@ class CCompiler(Compiler):
def get_std_shared_lib_link_args(self):
return ['-shared']
- def get_library_dirs_real(self):
- env = os.environ.copy()
- env['LC_ALL'] = 'C'
- stdo = Popen_safe(self.exelist + ['--print-search-dirs'], env=env)[1]
+ @functools.lru_cache()
+ def _get_search_dirs(self, env):
+ extra_args = ['--print-search-dirs']
+ stdo = None
+ with self._build_wrapper('', env, extra_args, None, 'compile', True) as p:
+ stdo = p.stdo
+ return stdo
+
+ @staticmethod
+ def _split_fetch_real_dirs(pathstr, sep=':'):
paths = []
- for line in stdo.split('\n'):
- if line.startswith('libraries:'):
- libstr = line.split('=', 1)[1]
- paths = [os.path.realpath(p) for p in libstr.split(':') if os.path.exists(os.path.realpath(p))]
+ for p in pathstr.split(sep):
+ p = Path(p)
+ if p.exists():
+ paths.append(p.resolve().as_posix())
return paths
- def get_library_dirs(self):
- key = tuple(self.exelist)
+ def get_compiler_dirs(self, env, name):
+ '''
+ Get dirs from the compiler, either `libraries:` or `programs:`
+ '''
+ stdo = self._get_search_dirs(env)
+ for line in stdo.split('\n'):
+ if line.startswith(name + ':'):
+ return CCompiler._split_fetch_real_dirs(line.split('=', 1)[1])
+ return []
+
+ def get_library_dirs(self, env):
+ key = (tuple(self.exelist), env)
if key not in self.library_dirs_cache:
- self.library_dirs_cache[key] = self.get_library_dirs_real()
+ self.library_dirs_cache[key] = self.get_compiler_dirs(env, 'libraries')
return self.library_dirs_cache[key][:]
- def get_program_dirs_real(self):
- env = os.environ.copy()
- env['LC_ALL'] = 'C'
- stdo = Popen_safe(self.exelist + ['--print-search-dirs'], env=env)[1]
- paths = []
- for line in stdo.split('\n'):
- if line.startswith('programs:'):
- libstr = line.split('=', 1)[1]
- paths = [os.path.realpath(p) for p in libstr.split(':')]
- return paths
-
- def get_program_dirs(self):
+ def get_program_dirs(self, env):
'''
Programs used by the compiler. Also where toolchain DLLs such as
libstdc++-6.dll are found with MinGW.
'''
- key = tuple(self.exelist)
+ key = (tuple(self.exelist), env)
if key not in self.program_dirs_cache:
- self.program_dirs_cache[key] = self.get_program_dirs_real()
+ self.program_dirs_cache[key] = self.get_compiler_dirs(env, 'programs')
return self.program_dirs_cache[key][:]
def get_pic_args(self):
@@ -910,7 +940,8 @@ class CCompiler(Compiler):
# Only try to find std libs if no extra dirs specified.
if not extra_dirs or libname in self.internal_libs:
args = ['-l' + libname]
- if self.links(code, env, extra_args=args):
+ largs = self.linker_to_compiler_args(self.get_allow_undefined_link_args())
+ if self.links(code, env, extra_args=(args + largs)):
return args
# Don't do a manual search for internal libs
if libname in self.internal_libs:
@@ -918,35 +949,19 @@ class CCompiler(Compiler):
# Not found or we want to use a specific libtype? Try to find the
# library file itself.
patterns = self.get_library_naming(env, libtype)
- for d in extra_dirs:
+ # Search in the specified dirs, and then in the system libraries
+ for d in itertools.chain(extra_dirs, self.get_library_dirs(env)):
for p in patterns:
trial = self._get_trials_from_pattern(p, d, libname)
if not trial:
continue
+ # We just check whether the library exists. We can't do a link
+ # check because the library might have unresolved symbols that
+ # require other libraries.
trial = self._get_file_from_list(trial)
if not trial:
continue
return [trial]
- # Search in the system libraries too
- for d in self.get_library_dirs():
- for p in patterns:
- trial = self._get_trials_from_pattern(p, d, libname)
- if not trial:
- continue
- trial = self._get_file_from_list(trial)
- if not trial:
- continue
- # When searching the system paths used by the compiler, we
- # need to check linking with link-whole, as static libs
- # (.a) need to be checked to ensure they are the right
- # architecture, e.g. 32bit or 64-bit.
- # Just a normal test link won't work as the .a file doesn't
- # seem to be checked by linker if there are no unresolved
- # symbols from the main C file.
- extra_link_args = self.get_link_whole_for([trial])
- extra_link_args = self.linker_to_compiler_args(extra_link_args)
- if self.links(code, env, extra_args=extra_link_args):
- return [trial]
return None
def find_library_impl(self, libname, env, extra_dirs, code, libtype):
@@ -1197,6 +1212,13 @@ class VisualStudioCCompiler(CCompiler):
ignore_libs = gnu_compiler_internal_libs
internal_libs = ()
+ crt_args = {'none': [],
+ 'md': ['/MD'],
+ 'mdd': ['/MDd'],
+ 'mt': ['/MT'],
+ 'mtd': ['/MTd'],
+ }
+
def __init__(self, exelist, version, is_cross, exe_wrap, is_64):
CCompiler.__init__(self, exelist, version, is_cross, exe_wrap)
self.id = 'msvc'
@@ -1206,7 +1228,7 @@ class VisualStudioCCompiler(CCompiler):
self.warn_args = {'1': ['/W2'],
'2': ['/W3'],
'3': ['/W4']}
- self.base_options = ['b_pch', 'b_ndebug'] # FIXME add lto, pgo and the like
+ self.base_options = ['b_pch', 'b_ndebug', 'b_vscrt'] # FIXME add lto, pgo and the like
self.is_64 = is_64
# Override CCompiler.get_always_args
@@ -1225,10 +1247,13 @@ class VisualStudioCCompiler(CCompiler):
return ['/MDd']
def get_buildtype_args(self, buildtype):
- return msvc_buildtype_args[buildtype]
+ args = compilers.msvc_buildtype_args[buildtype]
+ if version_compare(self.version, '<18.0'):
+ args = [arg for arg in args if arg != '/Gw']
+ return args
def get_buildtype_linker_args(self, buildtype):
- return msvc_buildtype_linker_args[buildtype]
+ return compilers.msvc_buildtype_linker_args[buildtype]
def get_pch_suffix(self):
return 'pch'
@@ -1258,6 +1283,12 @@ class VisualStudioCCompiler(CCompiler):
return ['/Fe' + target]
return ['/Fo' + target]
+ def get_optimization_args(self, optimization_level):
+ return compilers.msvc_optimization_args[optimization_level]
+
+ def get_debug_args(self, is_debug):
+ return compilers.msvc_debug_args[is_debug]
+
def get_dependency_gen_args(self, outtarget, outfile):
return []
@@ -1440,6 +1471,24 @@ class VisualStudioCCompiler(CCompiler):
return []
return os.environ['INCLUDE'].split(os.pathsep)
+ def get_crt_compile_args(self, crt_val, buildtype):
+ if crt_val in self.crt_args:
+ return self.crt_args[crt_val]
+ assert(crt_val == 'from_buildtype')
+ # Match what build type flags used to do.
+ if buildtype == 'plain':
+ return []
+ elif buildtype == 'debug':
+ return self.crt_args['mdd']
+ elif buildtype == 'debugoptimized':
+ return self.crt_args['md']
+ elif buildtype == 'release':
+ return self.crt_args['md']
+ elif buildtype == 'minsize':
+ return self.crt_args['md']
+ else:
+ assert(buildtype == 'custom')
+ raise EnvironmentException('Requested C runtime based on buildtype, but buildtype is "custom".')
class ArmCCompiler(ArmCompiler, CCompiler):
def __init__(self, exelist, version, is_cross, exe_wrapper=None, **kwargs):
diff --git a/mesonbuild/compilers/compilers.py b/mesonbuild/compilers/compilers.py
index 97cca47..71f8ebe 100644
--- a/mesonbuild/compilers/compilers.py
+++ b/mesonbuild/compilers/compilers.py
@@ -19,7 +19,7 @@ from ..linkers import StaticLinker
from .. import coredata
from .. import mlog
from .. import mesonlib
-from ..mesonlib import EnvironmentException, MesonException, version_compare, Popen_safe
+from ..mesonlib import EnvironmentException, MesonException, OrderedSet, version_compare, Popen_safe
"""This file contains the data files of all compilers Meson knows
about. To support a new compiler, add its information below.
@@ -124,12 +124,10 @@ def is_library(fname):
return suffix in lib_suffixes
gnulike_buildtype_args = {'plain': [],
- # -O0 is passed for improved debugging information with gcc
- # See https://github.com/mesonbuild/meson/pull/509
- 'debug': ['-O0', '-g'],
- 'debugoptimized': ['-O2', '-g'],
- 'release': ['-O3'],
- 'minsize': ['-Os', '-g']}
+ 'debug': [],
+ 'debugoptimized': [],
+ 'release': [],
+ 'minsize': []}
armclang_buildtype_args = {'plain': [],
'debug': ['-O0', '-g'],
@@ -145,10 +143,10 @@ arm_buildtype_args = {'plain': [],
}
msvc_buildtype_args = {'plain': [],
- 'debug': ["/MDd", "/ZI", "/Ob0", "/Od", "/RTC1"],
- 'debugoptimized': ["/MD", "/Zi", "/O2", "/Ob1"],
- 'release': ["/MD", "/O2", "/Ob2"],
- 'minsize': ["/MD", "/Zi", "/Os", "/Ob1"],
+ 'debug': ["/ZI", "/Ob0", "/Od", "/RTC1"],
+ 'debugoptimized': ["/Zi", "/Ob1"],
+ 'release': ["/Ob2", "/Gw"],
+ 'minsize': ["/Zi", "/Gw"],
}
apple_buildtype_linker_args = {'plain': [],
@@ -190,44 +188,44 @@ java_buildtype_args = {'plain': [],
}
rust_buildtype_args = {'plain': [],
- 'debug': ['-C', 'debuginfo=2'],
- 'debugoptimized': ['-C', 'debuginfo=2', '-C', 'opt-level=2'],
- 'release': ['-C', 'opt-level=3'],
- 'minsize': [], # In a future release: ['-C', 'opt-level=s'],
+ 'debug': [],
+ 'debugoptimized': [],
+ 'release': [],
+ 'minsize': [],
}
d_gdc_buildtype_args = {'plain': [],
- 'debug': ['-g', '-O0'],
- 'debugoptimized': ['-g', '-O'],
- 'release': ['-O3', '-frelease'],
+ 'debug': [],
+ 'debugoptimized': ['-finline-functions'],
+ 'release': ['-frelease', '-finline-functions'],
'minsize': [],
}
d_ldc_buildtype_args = {'plain': [],
- 'debug': ['-g', '-O0'],
- 'debugoptimized': ['-g', '-O'],
- 'release': ['-O3', '-release'],
+ 'debug': [],
+ 'debugoptimized': ['-enable-inlining', '-Hkeep-all-bodies'],
+ 'release': ['-release', '-enable-inlining', '-Hkeep-all-bodies'],
'minsize': [],
}
d_dmd_buildtype_args = {'plain': [],
- 'debug': ['-g'],
- 'debugoptimized': ['-g', '-O'],
- 'release': ['-O', '-release'],
+ 'debug': [],
+ 'debugoptimized': ['-inline'],
+ 'release': ['-release', '-inline'],
'minsize': [],
}
mono_buildtype_args = {'plain': [],
- 'debug': ['-debug'],
- 'debugoptimized': ['-debug', '-optimize+'],
+ 'debug': [],
+ 'debugoptimized': ['-optimize+'],
'release': ['-optimize+'],
'minsize': [],
}
swift_buildtype_args = {'plain': [],
- 'debug': ['-g'],
- 'debugoptimized': ['-g', '-O'],
- 'release': ['-O'],
+ 'debug': [],
+ 'debugoptimized': [],
+ 'release': [],
'minsize': [],
}
@@ -248,6 +246,36 @@ clang_color_args = {'auto': ['-Xclang', '-fcolor-diagnostics'],
'never': ['-Xclang', '-fno-color-diagnostics'],
}
+clike_optimization_args = {'0': [],
+ 'g': [],
+ '1': ['-O1'],
+ '2': ['-O2'],
+ '3': ['-O3'],
+ 's': ['-Os'],
+ }
+
+gnu_optimization_args = {'0': [],
+ 'g': ['-Og'],
+ '1': ['-O1'],
+ '2': ['-O2'],
+ '3': ['-O3'],
+ 's': ['-Os'],
+ }
+
+msvc_optimization_args = {'0': [],
+ 'g': ['/O0'],
+ '1': ['/O1'],
+ '2': ['/O2'],
+ '3': ['/O3'],
+ 's': ['/O1'], # Implies /Os.
+ }
+
+clike_debug_args = {False: [],
+ True: ['-g']}
+
+msvc_debug_args = {False: [],
+ True: []} # Fixme!
+
base_options = {'b_pch': coredata.UserBooleanOption('b_pch', 'Use precompiled headers', True),
'b_lto': coredata.UserBooleanOption('b_lto', 'Use link time optimization', False),
'b_sanitize': coredata.UserComboOption('b_sanitize',
@@ -273,6 +301,9 @@ base_options = {'b_pch': coredata.UserBooleanOption('b_pch', 'Use precompiled he
'b_bitcode': coredata.UserBooleanOption('b_bitcode',
'Generate and embed bitcode (only macOS and iOS)',
False),
+ 'b_vscrt': coredata.UserComboOption('b_vscrt', 'VS run-time library type to use.',
+ ['none', 'md', 'mdd', 'mt', 'mtd', 'from_buildtype'],
+ 'from_buildtype'),
}
gnulike_instruction_set_args = {'mmx': ['-mmmx'],
@@ -380,6 +411,15 @@ def get_base_compile_args(options, compiler):
# This does not need a try...except
if option_enabled(compiler.base_options, options, 'b_bitcode'):
args.append('-fembed-bitcode')
+ try:
+ crt_val = options['b_vscrt'].value
+ buildtype = options['buildtype'].value
+ try:
+ args += compiler.get_crt_compile_args(crt_val, buildtype)
+ except AttributeError:
+ pass
+ except KeyError:
+ pass
return args
def get_base_link_args(options, linker, is_shared_module):
@@ -419,6 +459,15 @@ def get_base_link_args(options, linker, is_shared_module):
elif as_needed:
# -Wl,-dead_strip_dylibs is incompatible with bitcode
args.append(linker.get_asneeded_args())
+ try:
+ crt_val = options['b_vscrt'].value
+ buildtype = options['buildtype'].value
+ try:
+ args += linker.get_crt_link_args(crt_val, buildtype)
+ except AttributeError:
+ pass
+ except KeyError:
+ pass
return args
class CrossNoRunException(MesonException):
@@ -472,7 +521,7 @@ class CompilerArgs(list):
dedup2_suffixes = ()
dedup2_args = ()
# Arg prefixes and args that must be de-duped by returning 1
- dedup1_prefixes = ('-l',)
+ dedup1_prefixes = ('-l', '-Wl,-l')
dedup1_suffixes = ('.lib', '.dll', '.so', '.dylib', '.a')
# Match a .so of the form path/to/libfoo.so.0.1.0
# Only UNIX shared libraries require this. Others have a fixed extension.
@@ -562,27 +611,32 @@ class CompilerArgs(list):
return True
return False
- def to_native(self):
+ def to_native(self, copy=False):
# Check if we need to add --start/end-group for circular dependencies
# between static libraries, and for recursively searching for symbols
# needed by static libraries that are provided by object files or
# shared libraries.
+ if copy:
+ new = self.copy()
+ else:
+ new = self
if get_compiler_uses_gnuld(self.compiler):
global soregex
group_start = -1
- for each in self:
- if not each.startswith('-l') and not each.endswith('.a') and \
+ group_end = -1
+ for i, each in enumerate(new):
+ if not each.startswith(('-Wl,-l', '-l')) and not each.endswith('.a') and \
not soregex.match(each):
continue
- i = self.index(each)
+ group_end = i
if group_start < 0:
# First occurrence of a library
group_start = i
if group_start >= 0:
# Last occurrence of a library
- self.insert(i + 1, '-Wl,--end-group')
- self.insert(group_start, '-Wl,--start-group')
- return self.compiler.unix_args_to_native(self)
+ new.insert(group_end + 1, '-Wl,--end-group')
+ new.insert(group_start, '-Wl,--start-group')
+ return self.compiler.unix_args_to_native(new)
def append_direct(self, arg):
'''
@@ -818,11 +872,11 @@ class Compiler:
self.language + '_args': coredata.UserArrayOption(
self.language + '_args',
description + ' compiler',
- compile_args, shlex_split=True, user_input=True),
+ compile_args, shlex_split=True, user_input=True, allow_dups=True),
self.language + '_link_args': coredata.UserArrayOption(
self.language + '_link_args',
description + ' linker',
- link_args, shlex_split=True, user_input=True),
+ link_args, shlex_split=True, user_input=True, allow_dups=True),
})
return opts
@@ -868,7 +922,7 @@ class Compiler:
def find_library(self, *args, **kwargs):
raise EnvironmentException('Language {} does not support library finding.'.format(self.get_display_language()))
- def get_library_dirs(self):
+ def get_library_dirs(self, *args, **kwargs):
return []
def has_multi_arguments(self, args, env):
@@ -955,7 +1009,9 @@ class Compiler:
mlog.debug('Working directory: ', tmpdirname)
mlog.debug('Command line: ', ' '.join(commands), '\n')
mlog.debug('Code:\n', code)
- p, p.stdo, p.stde = Popen_safe(commands, cwd=tmpdirname)
+ os_env = os.environ.copy()
+ os_env['LC_ALL'] = 'C'
+ p, p.stdo, p.stde = Popen_safe(commands, cwd=tmpdirname, env=os_env)
mlog.debug('Compiler stdout:\n', p.stdo)
mlog.debug('Compiler stderr:\n', p.stde)
p.commands = commands
@@ -1008,7 +1064,9 @@ class Compiler:
abs_rpaths.append(build_rpath)
# Ensure that there is enough space for large RPATHs
args = ['-Wl,-headerpad_max_install_names']
- args += ['-Wl,-rpath,' + rp for rp in abs_rpaths]
+ # Need to deduplicate abs_rpaths, as rpath_paths and
+ # build_rpath are not guaranteed to be disjoint sets
+ args += ['-Wl,-rpath,' + rp for rp in OrderedSet(abs_rpaths)]
return args
def build_unix_rpath_args(self, build_dir, from_dir, rpath_paths, build_rpath, install_rpath):
@@ -1250,6 +1308,12 @@ class GnuCompiler:
def get_buildtype_args(self, buildtype):
return gnulike_buildtype_args[buildtype]
+ def get_optimization_args(self, optimization_level):
+ return gnu_optimization_args[optimization_level]
+
+ def get_debug_args(self, is_debug):
+ return clike_debug_args[is_debug]
+
def get_buildtype_linker_args(self, buildtype):
if self.gcc_type == GCC_OSX:
return apple_buildtype_linker_args[buildtype]
@@ -1307,10 +1371,12 @@ class ElbrusCompiler(GnuCompiler):
'b_ndebug', 'b_staticpic',
'b_lundef', 'b_asneeded']
- def get_library_dirs(self):
- env = os.environ.copy()
- env['LC_ALL'] = 'C'
- stdo = Popen_safe(self.exelist + ['--print-search-dirs'], env=env)[1]
+ # FIXME: use _build_wrapper to call this so that linker flags from the env
+ # get applied
+ def get_library_dirs(self, env):
+ os_env = os.environ.copy()
+ os_env['LC_ALL'] = 'C'
+ stdo = Popen_safe(self.exelist + ['--print-search-dirs'], env=os_env)[1]
paths = []
for line in stdo.split('\n'):
if line.startswith('libraries:'):
@@ -1320,10 +1386,10 @@ class ElbrusCompiler(GnuCompiler):
break
return paths
- def get_program_dirs(self):
- env = os.environ.copy()
- env['LC_ALL'] = 'C'
- stdo = Popen_safe(self.exelist + ['--print-search-dirs'], env=env)[1]
+ def get_program_dirs(self, env):
+ os_env = os.environ.copy()
+ os_env['LC_ALL'] = 'C'
+ stdo = Popen_safe(self.exelist + ['--print-search-dirs'], env=os_env)[1]
paths = []
for line in stdo.split('\n'):
if line.startswith('programs:'):
@@ -1371,6 +1437,12 @@ class ClangCompiler:
return apple_buildtype_linker_args[buildtype]
return gnulike_buildtype_linker_args[buildtype]
+ def get_optimization_args(self, optimization_level):
+ return clike_optimization_args[optimization_level]
+
+ def get_debug_args(self, is_debug):
+ return clike_debug_args[is_debug]
+
def get_pch_suffix(self):
return 'pch'
diff --git a/mesonbuild/compilers/cpp.py b/mesonbuild/compilers/cpp.py
index 2280f46..85766f7 100644
--- a/mesonbuild/compilers/cpp.py
+++ b/mesonbuild/compilers/cpp.py
@@ -12,10 +12,12 @@
# See the License for the specific language governing permissions and
# limitations under the License.
+import functools
import os.path
from .. import coredata
-from ..mesonlib import version_compare
+from .. import mlog
+from ..mesonlib import MesonException, version_compare
from .c import CCompiler, VisualStudioCCompiler
from .compilers import (
@@ -67,6 +69,55 @@ class CPPCompiler(CCompiler):
int main () {{ return 0; }}'''
return self.compiles(t.format(**fargs), env, extra_args, dependencies)
+ def _test_cpp_std_arg(self, cpp_std_value):
+ # Test whether the compiler understands a -std=XY argument
+ assert(cpp_std_value.startswith('-std='))
+
+ # This test does not use has_multi_arguments() for two reasons:
+ # 1. has_multi_arguments() requires an env argument, which the compiler
+ # object does not have at this point.
+ # 2. even if it did have an env object, that might contain another more
+ # recent -std= argument, which might lead to a cascaded failure.
+ CPP_TEST = 'int i = static_cast<int>(0);'
+ with self.compile(code=CPP_TEST, extra_args=[cpp_std_value], mode='compile') as p:
+ if p.returncode == 0:
+ mlog.debug('Compiler accepts {}:'.format(cpp_std_value), 'YES')
+ return True
+ else:
+ mlog.debug('Compiler accepts {}:'.format(cpp_std_value), 'NO')
+ return False
+
+ @functools.lru_cache()
+ def _find_best_cpp_std(self, cpp_std):
+ # The initial version mapping approach to make falling back
+ # from '-std=c++14' to '-std=c++1y' was too brittle. For instance,
+ # Apple's Clang uses a different versioning scheme to upstream LLVM,
+ # making the whole detection logic awfully brittle. Instead, let's
+ # just see if feeding GCC or Clang our '-std=' setting works, and
+ # if not, try the fallback argument.
+ CPP_FALLBACKS = {
+ 'c++11': 'c++0x',
+ 'gnu++11': 'gnu++0x',
+ 'c++14': 'c++1y',
+ 'gnu++14': 'gnu++1y',
+ 'c++17': 'c++1z',
+ 'gnu++17': 'gnu++1z'
+ }
+
+ # Currently, remapping is only supported for Clang and GCC
+ assert(self.id in frozenset(['clang', 'gcc']))
+
+ if cpp_std not in CPP_FALLBACKS:
+ # 'c++03' and 'c++98' don't have fallback types
+ return '-std=' + cpp_std
+
+ for i in (cpp_std, CPP_FALLBACKS[cpp_std]):
+ cpp_std_value = '-std=' + i
+ if self._test_cpp_std_arg(cpp_std_value):
+ return cpp_std_value
+
+ raise MesonException('C++ Compiler does not support -std={}'.format(cpp_std))
+
class ClangCPPCompiler(ClangCompiler, CPPCompiler):
def __init__(self, exelist, version, cltype, is_cross, exe_wrapper=None, **kwargs):
@@ -89,7 +140,7 @@ class ClangCPPCompiler(ClangCompiler, CPPCompiler):
args = []
std = options['cpp_std']
if std.value != 'none':
- args.append('-std=' + std.value)
+ args.append(self._find_best_cpp_std(std.value))
return args
def get_option_link_args(self, options):
@@ -155,7 +206,7 @@ class GnuCPPCompiler(GnuCompiler, CPPCompiler):
args = []
std = options['cpp_std']
if std.value != 'none':
- args.append('-std=' + std.value)
+ args.append(self._find_best_cpp_std(std.value))
if options['cpp_debugstl'].value:
args.append('-D_GLIBCXX_DEBUG=1')
return args
@@ -242,7 +293,7 @@ class VisualStudioCPPCompiler(VisualStudioCCompiler, CPPCompiler):
def __init__(self, exelist, version, is_cross, exe_wrap, is_64):
CPPCompiler.__init__(self, exelist, version, is_cross, exe_wrap)
VisualStudioCCompiler.__init__(self, exelist, version, is_cross, exe_wrap, is_64)
- self.base_options = ['b_pch'] # FIXME add lto, pgo and the like
+ self.base_options = ['b_pch', 'b_vscrt'] # FIXME add lto, pgo and the like
def get_options(self):
opts = CPPCompiler.get_options(self)
diff --git a/mesonbuild/compilers/cs.py b/mesonbuild/compilers/cs.py
index e17cd4e..a6c74d2 100644
--- a/mesonbuild/compilers/cs.py
+++ b/mesonbuild/compilers/cs.py
@@ -19,6 +19,14 @@ from ..mesonlib import is_windows
from .compilers import Compiler, mono_buildtype_args
+cs_optimization_args = {'0': [],
+ 'g': [],
+ '1': ['-optimize+'],
+ '2': ['-optimize+'],
+ '3': ['-optimize+'],
+ 's': ['-optimize+'],
+ }
+
class CsCompiler(Compiler):
def __init__(self, exelist, version, id, runner=None):
self.language = 'cs'
@@ -118,6 +126,11 @@ class CsCompiler(Compiler):
def get_buildtype_args(self, buildtype):
return mono_buildtype_args[buildtype]
+ def get_debug_args(self, is_debug):
+ return ['-debug'] if is_debug else []
+
+ def get_optimization_args(self, optimization_level):
+ return cs_optimization_args[optimization_level]
class MonoCompiler(CsCompiler):
def __init__(self, exelist, version):
diff --git a/mesonbuild/compilers/d.py b/mesonbuild/compilers/d.py
index f0f3d54..a03af3e 100644
--- a/mesonbuild/compilers/d.py
+++ b/mesonbuild/compilers/d.py
@@ -14,15 +14,19 @@
import os.path, subprocess
-from ..mesonlib import EnvironmentException, version_compare
+from ..mesonlib import EnvironmentException, version_compare, is_windows, is_osx
from .compilers import (
GCC_STANDARD,
+ GCC_CYGWIN,
+ GCC_OSX,
d_dmd_buildtype_args,
d_gdc_buildtype_args,
d_ldc_buildtype_args,
get_gcc_soname_args,
gnu_color_args,
+ gnu_optimization_args,
+ clike_debug_args,
Compiler,
CompilerArgs,
)
@@ -41,21 +45,44 @@ d_feature_args = {'gcc': {'unittest': '-funittest',
}
}
+ldc_optimization_args = {'0': [],
+ 'g': [],
+ '1': ['-O1'],
+ '2': ['-O2'],
+ '3': ['-O3'],
+ 's': ['-Os'],
+ }
+
+dmd_optimization_args = {'0': [],
+ 'g': [],
+ '1': ['-O'],
+ '2': ['-O'],
+ '3': ['-O'],
+ 's': ['-O'],
+ }
+
class DCompiler(Compiler):
- def __init__(self, exelist, version, is_cross, **kwargs):
+ mscrt_args = {
+ 'none': ['-mscrtlib='],
+ 'md': ['-mscrtlib=msvcrt'],
+ 'mdd': ['-mscrtlib=msvcrtd'],
+ 'mt': ['-mscrtlib=libcmt'],
+ 'mtd': ['-mscrtlib=libcmtd'],
+ }
+
+ def __init__(self, exelist, version, is_cross, is_64, **kwargs):
self.language = 'd'
super().__init__(exelist, version, **kwargs)
self.id = 'unknown'
self.is_cross = is_cross
+ self.is_64 = is_64
def sanity_check(self, work_dir, environment):
source_name = os.path.join(work_dir, 'sanity.d')
output_name = os.path.join(work_dir, 'dtest')
with open(source_name, 'w') as ofile:
- ofile.write('''void main() {
-}
-''')
- pc = subprocess.Popen(self.exelist + self.get_output_args(output_name) + [source_name], cwd=work_dir)
+ ofile.write('''void main() { }''')
+ pc = subprocess.Popen(self.exelist + self.get_output_args(output_name) + self.get_target_arch_args() + [source_name], cwd=work_dir)
pc.wait()
if pc.returncode != 0:
raise EnvironmentException('D compiler %s can not compile programs.' % self.name_string())
@@ -84,14 +111,23 @@ class DCompiler(Compiler):
return 'deps'
def get_pic_args(self):
+ if is_windows():
+ return []
return ['-fPIC']
def get_std_shared_lib_link_args(self):
return ['-shared']
def get_soname_args(self, prefix, shlib_name, suffix, soversion, is_shared_module):
- # FIXME: Make this work for Windows, MacOS and cross-compiling
- return get_gcc_soname_args(GCC_STANDARD, prefix, shlib_name, suffix, soversion, is_shared_module)
+ # FIXME: Make this work for cross-compiling
+ gcc_type = GCC_STANDARD
+ if is_windows():
+ gcc_type = GCC_CYGWIN
+ if is_osx():
+ gcc_type = GCC_OSX
+
+ return get_gcc_soname_args(gcc_type, prefix, shlib_name, suffix, soversion, is_shared_module)
+
def get_feature_args(self, kwargs, build_to_src):
res = []
@@ -139,12 +175,20 @@ class DCompiler(Compiler):
return res
def get_buildtype_linker_args(self, buildtype):
+ if buildtype != 'plain':
+ return self.get_target_arch_args()
return []
def get_std_exe_link_args(self):
return []
+ def gen_import_library_args(self, implibname):
+ return ['-Wl,--out-implib=' + implibname]
+
def build_rpath_args(self, build_dir, from_dir, rpath_paths, build_rpath, install_rpath):
+ if is_windows():
+ return []
+
# This method is to be used by LDC and DMD.
# GDC can deal with the verbatim flags.
if not rpath_paths and not install_rpath:
@@ -197,6 +241,15 @@ class DCompiler(Compiler):
def has_multi_arguments(self, args, env):
return self.compiles('int i;\n', env, extra_args=args)
+ def get_target_arch_args(self):
+ # LDC2 on Windows targets to current OS architecture, but
+ # it should follow the target specified by the MSVC toolchain.
+ if is_windows():
+ if self.is_64:
+ return ['-m64']
+ return ['-m32']
+ return []
+
@classmethod
def translate_args_to_nongnu(cls, args):
dcargs = []
@@ -210,8 +263,15 @@ class DCompiler(Compiler):
if arg.startswith('-Wl,'):
linkargs = arg[arg.index(',') + 1:].split(',')
for la in linkargs:
+ if la.startswith('--out-implib='):
+ # Import library name for MSVC targets
+ dcargs.append('-L/IMPLIB:' + la[13:].strip())
+ continue
dcargs.append('-L' + la.strip())
continue
+ elif arg.startswith('-install_name'):
+ dcargs.append('-L' + arg)
+ continue
elif arg.startswith('-link-defaultlib') or arg.startswith('-linker'):
# these are special arguments to the LDC linker call,
# arguments like "-link-defaultlib-shared" do *not*
@@ -234,20 +294,67 @@ class DCompiler(Compiler):
# a linker search path.
dcargs.append('-L' + arg)
continue
+ elif arg.startswith('-mscrtlib='):
+ mscrtlib = arg[10:].lower()
+
+ if cls is LLVMDCompiler:
+ # Default crt libraries for LDC2 must be excluded for other
+ # selected crt options.
+ if mscrtlib != 'libcmt':
+ dcargs.append('-L/NODEFAULTLIB:libcmt')
+ dcargs.append('-L/NODEFAULTLIB:libvcruntime')
+
+ # Fixes missing definitions for printf-functions in VS2017
+ if mscrtlib.startswith('msvcrt'):
+ dcargs.append('-L/DEFAULTLIB:legacy_stdio_definitions.lib')
+
+ dcargs.append(arg)
+ continue
dcargs.append(arg)
return dcargs
+ def get_debug_args(self, is_debug):
+ return clike_debug_args[is_debug]
+
+ def get_crt_args(self, crt_val, buildtype):
+ if not is_windows():
+ return []
+
+ if crt_val in self.mscrt_args:
+ return self.mscrt_args[crt_val]
+ assert(crt_val == 'from_buildtype')
+
+ # Match what build type flags used to do.
+ if buildtype == 'plain':
+ return []
+ elif buildtype == 'debug':
+ return self.mscrt_args['mdd']
+ elif buildtype == 'debugoptimized':
+ return self.mscrt_args['md']
+ elif buildtype == 'release':
+ return self.mscrt_args['md']
+ elif buildtype == 'minsize':
+ return self.mscrt_args['md']
+ else:
+ assert(buildtype == 'custom')
+ raise EnvironmentException('Requested C runtime based on buildtype, but buildtype is "custom".')
+
+ def get_crt_compile_args(self, crt_val, buildtype):
+ return []
+
+ def get_crt_link_args(self, crt_val, buildtype):
+ return []
class GnuDCompiler(DCompiler):
- def __init__(self, exelist, version, is_cross, **kwargs):
- DCompiler.__init__(self, exelist, version, is_cross, **kwargs)
+ def __init__(self, exelist, version, is_cross, is_64, **kwargs):
+ DCompiler.__init__(self, exelist, version, is_cross, is_64, **kwargs)
self.id = 'gcc'
default_warn_args = ['-Wall', '-Wdeprecated']
self.warn_args = {'1': default_warn_args,
'2': default_warn_args + ['-Wextra'],
'3': default_warn_args + ['-Wextra', '-Wpedantic']}
- self.base_options = ['b_colorout', 'b_sanitize', 'b_staticpic']
+ self.base_options = ['b_colorout', 'b_sanitize', 'b_staticpic', 'b_vscrt']
self._has_color_support = version_compare(self.version, '>=4.9')
# dependencies were implemented before, but broken - support was fixed in GCC 7.1+
@@ -288,12 +395,14 @@ class GnuDCompiler(DCompiler):
def build_rpath_args(self, build_dir, from_dir, rpath_paths, build_rpath, install_rpath):
return self.build_unix_rpath_args(build_dir, from_dir, rpath_paths, build_rpath, install_rpath)
+ def get_optimization_args(self, optimization_level):
+ return gnu_optimization_args[optimization_level]
class LLVMDCompiler(DCompiler):
- def __init__(self, exelist, version, is_cross, **kwargs):
- DCompiler.__init__(self, exelist, version, is_cross, **kwargs)
+ def __init__(self, exelist, version, is_cross, is_64, **kwargs):
+ DCompiler.__init__(self, exelist, version, is_cross, is_64, **kwargs)
self.id = 'llvm'
- self.base_options = ['b_coverage', 'b_colorout']
+ self.base_options = ['b_coverage', 'b_colorout', 'b_vscrt']
def get_colorout_args(self, colortype):
if colortype == 'always':
@@ -327,6 +436,8 @@ class LLVMDCompiler(DCompiler):
return ['-cov']
def get_buildtype_args(self, buildtype):
+ if buildtype != 'plain':
+ return self.get_target_arch_args() + d_ldc_buildtype_args[buildtype]
return d_ldc_buildtype_args[buildtype]
def get_pic_args(self):
@@ -338,16 +449,23 @@ class LLVMDCompiler(DCompiler):
# -L is for the compiler, telling it to pass the second -L to the linker.
return ['-L-L' + dirname]
+ def get_crt_link_args(self, crt_val, buildtype):
+ return self.get_crt_args(crt_val, buildtype)
+
@classmethod
def unix_args_to_native(cls, args):
return cls.translate_args_to_nongnu(args)
+ def get_optimization_args(self, optimization_level):
+ return ldc_optimization_args[optimization_level]
+
class DmdDCompiler(DCompiler):
- def __init__(self, exelist, version, is_cross, **kwargs):
- DCompiler.__init__(self, exelist, version, is_cross, **kwargs)
+ def __init__(self, exelist, version, is_cross, is_64, **kwargs):
+ DCompiler.__init__(self, exelist, version, is_cross, is_64, **kwargs)
self.id = 'dmd'
- self.base_options = ['b_coverage', 'b_colorout']
+ self.base_options = ['b_coverage', 'b_colorout', 'b_vscrt']
+ self.is_msvc = 'VCINSTALLDIR' in os.environ
def get_colorout_args(self, colortype):
if colortype == 'always':
@@ -384,11 +502,31 @@ class DmdDCompiler(DCompiler):
return ['-L-L' + dirname]
def get_buildtype_args(self, buildtype):
+ if buildtype != 'plain':
+ return self.get_target_arch_args() + d_dmd_buildtype_args[buildtype]
return d_dmd_buildtype_args[buildtype]
def get_std_shared_lib_link_args(self):
return ['-shared', '-defaultlib=libphobos2.so']
+ def get_target_arch_args(self):
+ # DMD32 and DMD64 on 64-bit Windows defaults to 32-bit (OMF).
+ # Force the target to 64-bit in order to stay consistent
+ # across the different platforms.
+ if is_windows():
+ if self.is_64:
+ return ['-m64']
+ elif self.is_msvc:
+ return ['-m32mscoff']
+ return ['-m32']
+ return []
+
+ def get_crt_compile_args(self, crt_val, buildtype):
+ return self.get_crt_args(crt_val, buildtype)
+
@classmethod
def unix_args_to_native(cls, args):
return cls.translate_args_to_nongnu(args)
+
+ def get_optimization_args(self, optimization_level):
+ return dmd_optimization_args[optimization_level]
diff --git a/mesonbuild/compilers/fortran.py b/mesonbuild/compilers/fortran.py
index d6e41e3..1ee1fcb 100644
--- a/mesonbuild/compilers/fortran.py
+++ b/mesonbuild/compilers/fortran.py
@@ -15,12 +15,20 @@
from .c import CCompiler
from .compilers import (
ICC_STANDARD,
+ apple_buildtype_linker_args,
+ gnulike_buildtype_args,
+ gnulike_buildtype_linker_args,
+ gnu_optimization_args,
+ clike_debug_args,
Compiler,
GnuCompiler,
ElbrusCompiler,
IntelCompiler,
)
+from mesonbuild.mesonlib import EnvironmentException, is_osx
+import subprocess, os
+
class FortranCompiler(Compiler):
library_dirs_cache = CCompiler.library_dirs_cache
program_dirs_cache = CCompiler.library_dirs_cache
@@ -61,6 +69,48 @@ class FortranCompiler(Compiler):
def get_soname_args(self, *args):
return CCompiler.get_soname_args(self, *args)
+ def sanity_check(self, work_dir, environment):
+ source_name = os.path.join(work_dir, 'sanitycheckf.f90')
+ binary_name = os.path.join(work_dir, 'sanitycheckf')
+ with open(source_name, 'w') as ofile:
+ ofile.write('''program prog
+ print *, "Fortran compilation is working."
+end program prog
+''')
+ extra_flags = self.get_cross_extra_flags(environment, link=True)
+ pc = subprocess.Popen(self.exelist + extra_flags + [source_name, '-o', binary_name])
+ pc.wait()
+ if pc.returncode != 0:
+ raise EnvironmentException('Compiler %s can not compile programs.' % self.name_string())
+ if self.is_cross:
+ if self.exe_wrapper is None:
+ # Can't check if the binaries run so we have to assume they do
+ return
+ cmdlist = self.exe_wrapper + [binary_name]
+ else:
+ cmdlist = [binary_name]
+ pe = subprocess.Popen(cmdlist, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
+ pe.wait()
+ if pe.returncode != 0:
+ raise EnvironmentException('Executables created by Fortran compiler %s are not runnable.' % self.name_string())
+
+ def get_std_warn_args(self, level):
+ return FortranCompiler.std_warn_args
+
+ def get_buildtype_args(self, buildtype):
+ return gnulike_buildtype_args[buildtype]
+
+ def get_optimization_args(self, optimization_level):
+ return gnu_optimization_args[optimization_level]
+
+ def get_debug_args(self, is_debug):
+ return clike_debug_args[is_debug]
+
+ def get_buildtype_linker_args(self, buildtype):
+ if is_osx():
+ return apple_buildtype_linker_args[buildtype]
+ return gnulike_buildtype_linker_args[buildtype]
+
def split_shlib_to_parts(self, fname):
return CCompiler.split_shlib_to_parts(self, fname)
@@ -94,6 +144,9 @@ class FortranCompiler(Compiler):
def get_compiler_check_args(self):
return CCompiler.get_compiler_check_args(self)
+ def get_allow_undefined_link_args(self):
+ return CCompiler.get_allow_undefined_link_args(self)
+
def get_output_args(self, target):
return CCompiler.get_output_args(self, target)
@@ -127,11 +180,14 @@ class FortranCompiler(Compiler):
def get_std_shared_lib_link_args(self):
return CCompiler.get_std_shared_lib_link_args(self)
- def get_library_dirs_real(self):
- return CCompiler.get_library_dirs_real(self)
+ def _get_search_dirs(self, *args, **kwargs):
+ return CCompiler._get_search_dirs(self, *args, **kwargs)
+
+ def get_compiler_dirs(self, *args, **kwargs):
+ return CCompiler.get_compiler_dirs(self, *args, **kwargs)
- def get_library_dirs(self):
- return CCompiler.get_library_dirs(self)
+ def get_library_dirs(self, *args, **kwargs):
+ return CCompiler.get_library_dirs(self, *args, **kwargs)
def get_pic_args(self):
return CCompiler.get_pic_args(self)
@@ -151,13 +207,6 @@ class FortranCompiler(Compiler):
def gen_import_library_args(self, implibname):
return CCompiler.gen_import_library_args(self, implibname)
- def sanity_check(self, work_dir, environment):
- code = '''program main
- integer :: ret = 0
- call exit(ret)
- end program main'''
- return CCompiler.sanity_check_impl(self, work_dir, environment, 'sanitycheckf.f90', code)
-
def _get_compiler_check_args(self, env, extra_args, dependencies, mode='compile'):
return CCompiler._get_compiler_check_args(self, env, extra_args, dependencies, mode='compile')
diff --git a/mesonbuild/compilers/rust.py b/mesonbuild/compilers/rust.py
index d1a05ed..93c2917 100644
--- a/mesonbuild/compilers/rust.py
+++ b/mesonbuild/compilers/rust.py
@@ -16,7 +16,15 @@ import subprocess, os.path
from ..mesonlib import EnvironmentException, Popen_safe
-from .compilers import Compiler, rust_buildtype_args
+from .compilers import Compiler, rust_buildtype_args, clike_debug_args
+
+rust_optimization_args = {'0': [],
+ 'g': ['-C', '--opt-level=0'],
+ '1': ['-C', '--opt-level=1'],
+ '2': ['-C', '--opt-level=2'],
+ '3': ['-C', '--opt-level=3'],
+ 's': ['-C', '--opt-level=s'],
+ }
class RustCompiler(Compiler):
def __init__(self, exelist, version, is_cross, exe_wrapper=None):
@@ -68,3 +76,9 @@ class RustCompiler(Compiler):
cmd = self.exelist + ['--print', 'sysroot']
p, stdo, stde = Popen_safe(cmd)
return stdo.split('\n')[0]
+
+ def get_debug_args(self, is_debug):
+ return clike_debug_args[is_debug]
+
+ def get_optimization_args(self, optimization_level):
+ return rust_optimization_args[optimization_level]
diff --git a/mesonbuild/compilers/swift.py b/mesonbuild/compilers/swift.py
index 59997d6..4d5dd0c 100644
--- a/mesonbuild/compilers/swift.py
+++ b/mesonbuild/compilers/swift.py
@@ -16,7 +16,15 @@ import subprocess, os.path
from ..mesonlib import EnvironmentException
-from .compilers import Compiler, swift_buildtype_args
+from .compilers import Compiler, swift_buildtype_args, clike_debug_args
+
+swift_optimization_args = {'0': [],
+ 'g': [],
+ '1': ['-O'],
+ '2': ['-O'],
+ '3': ['-O'],
+ 's': ['-O'],
+ }
class SwiftCompiler(Compiler):
def __init__(self, exelist, version):
@@ -97,3 +105,9 @@ class SwiftCompiler(Compiler):
raise EnvironmentException('Swift compiler %s can not compile programs.' % self.name_string())
if subprocess.call(output_name) != 0:
raise EnvironmentException('Executables created by Swift compiler %s are not runnable.' % self.name_string())
+
+ def get_debug_args(self, is_debug):
+ return clike_debug_args[is_debug]
+
+ def get_optimization_args(self, optimization_level):
+ return swift_optimization_args[optimization_level]
diff --git a/mesonbuild/compilers/vala.py b/mesonbuild/compilers/vala.py
index 6194d1a..46bb210 100644
--- a/mesonbuild/compilers/vala.py
+++ b/mesonbuild/compilers/vala.py
@@ -34,6 +34,12 @@ class ValaCompiler(Compiler):
def needs_static_linker(self):
return False # Because compiles into C.
+ def get_optimization_args(self, optimization_level):
+ return []
+
+ def get_debug_args(self, is_debug):
+ return ['--debug']
+
def get_output_args(self, target):
return [] # Because compiles into C.
diff --git a/mesonbuild/coredata.py b/mesonbuild/coredata.py
index 4c24dbd..4b32c19 100644
--- a/mesonbuild/coredata.py
+++ b/mesonbuild/coredata.py
@@ -19,6 +19,7 @@ from pathlib import PurePath
from collections import OrderedDict
from .mesonlib import MesonException
from .mesonlib import default_libdir, default_libexecdir, default_prefix
+from .wrap import WrapMode
import ast
import argparse
@@ -138,9 +139,10 @@ class UserComboOption(UserOption):
return value
class UserArrayOption(UserOption):
- def __init__(self, name, description, value, shlex_split=False, user_input=False, **kwargs):
+ def __init__(self, name, description, value, shlex_split=False, user_input=False, allow_dups=False, **kwargs):
super().__init__(name, description, kwargs.get('choices', []), yielding=kwargs.get('yielding', None))
self.shlex_split = shlex_split
+ self.allow_dups = allow_dups
self.value = self.validate_value(value, user_input=user_input)
def validate_value(self, value, user_input=True):
@@ -166,7 +168,7 @@ class UserArrayOption(UserOption):
else:
raise MesonException('"{0}" should be a string array, but it is not'.format(str(newvalue)))
- if len(set(newvalue)) != len(newvalue):
+ if not self.allow_dups and len(set(newvalue)) != len(newvalue):
msg = 'Duplicated values in array option "%s" is deprecated. ' \
'This will become a hard error in the future.' % (self.name)
mlog.deprecation(msg)
@@ -221,7 +223,7 @@ class CoreData:
self.base_options = {}
self.external_preprocess_args = {} # CPPFLAGS only
self.cross_file = self.__load_cross_file(options.cross_file)
- self.wrap_mode = options.wrap_mode
+ self.wrap_mode = options.wrap_mode if options.wrap_mode is not None else WrapMode.default
self.compilers = OrderedDict()
self.cross_compilers = OrderedDict()
self.deps = OrderedDict()
@@ -349,6 +351,51 @@ class CoreData:
raise RuntimeError('Tried to set unknown builtin option %s.' % optname)
self.builtins[optname].set_value(value)
+ # Make sure that buildtype matches other settings.
+ if optname == 'buildtype':
+ self.set_others_from_buildtype(value)
+ else:
+ self.set_buildtype_from_others()
+
+ def set_others_from_buildtype(self, value):
+ if value == 'plain':
+ opt = '0'
+ debug = False
+ elif value == 'debug':
+ opt = '0'
+ debug = True
+ elif value == 'debugoptimized':
+ opt = '2'
+ debug = True
+ elif value == 'release':
+ opt = '3'
+ debug = False
+ elif value == 'minsize':
+ opt = 's'
+ debug = True
+ else:
+ assert(value == 'custom')
+ return
+ self.builtins['optimization'].set_value(opt)
+ self.builtins['debug'].set_value(debug)
+
+ def set_buildtype_from_others(self):
+ opt = self.builtins['optimization'].value
+ debug = self.builtins['debug'].value
+ if opt == '0' and not debug:
+ mode = 'plain'
+ elif opt == '0' and debug:
+ mode = 'debug'
+ elif opt == '2' and debug:
+ mode = 'debugoptimized'
+ elif opt == '3' and not debug:
+ mode = 'release'
+ elif opt == 's' and debug:
+ mode = 'minsize'
+ else:
+ mode = 'custom'
+ self.builtins['buildtype'].set_value(mode)
+
def validate_option_value(self, option_name, override_value):
for opts in (self.builtins, self.base_options, self.compiler_options, self.user_options):
if option_name in opts:
@@ -389,8 +436,7 @@ class CoreData:
if k == 'prefix':
pass
elif k in self.builtins:
- tgt = self.builtins[k]
- tgt.set_value(self.sanitize_dir_option_value(prefix, k, v))
+ self.set_builtin_option(k, v)
elif k in self.backend_options:
tgt = self.backend_options[k]
tgt.set_value(v)
@@ -544,7 +590,7 @@ def parse_cmd_line_options(args):
delattr(args, name)
builtin_options = {
- 'buildtype': [UserComboOption, 'Build type to use.', ['plain', 'debug', 'debugoptimized', 'release', 'minsize'], 'debug'],
+ 'buildtype': [UserComboOption, 'Build type to use.', ['plain', 'debug', 'debugoptimized', 'release', 'minsize', 'custom'], 'debug'],
'strip': [UserBooleanOption, 'Strip targets on install.', False],
'unity': [UserComboOption, 'Unity build.', ['on', 'off', 'subprojects'], 'off'],
'prefix': [UserStringOption, 'Installation prefix.', default_prefix()],
@@ -569,6 +615,8 @@ builtin_options = {
'errorlogs': [UserBooleanOption, "Whether to print the logs from failing tests.", True],
'install_umask': [UserUmaskOption, 'Default umask to apply on permissions of installed files.', '022'],
'auto_features': [UserFeatureOption, "Override value of all 'auto' features.", 'auto'],
+ 'optimization': [UserComboOption, 'Optimization level', ['0', 'g', '1', '2', '3', 's'], '0'],
+ 'debug': [UserBooleanOption, 'Debug', True]
}
# Special prefix-dependent defaults for installation directories that reside in
diff --git a/mesonbuild/dependencies/base.py b/mesonbuild/dependencies/base.py
index c4f9630..04c4701 100644
--- a/mesonbuild/dependencies/base.py
+++ b/mesonbuild/dependencies/base.py
@@ -98,7 +98,7 @@ class Dependency:
def __init__(self, type_name, kwargs):
self.name = "null"
- self.version = 'none'
+ self.version = None
self.language = None # None means C-like
self.is_found = False
self.type_name = type_name
@@ -138,7 +138,10 @@ class Dependency:
return self.name
def get_version(self):
- return self.version
+ if self.version:
+ return self.version
+ else:
+ return 'unknown'
def get_exe_args(self, compiler):
return []
@@ -218,6 +221,8 @@ class ExternalDependency(Dependency):
self.is_found = False
self.language = language
self.version_reqs = kwargs.get('version', None)
+ if isinstance(self.version_reqs, str):
+ self.version_reqs = [self.version_reqs]
self.required = kwargs.get('required', True)
self.silent = kwargs.get('silent', False)
self.static = kwargs.get('static', False)
@@ -275,6 +280,41 @@ class ExternalDependency(Dependency):
def log_tried(self):
return ''
+ # Check if dependency version meets the requirements
+ def _check_version(self):
+ if not self.is_found:
+ return
+
+ if self.version_reqs:
+ # an unknown version can never satisfy any requirement
+ if not self.version:
+ found_msg = ['Dependency', mlog.bold(self.name), 'found:']
+ found_msg += [mlog.red('NO'), 'unknown version, but need:',
+ self.version_reqs]
+ mlog.log(*found_msg)
+
+ if self.required:
+ m = 'Unknown version of dependency {!r}, but need {!r}.'
+ raise DependencyException(m.format(self.name, self.version_reqs))
+
+ else:
+ (self.is_found, not_found, found) = \
+ version_compare_many(self.version, self.version_reqs)
+ if not self.is_found:
+ found_msg = ['Dependency', mlog.bold(self.name), 'found:']
+ found_msg += [mlog.red('NO'),
+ 'found {!r} but need:'.format(self.version),
+ ', '.join(["'{}'".format(e) for e in not_found])]
+ if found:
+ found_msg += ['; matched:',
+ ', '.join(["'{}'".format(e) for e in found])]
+ mlog.log(*found_msg)
+
+ if self.required:
+ m = 'Invalid version of dependency, need {!r} {!r} found {!r}.'
+ raise DependencyException(m.format(self.name, not_found, self.version))
+ return
+
class NotFoundDependency(Dependency):
def __init__(self, environment):
@@ -375,7 +415,7 @@ class ConfigToolDependency(ExternalDependency):
# don't fail with --version, in that case just assume that there is
# only one version and return it.
if not out:
- return (tool, 'none')
+ return (tool, None)
if versions:
is_found = version_compare_many(out, versions)[0]
# This allows returning a found version without a config tool,
@@ -480,20 +520,6 @@ class PkgConfigDependency(ExternalDependency):
ret, self.version = self._call_pkgbin(['--modversion', name])
if ret != 0:
return
- if self.version_reqs is None:
- self.is_found = True
- else:
- if not isinstance(self.version_reqs, (str, list)):
- raise DependencyException('Version argument must be string or list.')
- if isinstance(self.version_reqs, str):
- self.version_reqs = [self.version_reqs]
- (self.is_found, not_found, found) = \
- version_compare_many(self.version, self.version_reqs)
- if not self.is_found:
- if self.required:
- m = 'Invalid version of dependency, need {!r} {!r} found {!r}.'
- raise DependencyException(m.format(name, not_found, self.version))
- return
try:
# Fetch cargs to be used while using this dependency
@@ -509,6 +535,8 @@ class PkgConfigDependency(ExternalDependency):
self.is_found = False
self.reason = e
+ self.is_found = True
+
def __repr__(self):
s = '<{0} {1}: {2} {3}>'
return s.format(self.__class__.__name__, self.name, self.is_found,
@@ -576,29 +604,59 @@ class PkgConfigDependency(ExternalDependency):
self.compile_args = self._convert_mingw_paths(shlex.split(out))
def _search_libs(self, out, out_raw):
- link_args = []
- raw_link_args = []
+ '''
+ @out: PKG_CONFIG_ALLOW_SYSTEM_LIBS=1 pkg-config --libs
+ @out_raw: pkg-config --libs
+
+ We always look for the file ourselves instead of depending on the
+ compiler to find it with -lfoo or foo.lib (if possible) because:
+ 1. We want to be able to select static or shared
+ 2. We need the full path of the library to calculate RPATH values
+ 3. De-dup of libraries is easier when we have absolute paths
+
+ Libraries that are provided by the toolchain or are not found by
+ find_library() will be added with -L -l pairs.
+ '''
# Library paths should be safe to de-dup
- libpaths = OrderedSet()
- raw_libpaths = OrderedSet()
+ #
+ # First, figure out what library paths to use. Originally, we were
+ # doing this as part of the loop, but due to differences in the order
+ # of -L values between pkg-config and pkgconf, we need to do that as
+ # a separate step. See:
+ # https://github.com/mesonbuild/meson/issues/3951
+ # https://github.com/mesonbuild/meson/issues/4023
+ #
+ # Separate system and prefix paths, and ensure that prefix paths are
+ # always searched first.
+ prefix_libpaths = OrderedSet()
+ # We also store this raw_link_args on the object later
+ raw_link_args = self._convert_mingw_paths(shlex.split(out_raw))
+ for arg in raw_link_args:
+ if arg.startswith('-L') and not arg.startswith(('-L-l', '-L-L')):
+ prefix_libpaths.add(arg[2:])
+ system_libpaths = OrderedSet()
+ full_args = self._convert_mingw_paths(shlex.split(out))
+ for arg in full_args:
+ if arg.startswith(('-L-l', '-L-L')):
+ # These are D language arguments, not library paths
+ continue
+ if arg.startswith('-L') and arg[2:] not in prefix_libpaths:
+ system_libpaths.add(arg[2:])
+ # Use this re-ordered path list for library resolution
+ libpaths = list(prefix_libpaths) + list(system_libpaths)
# Track -lfoo libraries to avoid duplicate work
libs_found = OrderedSet()
# Track not-found libraries to know whether to add library paths
libs_notfound = []
libtype = 'static' if self.static else 'default'
- # We always look for the file ourselves instead of depending on the
- # compiler to find it with -lfoo or foo.lib (if possible) because:
- # 1. We want to be able to select static or shared
- # 2. We need the full path of the library to calculate RPATH values
- #
- # Libraries that are provided by the toolchain or are not found by
- # find_library() will be added with -L -l pairs.
- for lib in self._convert_mingw_paths(shlex.split(out)):
+ # Generate link arguments for this library
+ link_args = []
+ for lib in full_args:
if lib.startswith(('-L-l', '-L-L')):
# These are D language arguments, add them as-is
pass
elif lib.startswith('-L'):
- libpaths.add(lib[2:])
+ # We already handled library paths above
continue
elif lib.startswith('-l'):
# Don't resolve the same -lfoo argument again
@@ -606,7 +664,7 @@ class PkgConfigDependency(ExternalDependency):
continue
if self.clib_compiler:
args = self.clib_compiler.find_library(lib[2:], self.env,
- list(reversed(libpaths)), libtype)
+ libpaths, libtype)
# If the project only uses a non-clib language such as D, Rust,
# C#, Python, etc, all we can do is limp along by adding the
# arguments as-is and then adding the libpaths at the end.
@@ -650,16 +708,11 @@ class PkgConfigDependency(ExternalDependency):
if lib in link_args:
continue
link_args.append(lib)
- # Also store the raw link arguments, and store raw_libpaths
- for lib in self._convert_mingw_paths(shlex.split(out_raw)):
- if lib.startswith('-L') and not lib.startswith(('-L-l', '-L-L')):
- raw_libpaths.add(lib[2:])
- raw_link_args.append(lib)
# Add all -Lbar args if we have -lfoo args in link_args
if libs_notfound:
# Order of -L flags doesn't matter with ld, but it might with other
# linkers such as MSVC, so prepend them.
- link_args = ['-L' + lp for lp in raw_libpaths] + link_args
+ link_args = ['-L' + lp for lp in prefix_libpaths] + link_args
return link_args, raw_link_args
def _set_libs(self):
@@ -837,22 +890,6 @@ class DubDependency(ExternalDependency):
self.pkg = package
break
- # Check if package version meets the requirements
- if self.version_reqs is None:
- self.is_found = True
- else:
- if not isinstance(self.version_reqs, (str, list)):
- raise DependencyException('Version argument must be string or list.')
- if isinstance(self.version_reqs, str):
- self.version_reqs = [self.version_reqs]
- (self.is_found, not_found, found) = \
- version_compare_many(self.version, self.version_reqs)
- if not self.is_found:
- if self.required:
- m = 'Invalid version of dependency, need {!r} {!r} found {!r}.'
- raise DependencyException(m.format(name, not_found, self.version))
- return
-
if self.pkg['targetFileName'].endswith('.a'):
self.static = True
@@ -872,9 +909,7 @@ class DubDependency(ExternalDependency):
for file in res:
self.link_args.append(file)
- if not found:
- self.is_found = False
- return
+ self.is_found = found
def get_compiler(self):
return self.compiler
@@ -1191,7 +1226,7 @@ class ExternalLibrary(ExternalDependency):
class ExtraFrameworkDependency(ExternalDependency):
def __init__(self, name, required, path, env, lang, kwargs):
super().__init__('extraframeworks', env, lang, kwargs)
- self.name = None
+ self.name = name
self.required = required
self.detect(name, path)
if self.found():
@@ -1216,9 +1251,6 @@ class ExtraFrameworkDependency(ExternalDependency):
self.is_found = True
return
- def get_version(self):
- return 'unknown'
-
def log_info(self):
return os.path.join(self.path, self.name)
@@ -1266,6 +1298,8 @@ def find_external_dependency(name, env, kwargs):
lname = name.lower()
if lname not in _packages_accept_language and 'language' in kwargs:
raise DependencyException('%s dependency does not accept "language" keyword argument' % (name, ))
+ if not isinstance(kwargs.get('version', ''), (str, list)):
+ raise DependencyException('Keyword "Version" must be string or list.')
# display the dependency name with correct casing
display_name = display_name_map.get(lname, lname)
@@ -1288,6 +1322,7 @@ def find_external_dependency(name, env, kwargs):
# try this dependency method
try:
d = c()
+ d._check_version()
pkgdep.append(d)
except Exception as e:
mlog.debug(str(e))
@@ -1308,7 +1343,7 @@ def find_external_dependency(name, env, kwargs):
if info:
info = ', ' + info
- mlog.log(type_text, mlog.bold(display_name), details + 'found:', mlog.green('YES'), d.version + info)
+ mlog.log(type_text, mlog.bold(display_name), details + 'found:', mlog.green('YES'), (d.version if d.version else '') + info)
return d
diff --git a/mesonbuild/dependencies/boost.py b/mesonbuild/dependencies/boost.py
index 17f9240..b06f62d 100644
--- a/mesonbuild/dependencies/boost.py
+++ b/mesonbuild/dependencies/boost.py
@@ -443,7 +443,7 @@ class BoostDependency(ExternalDependency):
if self.libdir:
libdirs = [self.libdir]
elif self.boost_root is None:
- libdirs = mesonlib.get_library_dirs()
+ libdirs = mesonlib.get_library_dirs(self.env)
else:
libdirs = [os.path.join(self.boost_root, 'lib')]
for libdir in libdirs:
diff --git a/mesonbuild/dependencies/dev.py b/mesonbuild/dependencies/dev.py
index 0cd3c2b..0876391 100644
--- a/mesonbuild/dependencies/dev.py
+++ b/mesonbuild/dependencies/dev.py
@@ -35,7 +35,6 @@ class GTestDependency(ExternalDependency):
self.detect()
def detect(self):
- self.version = '1.something_maybe'
gtest_detect = self.clib_compiler.find_library("gtest", self.env, [])
gtest_main_detect = self.clib_compiler.find_library("gtest_main", self.env, [])
if gtest_detect and (not self.main or gtest_main_detect):
@@ -85,7 +84,6 @@ class GTestDependency(ExternalDependency):
class GMockDependency(ExternalDependency):
def __init__(self, environment, kwargs):
super().__init__('gmock', environment, 'cpp', kwargs)
- self.version = '1.something_maybe'
# GMock may be a library or just source.
# Work with both.
gmock_detect = self.clib_compiler.find_library("gmock", self.env, [])
diff --git a/mesonbuild/dependencies/misc.py b/mesonbuild/dependencies/misc.py
index 78ce51b..014be84 100644
--- a/mesonbuild/dependencies/misc.py
+++ b/mesonbuild/dependencies/misc.py
@@ -180,7 +180,7 @@ class MPIDependency(ExternalDependency):
if version:
version = version.group(0)
else:
- version = 'none'
+ version = None
return version, cargs, libs
@@ -197,7 +197,7 @@ class MPIDependency(ExternalDependency):
return
args = shlex.split(o)
- version = 'none'
+ version = None
return version, args, args
@@ -222,11 +222,11 @@ class MPIDependency(ExternalDependency):
else:
return
if self.language == 'fortran':
- return ('none',
+ return (None,
['-I' + incdir, '-I' + os.path.join(incdir, post)],
[os.path.join(libdir, 'msmpi.lib'), os.path.join(libdir, 'msmpifec.lib')])
else:
- return ('none',
+ return (None,
['-I' + incdir, '-I' + os.path.join(incdir, post)],
[os.path.join(libdir, 'msmpi.lib')])
@@ -267,17 +267,13 @@ class OpenMPDependency(ExternalDependency):
class ThreadDependency(ExternalDependency):
def __init__(self, environment, kwargs):
- super().__init__('threads', environment, None, {})
+ super().__init__('threads', environment, None, kwargs)
self.name = 'threads'
self.is_found = True
- mlog.log('Dependency', mlog.bold(self.name), 'found:', mlog.green('YES'))
def need_threads(self):
return True
- def get_version(self):
- return 'unknown'
-
class Python3Dependency(ExternalDependency):
def __init__(self, environment, kwargs):
@@ -447,8 +443,11 @@ class PcapDependency(ExternalDependency):
@staticmethod
def get_pcap_lib_version(ctdep):
- return ctdep.clib_compiler.get_return_value('pcap_lib_version', 'string',
- '#include <pcap.h>', ctdep.env, [], [ctdep])
+ v = ctdep.clib_compiler.get_return_value('pcap_lib_version', 'string',
+ '#include <pcap.h>', ctdep.env, [], [ctdep])
+ v = re.sub(r'libpcap version ', '', v)
+ v = re.sub(r' -- Apple version.*$', '', v)
+ return v
class CupsDependency(ExternalDependency):
diff --git a/mesonbuild/dependencies/platform.py b/mesonbuild/dependencies/platform.py
index 5f89ccb..0c05156 100644
--- a/mesonbuild/dependencies/platform.py
+++ b/mesonbuild/dependencies/platform.py
@@ -33,8 +33,4 @@ class AppleFrameworks(ExternalDependency):
for f in self.frameworks:
self.link_args += ['-framework', f]
- def found(self):
- return mesonlib.is_osx()
-
- def get_version(self):
- return 'unknown'
+ self.is_found = mesonlib.is_osx()
diff --git a/mesonbuild/dependencies/ui.py b/mesonbuild/dependencies/ui.py
index c877f51..f19a76d 100644
--- a/mesonbuild/dependencies/ui.py
+++ b/mesonbuild/dependencies/ui.py
@@ -44,14 +44,12 @@ class GLDependency(ExternalDependency):
# FIXME: Use AppleFrameworks dependency
self.link_args = ['-framework', 'OpenGL']
# FIXME: Detect version using self.clib_compiler
- self.version = '1'
return
if mesonlib.is_windows():
self.is_found = True
# FIXME: Use self.clib_compiler.find_library()
self.link_args = ['-lopengl32']
# FIXME: Detect version using self.clib_compiler
- self.version = '1'
return
@classmethod
@@ -63,7 +61,7 @@ class GLDependency(ExternalDependency):
candidates.append(functools.partial(PkgConfigDependency, 'gl', environment, kwargs))
if DependencyMethods.SYSTEM in methods:
- candidates.append(functools.partial(GLDependency), environment, kwargs)
+ candidates.append(functools.partial(GLDependency, environment, kwargs))
return candidates
@@ -224,7 +222,7 @@ class QtBaseDependency(ExternalDependency):
self.compile_args = []
self.link_args = []
self.from_text = mlog.format_list(methods)
- self.version = 'none'
+ self.version = None
def compilers_detect(self):
"Detect Qt (4 or 5) moc, uic, rcc in the specified bindir or in PATH"
@@ -557,7 +555,6 @@ class VulkanDependency(ExternalDependency):
# TODO: find a way to retrieve the version from the sdk?
# Usually it is a part of the path to it (but does not have to be)
- self.version = '1'
return
else:
# simply try to guess it, usually works on linux
@@ -565,7 +562,6 @@ class VulkanDependency(ExternalDependency):
if libs is not None and self.clib_compiler.has_header('vulkan/vulkan.h', '', environment):
self.type_name = 'system'
self.is_found = True
- self.version = 1 # TODO
for lib in libs:
self.link_args.append(lib)
return
diff --git a/mesonbuild/environment.py b/mesonbuild/environment.py
index c64fe59..9e9b5fc 100644
--- a/mesonbuild/environment.py
+++ b/mesonbuild/environment.py
@@ -15,7 +15,7 @@
import configparser, os, platform, re, shlex, shutil, subprocess
from . import coredata
-from .linkers import ArLinker, ArmarLinker, VisualStudioLinker
+from .linkers import ArLinker, ArmarLinker, VisualStudioLinker, LDCLinker
from . import mesonlib
from .mesonlib import EnvironmentException, Popen_safe
from . import mlog
@@ -341,6 +341,7 @@ class Environment:
self.vs_static_linker = ['lib']
self.gcc_static_linker = ['gcc-ar']
self.clang_static_linker = ['llvm-ar']
+ self.ldc2_static_linker = ['ldc2']
# Various prefixes and suffixes for import libraries, shared libraries,
# static libraries, and executables.
@@ -813,6 +814,8 @@ This is probably wrong, it should always point to the native compiler.''' % evar
# up to date language version at time (2016).
if 'DC' in os.environ:
exelist = shlex.split(os.environ['DC'])
+ if os.path.basename(exelist[-1]).startswith(('ldmd', 'gdmd')):
+ raise EnvironmentException('Meson doesn\'t support %s as it\'s only a DMD frontend for another compiler. Please provide a valid value for DC or unset it so that Meson can resolve the compiler by itself.' % exelist[-1])
elif self.is_cross_build() and want_cross:
exelist = mesonlib.stringlistify(self.cross_info.config['binaries']['d'])
is_cross = True
@@ -833,12 +836,23 @@ This is probably wrong, it should always point to the native compiler.''' % evar
raise EnvironmentException('Could not execute D compiler "%s"' % ' '.join(exelist))
version = search_version(out)
full_version = out.split('\n', 1)[0]
+
+ # Detect which MSVC build environment is currently active.
+ is_64 = False
+ c_compiler = {}
+ if mesonlib.is_windows() and 'VCINSTALLDIR' in os.environ:
+ # MSVC compiler is required for correct platform detection.
+ c_compiler = {'c': self.detect_c_compiler(want_cross)}
+
+ if detect_cpu_family(c_compiler) == 'x86_64':
+ is_64 = True
+
if 'LLVM D compiler' in out:
- return compilers.LLVMDCompiler(exelist, version, is_cross, full_version=full_version)
+ return compilers.LLVMDCompiler(exelist, version, is_cross, is_64, full_version=full_version)
elif 'gdc' in out:
- return compilers.GnuDCompiler(exelist, version, is_cross, full_version=full_version)
+ return compilers.GnuDCompiler(exelist, version, is_cross, is_64, full_version=full_version)
elif 'The D Language Foundation' in out or 'Digital Mars' in out:
- return compilers.DmdDCompiler(exelist, version, is_cross, full_version=full_version)
+ return compilers.DmdDCompiler(exelist, version, is_cross, is_64, full_version=full_version)
raise EnvironmentException('Unknown compiler "' + ' '.join(exelist) + '"')
def detect_swift_compiler(self):
@@ -870,6 +884,11 @@ This is probably wrong, it should always point to the native compiler.''' % evar
elif isinstance(compiler, compilers.ClangCompiler):
# Use llvm-ar if available; needed for LTO
linkers = [self.clang_static_linker, self.default_static_linker]
+ elif isinstance(compiler, compilers.DCompiler):
+ if mesonlib.is_windows():
+ linkers = [self.vs_static_linker, self.ldc2_static_linker]
+ else:
+ linkers = [self.default_static_linker, self.ldc2_static_linker]
else:
linkers = [self.default_static_linker]
popen_exceptions = {}
@@ -887,6 +906,8 @@ This is probably wrong, it should always point to the native compiler.''' % evar
return VisualStudioLinker(linker)
if p.returncode == 0 and ('armar' in linker or 'armar.exe' in linker):
return ArmarLinker(linker)
+ if 'LDC - the LLVM D compiler' in out:
+ return LDCLinker(linker)
if p.returncode == 0:
return ArLinker(linker)
if p.returncode == 1 and err.startswith('usage'): # OSX
diff --git a/mesonbuild/interpreter.py b/mesonbuild/interpreter.py
index 9c161cb..f0ba4a9 100644
--- a/mesonbuild/interpreter.py
+++ b/mesonbuild/interpreter.py
@@ -383,6 +383,9 @@ class DependencyHolder(InterpreterObject, ObjectHolder):
'partial_dependency': self.partial_dependency_method,
})
+ def found(self):
+ return self.found_method([], {})
+
@noPosargs
@permittedKwargs({})
def type_name_method(self, args, kwargs):
@@ -916,16 +919,30 @@ class Test(InterpreterObject):
class SubprojectHolder(InterpreterObject, ObjectHolder):
- def __init__(self, subinterpreter):
+ def __init__(self, subinterpreter, subproject_dir, name):
InterpreterObject.__init__(self)
ObjectHolder.__init__(self, subinterpreter)
+ self.name = name
+ self.subproject_dir = subproject_dir
self.methods.update({'get_variable': self.get_variable_method,
+ 'found': self.found_method,
})
+ @noPosargs
+ @permittedKwargs({})
+ def found_method(self, args, kwargs):
+ return self.found()
+
+ def found(self):
+ return self.held_object is not None
+
@permittedKwargs({})
def get_variable_method(self, args, kwargs):
if len(args) != 1:
raise InterpreterException('Get_variable takes one argument.')
+ if not self.found():
+ raise InterpreterException('Subproject "%s/%s" disabled can\'t get_variable on it.' % (
+ self.subproject_dir, self.name))
varname = args[0]
if not isinstance(varname, str):
raise InterpreterException('Get_variable takes a string argument.')
@@ -1602,6 +1619,7 @@ class MesonMain(InterpreterObject):
'build_root': self.build_root_method,
'add_install_script': self.add_install_script_method,
'add_postconf_script': self.add_postconf_script_method,
+ 'add_dist_script': self.add_dist_script_method,
'install_dependency_manifest': self.install_dependency_manifest_method,
'override_find_program': self.override_find_program_method,
'project_version': self.project_version_method,
@@ -1644,6 +1662,15 @@ class MesonMain(InterpreterObject):
script = self._find_source_script(args[0], args[1:])
self.build.postconf_scripts.append(script)
+ @permittedKwargs({})
+ def add_dist_script_method(self, args, kwargs):
+ if len(args) != 1:
+ raise InterpreterException('add_dist_script takes exactly one argument')
+ check_stringlist(args, 'add_dist_script argument must be a string')
+ if self.interpreter.subproject != '':
+ raise InterpreterException('add_dist_script may not be used in a subproject.')
+ self.build.dist_scripts.append(os.path.join(self.interpreter.subdir, args[0]))
+
@noPosargs
@permittedKwargs({})
def current_source_dir_method(self, args, kwargs):
@@ -1808,11 +1835,11 @@ known_build_target_kwargs = (
{'target_type'}
)
-permitted_kwargs = {'add_global_arguments': {'language'},
- 'add_global_link_arguments': {'language'},
- 'add_project_link_arguments': {'language'},
+permitted_kwargs = {'add_global_arguments': {'language', 'native'},
+ 'add_global_link_arguments': {'language', 'native'},
'add_languages': {'required'},
- 'add_project_arguments': {'language'},
+ 'add_project_link_arguments': {'language', 'native'},
+ 'add_project_arguments': {'language', 'native'},
'add_test_setup': {'exe_wrapper', 'gdb', 'timeout_multiplier', 'env'},
'benchmark': {'args', 'env', 'should_fail', 'timeout', 'workdir', 'suite'},
'build_target': known_build_target_kwargs,
@@ -1838,7 +1865,7 @@ permitted_kwargs = {'add_global_arguments': {'language'},
'both_libraries': known_library_kwargs,
'library': known_library_kwargs,
'subdir': {'if_found'},
- 'subproject': {'version', 'default_options'},
+ 'subproject': {'version', 'default_options', 'required'},
'test': {'args', 'depends', 'env', 'is_parallel', 'should_fail', 'timeout', 'workdir', 'suite'},
'vcs_tag': {'input', 'output', 'fallback', 'command', 'replace_string'},
}
@@ -2224,7 +2251,16 @@ external dependencies (including libraries) must go to "dependencies".''')
dirname = args[0]
return self.do_subproject(dirname, kwargs)
+ def disabled_subproject(self, dirname):
+ self.subprojects[dirname] = SubprojectHolder(None, self.subproject_dir, dirname)
+ return self.subprojects[dirname]
+
def do_subproject(self, dirname, kwargs):
+ disabled, required, feature = extract_required_kwarg(kwargs, self.subproject)
+ if disabled:
+ mlog.log('\nSubproject', mlog.bold(dirname), ':', 'skipped: feature', mlog.bold(feature), 'disabled')
+ return self.disabled_subproject(dirname)
+
default_options = mesonlib.stringlistify(kwargs.get('default_options', []))
default_options = coredata.create_options_dict(default_options)
if dirname == '':
@@ -2242,7 +2278,13 @@ external dependencies (including libraries) must go to "dependencies".''')
incpath = ' => '.join(fullstack)
raise InvalidCode('Recursive include of subprojects: %s.' % incpath)
if dirname in self.subprojects:
- return self.subprojects[dirname]
+ subproject = self.subprojects[dirname]
+
+ if required and not subproject.found():
+ raise InterpreterException('Subproject "%s/%s" required but not found.' % (
+ self.subproject_dir, dirname))
+
+ return subproject
subproject_dir_abs = os.path.join(self.environment.get_source_dir(), self.subproject_dir)
r = wrap.Resolver(subproject_dir_abs, self.coredata.wrap_mode)
try:
@@ -2254,22 +2296,35 @@ external dependencies (including libraries) must go to "dependencies".''')
# promotion...
self.print_nested_info(dirname)
- msg = 'Subproject directory {!r} does not exist and cannot be downloaded:\n{}'
- raise InterpreterException(msg.format(os.path.join(self.subproject_dir, dirname), e))
+ if required:
+ msg = 'Subproject directory {!r} does not exist and cannot be downloaded:\n{}'
+ raise InterpreterException(msg.format(os.path.join(self.subproject_dir, dirname), e))
+
+ mlog.log('\nSubproject ', mlog.bold(dirname), 'is buildable:', mlog.red('NO'), '(disabling)\n')
+ return self.disabled_subproject(dirname)
+
subdir = os.path.join(self.subproject_dir, resolved)
os.makedirs(os.path.join(self.build.environment.get_build_dir(), subdir), exist_ok=True)
self.global_args_frozen = True
mlog.log()
with mlog.nested():
- mlog.log('\nExecuting subproject', mlog.bold(dirname), '\n')
- subi = Interpreter(self.build, self.backend, dirname, subdir, self.subproject_dir,
- self.modules, default_options)
- subi.subprojects = self.subprojects
-
- subi.subproject_stack = self.subproject_stack + [dirname]
- current_active = self.active_projectname
- subi.run()
- mlog.log('\nSubproject', mlog.bold(dirname), 'finished.')
+ try:
+ mlog.log('\nExecuting subproject', mlog.bold(dirname), '\n')
+ subi = Interpreter(self.build, self.backend, dirname, subdir, self.subproject_dir,
+ self.modules, default_options)
+ subi.subprojects = self.subprojects
+
+ subi.subproject_stack = self.subproject_stack + [dirname]
+ current_active = self.active_projectname
+ subi.run()
+ mlog.log('\nSubproject', mlog.bold(dirname), 'finished.')
+ except Exception as e:
+ if not required:
+ mlog.log(e)
+ mlog.log('\nSubproject', mlog.bold(dirname), 'is buildable:', mlog.red('NO'), '(disabling)')
+ return self.disabled_subproject(dirname)
+ else:
+ raise e
if 'version' in kwargs:
pv = subi.project_version
@@ -2279,26 +2334,24 @@ external dependencies (including libraries) must go to "dependencies".''')
self.active_projectname = current_active
self.build.subprojects[dirname] = subi.project_version
self.subprojects.update(subi.subprojects)
- self.subprojects[dirname] = SubprojectHolder(subi)
+ self.subprojects[dirname] = SubprojectHolder(subi, self.subproject_dir, dirname)
self.build_def_files += subi.build_def_files
return self.subprojects[dirname]
def get_option_internal(self, optname):
+ # Some base options are not defined in some environments, return the
+ # default value from compilers.base_options in that case.
+ for d in [self.coredata.base_options, compilers.base_options,
+ self.coredata.builtins, self.coredata.compiler_options]:
+ try:
+ return d[optname]
+ except KeyError:
+ pass
+
raw_optname = optname
- try:
- return self.coredata.base_options[optname]
- except KeyError:
- pass
- try:
- return self.coredata.builtins[optname]
- except KeyError:
- pass
- try:
- return self.coredata.compiler_options[optname]
- except KeyError:
- pass
- if not coredata.is_builtin_option(optname) and self.is_subproject():
+ if self.is_subproject():
optname = self.subproject + ':' + optname
+
try:
opt = self.coredata.user_options[optname]
if opt.yielding and ':' in optname and raw_optname in self.coredata.user_options:
@@ -2318,11 +2371,7 @@ external dependencies (including libraries) must go to "dependencies".''')
return opt
except KeyError:
pass
- # Some base options are not defined in some environments, return the default value.
- try:
- return compilers.base_options[optname]
- except KeyError:
- pass
+
raise InterpreterException('Tried to access unknown option "%s".' % optname)
@stringArgs
@@ -2810,6 +2859,13 @@ external dependencies (including libraries) must go to "dependencies".''')
def get_subproject_dep(self, name, dirname, varname, required):
try:
+ subproject = self.subprojects[dirname]
+ if not subproject.found():
+ if not required:
+ return DependencyHolder(NotFoundDependency(self.environment), self.subproject)
+
+ raise DependencyException('Subproject %s was not found.' % (name))
+
dep = self.subprojects[dirname].get_variable_method([varname], {})
except InvalidArguments as e:
if required:
@@ -2831,9 +2887,12 @@ external dependencies (including libraries) must go to "dependencies".''')
dep = self.get_subproject_dep(name, dirname, varname, required)
if not dep:
return False
+ if not dep.found():
+ return dep
+
found = dep.version_method([], {})
# Don't do a version check if the dependency is not found and not required
- if found == 'none' and not required:
+ if not dep.found_method([], {}) and not required:
subproj_path = os.path.join(self.subproject_dir, dirname)
mlog.log('Dependency', mlog.bold(name), 'from subproject',
mlog.bold(subproj_path), 'found:', mlog.red('NO'), '(cached)')
@@ -3658,25 +3717,45 @@ different subdirectory.
timeout_multiplier=timeout_multiplier,
env=env)
+ def get_argdict_on_crossness(self, native_dict, cross_dict, kwargs):
+ for_native = kwargs.get('native', not self.environment.is_cross_build())
+ if not isinstance(for_native, bool):
+ raise InterpreterException('Keyword native must be a boolean.')
+ if for_native:
+ return native_dict
+ else:
+ return cross_dict
+
@permittedKwargs(permitted_kwargs['add_global_arguments'])
@stringArgs
def func_add_global_arguments(self, node, args, kwargs):
- self.add_global_arguments(node, self.build.global_args, args, kwargs)
+ argdict = self.get_argdict_on_crossness(self.build.global_args,
+ self.build.cross_global_args,
+ kwargs)
+ self.add_global_arguments(node, argdict, args, kwargs)
@permittedKwargs(permitted_kwargs['add_global_link_arguments'])
@stringArgs
def func_add_global_link_arguments(self, node, args, kwargs):
- self.add_global_arguments(node, self.build.global_link_args, args, kwargs)
+ argdict = self.get_argdict_on_crossness(self.build.global_link_args,
+ self.build.cross_global_link_args,
+ kwargs)
+ self.add_global_arguments(node, argdict, args, kwargs)
@permittedKwargs(permitted_kwargs['add_project_arguments'])
@stringArgs
def func_add_project_arguments(self, node, args, kwargs):
- self.add_project_arguments(node, self.build.projects_args, args, kwargs)
+ argdict = self.get_argdict_on_crossness(self.build.projects_args,
+ self.build.cross_projects_args,
+ kwargs)
+ self.add_project_arguments(node, argdict, args, kwargs)
@permittedKwargs(permitted_kwargs['add_project_link_arguments'])
@stringArgs
def func_add_project_link_arguments(self, node, args, kwargs):
- self.add_project_arguments(node, self.build.projects_link_args, args, kwargs)
+ argdict = self.get_argdict_on_crossness(self.build.projects_link_args,
+ self.build.cross_projects_link_args, kwargs)
+ self.add_project_arguments(node, argdict, args, kwargs)
def add_global_arguments(self, node, argsdict, args, kwargs):
if self.is_subproject():
@@ -3934,7 +4013,7 @@ Try setting b_lundef to false instead.''')
# BW compatibility. This was permitted so we must support it
# for a few releases so people can transition to "correct"
# path declarations.
- if i.startswith(self.environment.get_source_dir()):
+ if os.path.normpath(i).startswith(self.environment.get_source_dir()):
mlog.warning('''Building a path to the source dir is not supported. Use a relative path instead.
This will become a hard error in the future.''')
i = os.path.relpath(i, os.path.join(self.environment.get_source_dir(), self.subdir))
diff --git a/mesonbuild/linkers.py b/mesonbuild/linkers.py
index 6e40ab4..93106b3 100644
--- a/mesonbuild/linkers.py
+++ b/mesonbuild/linkers.py
@@ -137,3 +137,52 @@ class ArmarLinker(ArLinker):
def can_linker_accept_rsp(self):
# armar cann't accept arguments using the @rsp syntax
return False
+
+class LDCLinker(StaticLinker):
+
+ def __init__(self, exelist):
+ self.exelist = exelist
+ self.id = 'ldc2'
+
+ def can_linker_accept_rsp(self):
+ return mesonlib.is_windows()
+
+ def build_rpath_args(self, build_dir, from_dir, rpath_paths, build_rpath, install_rpath):
+ return []
+
+ def get_exelist(self):
+ return self.exelist[:]
+
+ def get_std_link_args(self):
+ return ['-lib']
+
+ def get_output_args(self, target):
+ return ['-of=' + target]
+
+ def get_buildtype_linker_args(self, buildtype):
+ return []
+
+ def get_linker_always_args(self):
+ return []
+
+ def get_coverage_link_args(self):
+ return []
+
+ def get_always_args(self):
+ return []
+
+ def thread_link_flags(self, env):
+ return []
+
+ def openmp_flags(self):
+ return []
+
+ def get_option_link_args(self, options):
+ return []
+
+ @classmethod
+ def unix_args_to_native(cls, args):
+ return args[:]
+
+ def get_link_debugfile_args(self, targetfile):
+ return []
diff --git a/mesonbuild/mconf.py b/mesonbuild/mconf.py
index 513c238..2fd69b0 100644
--- a/mesonbuild/mconf.py
+++ b/mesonbuild/mconf.py
@@ -13,7 +13,6 @@
# limitations under the License.
import os
-import sys
import argparse
from . import (coredata, mesonlib, build)
@@ -172,7 +171,3 @@ def run(args):
print('Meson configurator encountered an error:')
raise e
return 0
-
-
-if __name__ == '__main__':
- sys.exit(run(sys.argv[1:]))
diff --git a/mesonbuild/mesonmain.py b/mesonbuild/mesonmain.py
index 5000965..7dddb58 100644
--- a/mesonbuild/mesonmain.py
+++ b/mesonbuild/mesonmain.py
@@ -36,7 +36,7 @@ def create_parser():
p.add_argument('-v', '--version', action='version',
version=coredata.version)
# See the mesonlib.WrapMode enum for documentation
- p.add_argument('--wrap-mode', default=WrapMode.default,
+ p.add_argument('--wrap-mode', default=None,
type=wrapmodetype, choices=WrapMode,
help='Special wrap mode to use')
p.add_argument('--profile-self', action='store_true', dest='profile',
@@ -71,18 +71,18 @@ class MesonApp:
if not os.path.exists(ndir2):
os.makedirs(ndir2)
if not stat.S_ISDIR(os.stat(ndir1).st_mode):
- raise RuntimeError('%s is not a directory' % dir1)
+ raise MesonException('%s is not a directory' % dir1)
if not stat.S_ISDIR(os.stat(ndir2).st_mode):
- raise RuntimeError('%s is not a directory' % dir2)
+ raise MesonException('%s is not a directory' % dir2)
if os.path.samefile(dir1, dir2):
- raise RuntimeError('Source and build directories must not be the same. Create a pristine build directory.')
+ raise MesonException('Source and build directories must not be the same. Create a pristine build directory.')
if self.has_build_file(ndir1):
if self.has_build_file(ndir2):
- raise RuntimeError('Both directories contain a build file %s.' % environment.build_filename)
+ raise MesonException('Both directories contain a build file %s.' % environment.build_filename)
return ndir1, ndir2
if self.has_build_file(ndir2):
return ndir2, ndir1
- raise RuntimeError('Neither directory contains a build file %s.' % environment.build_filename)
+ raise MesonException('Neither directory contains a build file %s.' % environment.build_filename)
def validate_dirs(self, dir1, dir2, handshake):
(src_dir, build_dir) = self.validate_core_dirs(dir1, dir2)
diff --git a/mesonbuild/minstall.py b/mesonbuild/minstall.py
index f08a6b3..1d72179 100644
--- a/mesonbuild/minstall.py
+++ b/mesonbuild/minstall.py
@@ -27,6 +27,10 @@ except ImportError:
# This is only used for pkexec which is not, so this is fine.
main_file = None
+symlink_warning = '''Warning: trying to copy a symlink that points to a file. This will copy the file,
+but this will be changed in a future version of Meson to copy the symlink as is. Please update your
+build definitions so that it will not break when the change happens.'''
+
selinux_updates = []
def buildparser():
@@ -69,9 +73,9 @@ class DirMaker:
for d in self.dirs:
append_to_log(self.lf, d)
-def is_executable(path):
+def is_executable(path, follow_symlinks=False):
'''Checks whether any of the "x" bits are set in the source file mode.'''
- return bool(os.stat(path).st_mode & 0o111)
+ return bool(os.stat(path, follow_symlinks=follow_symlinks).st_mode & 0o111)
def append_to_log(lf, line):
lf.write(line)
@@ -79,13 +83,38 @@ def append_to_log(lf, line):
lf.write('\n')
lf.flush()
+def set_chown(path, user=None, group=None, dir_fd=None, follow_symlinks=True):
+ # shutil.chown will call os.chown without passing all the parameters
+ # and particularly follow_symlinks, thus we replace it temporary
+ # with a lambda with all the parameters so that follow_symlinks will
+ # be actually passed properly.
+ # Not nice, but better than actually rewriting shutil.chown until
+ # this python bug is fixed: https://bugs.python.org/issue18108
+ real_os_chown = os.chown
+ try:
+ os.chown = lambda p, u, g: real_os_chown(p, u, g,
+ dir_fd=dir_fd,
+ follow_symlinks=follow_symlinks)
+ shutil.chown(path, user, group)
+ except:
+ raise
+ finally:
+ os.chown = real_os_chown
+
+def set_chmod(path, mode, dir_fd=None, follow_symlinks=True):
+ try:
+ os.chmod(path, mode, dir_fd=dir_fd, follow_symlinks=follow_symlinks)
+ except (NotImplementedError, OSError, SystemError) as e:
+ if not os.path.islink(path):
+ os.chmod(path, mode, dir_fd=dir_fd)
+
def sanitize_permissions(path, umask):
if umask is None:
return
- new_perms = 0o777 if is_executable(path) else 0o666
+ new_perms = 0o777 if is_executable(path, follow_symlinks=False) else 0o666
new_perms &= ~umask
try:
- os.chmod(path, new_perms)
+ set_chmod(path, new_perms, follow_symlinks=False)
except PermissionError as e:
msg = '{!r}: Unable to set permissions {!r}: {}, ignoring...'
print(msg.format(path, new_perms, e.strerror))
@@ -98,7 +127,7 @@ def set_mode(path, mode, default_umask):
# No chown() on Windows, and must set one of owner/group
if not is_windows() and (mode.owner or mode.group) is not None:
try:
- shutil.chown(path, mode.owner, mode.group)
+ set_chown(path, mode.owner, mode.group, follow_symlinks=False)
except PermissionError as e:
msg = '{!r}: Unable to set owner {!r} and group {!r}: {}, ignoring...'
print(msg.format(path, mode.owner, mode.group, e.strerror))
@@ -116,7 +145,7 @@ def set_mode(path, mode, default_umask):
# NOTE: On Windows you can set read/write perms; the rest are ignored
if mode.perms_s is not None:
try:
- os.chmod(path, mode.perms)
+ set_chmod(path, mode.perms, follow_symlinks=False)
except PermissionError as e:
msg = '{!r}: Unable to set permissions {!r}: {}, ignoring...'
print(msg.format(path, mode.perms_s, e.strerror))
@@ -217,7 +246,15 @@ class Installer:
os.remove(to_file)
print('Installing %s to %s' % (from_file, outdir))
if os.path.islink(from_file):
- shutil.copy(from_file, outdir, follow_symlinks=False)
+ if not os.path.exists(from_file):
+ # Dangling symlink. Replicate as is.
+ shutil.copy(from_file, outdir, follow_symlinks=False)
+ else:
+ # Remove this entire branch when changing the behaviour to duplicate
+ # symlinks rather than copying what they point to.
+ print(symlink_warning)
+ shutil.copyfile(from_file, to_file)
+ shutil.copystat(from_file, to_file)
else:
shutil.copyfile(from_file, to_file)
shutil.copystat(from_file, to_file)
diff --git a/mesonbuild/mintro.py b/mesonbuild/mintro.py
index 94bc00b..188459a 100644
--- a/mesonbuild/mintro.py
+++ b/mesonbuild/mintro.py
@@ -249,6 +249,3 @@ def run(args):
print('No command specified')
return 1
return 0
-
-if __name__ == '__main__':
- sys.exit(run(sys.argv[1:]))
diff --git a/mesonbuild/mlog.py b/mesonbuild/mlog.py
index 1654824..b8d3ccc 100644
--- a/mesonbuild/mlog.py
+++ b/mesonbuild/mlog.py
@@ -59,9 +59,12 @@ def set_timestamp_start(start):
def shutdown():
global log_file
if log_file is not None:
+ path = log_file.name
exception_around_goer = log_file
log_file = None
exception_around_goer.close()
+ return path
+ return None
class AnsiDecorator:
plain_code = "\033[0m"
diff --git a/mesonbuild/modules/windows.py b/mesonbuild/modules/windows.py
index 19f3e2b..87209d6 100644
--- a/mesonbuild/modules/windows.py
+++ b/mesonbuild/modules/windows.py
@@ -88,35 +88,38 @@ class WindowsModule(ExtensionModule):
if hasattr(src, 'held_object'):
src = src.held_object
- res_kwargs = {
- 'output': '@BASENAME@.' + suffix,
- 'input': [src],
- 'command': [rescomp] + res_args,
- 'depend_files': wrc_depend_files,
- 'depends': wrc_depends,
- }
-
if isinstance(src, str):
- name = 'file {!r}'.format(os.path.join(state.subdir, src))
+ name_format = 'file {!r}'
+ name = os.path.join(state.subdir, src)
elif isinstance(src, mesonlib.File):
- name = 'file {!r}'.format(src.relative_name())
+ name_format = 'file {!r}'
+ name = src.relative_name()
elif isinstance(src, build.CustomTarget):
if len(src.get_outputs()) > 1:
raise MesonException('windows.compile_resources does not accept custom targets with more than 1 output.')
- name = 'target {!r}'.format(src.get_id())
+ name_format = 'target {!r}'
+ name = src.get_id()
else:
raise MesonException('Unexpected source type {!r}. windows.compile_resources accepts only strings, files, custom targets, and lists thereof.'.format(src))
# Path separators are not allowed in target names
name = name.replace('/', '_').replace('\\', '_')
+ res_kwargs = {
+ 'output': name + '_@BASENAME@.' + suffix,
+ 'input': [src],
+ 'command': [rescomp] + res_args,
+ 'depend_files': wrc_depend_files,
+ 'depends': wrc_depends,
+ }
+
# instruct binutils windres to generate a preprocessor depfile
if comp.id != 'msvc':
res_kwargs['depfile'] = res_kwargs['output'] + '.d'
res_kwargs['command'] += ['--preprocessor-arg=-MD', '--preprocessor-arg=-MQ@OUTPUT@', '--preprocessor-arg=-MF@DEPFILE@']
- res_targets.append(build.CustomTarget('Windows resource for ' + name, state.subdir, state.subproject, res_kwargs))
+ res_targets.append(build.CustomTarget('Windows resource for ' + name_format.format(name), state.subdir, state.subproject, res_kwargs))
add_target(args)
diff --git a/mesonbuild/scripts/dist.py b/mesonbuild/scripts/dist.py
index cb3bbe2..6fa10ff 100644
--- a/mesonbuild/scripts/dist.py
+++ b/mesonbuild/scripts/dist.py
@@ -15,6 +15,7 @@
import lzma
import os
+import sys
import shutil
import subprocess
import pickle
@@ -23,6 +24,7 @@ import tarfile, zipfile
import tempfile
from glob import glob
from mesonbuild.environment import detect_ninja
+from mesonbuild.dependencies import ExternalProgram
from mesonbuild.mesonlib import windows_proof_rmtree
def create_hash(fname):
@@ -73,7 +75,23 @@ def process_submodules(dirname):
del_gitfiles(os.path.join(dirname, v))
-def create_dist_git(dist_name, src_root, bld_root, dist_sub):
+def run_dist_scripts(dist_root, dist_scripts):
+ assert(os.path.isabs(dist_root))
+ env = os.environ.copy()
+ env['MESON_DIST_ROOT'] = dist_root
+ for d in dist_scripts:
+ print('Processing dist script %s.' % d)
+ ddir, dname = os.path.split(d)
+ ep = ExternalProgram(dname,
+ search_dir=os.path.join(dist_root, ddir),
+ silent=True)
+ if not ep.found():
+ sys.exit('Script %s could not be found in dist directory.' % d)
+ pc = subprocess.run(ep.command, env=env)
+ if pc.returncode != 0:
+ sys.exit('Dist script errored out.')
+
+def create_dist_git(dist_name, src_root, bld_root, dist_sub, dist_scripts):
distdir = os.path.join(dist_sub, dist_name)
if os.path.exists(distdir):
shutil.rmtree(distdir)
@@ -81,6 +99,7 @@ def create_dist_git(dist_name, src_root, bld_root, dist_sub):
subprocess.check_call(['git', 'clone', '--shared', src_root, distdir])
process_submodules(distdir)
del_gitfiles(distdir)
+ run_dist_scripts(distdir, dist_scripts)
xzname = distdir + '.tar.xz'
# Should use shutil but it got xz support only in 3.5.
with tarfile.open(xzname, 'w:xz') as tf:
@@ -92,12 +111,14 @@ def create_dist_git(dist_name, src_root, bld_root, dist_sub):
return (xzname, )
-def create_dist_hg(dist_name, src_root, bld_root, dist_sub):
+def create_dist_hg(dist_name, src_root, bld_root, dist_sub, dist_scripts):
os.makedirs(dist_sub, exist_ok=True)
tarname = os.path.join(dist_sub, dist_name + '.tar')
xzname = tarname + '.xz'
subprocess.check_call(['hg', 'archive', '-R', src_root, '-S', '-t', 'tar', tarname])
+ if len(dist_scripts) > 0:
+ print('WARNING: dist scripts not supported in Mercurial projects.')
with lzma.open(xzname, 'wb') as xf, open(tarname, 'rb') as tf:
shutil.copyfileobj(tf, xf)
os.unlink(tarname)
@@ -152,9 +173,9 @@ def run(args):
dist_name = build.project_name + '-' + build.project_version
if os.path.isdir(os.path.join(src_root, '.git')):
- names = create_dist_git(dist_name, src_root, bld_root, dist_sub)
+ names = create_dist_git(dist_name, src_root, bld_root, dist_sub, build.dist_scripts)
elif os.path.isdir(os.path.join(src_root, '.hg')):
- names = create_dist_hg(dist_name, src_root, bld_root, dist_sub)
+ names = create_dist_hg(dist_name, src_root, bld_root, dist_sub, build.dist_scripts)
else:
print('Dist currently only works with Git or Mercurial repos.')
return 1
diff --git a/mesonbuild/wrap/__init__.py b/mesonbuild/wrap/__init__.py
index 6e2bc83..b792dfa 100644
--- a/mesonbuild/wrap/__init__.py
+++ b/mesonbuild/wrap/__init__.py
@@ -33,4 +33,11 @@ from enum import Enum
# Note that these options do not affect subprojects that
# are git submodules since those are only usable in git
# repositories, and you almost always want to download them.
-WrapMode = Enum('WrapMode', 'default nofallback nodownload forcefallback')
+class WrapMode(Enum):
+ default = 1
+ nofallback = 2
+ nodownload = 3
+ forcefallback = 4
+
+ def __str__(self):
+ return self.name
diff --git a/mesonbuild/wrap/wrap.py b/mesonbuild/wrap/wrap.py
index a3f8ab1..412097c 100644
--- a/mesonbuild/wrap/wrap.py
+++ b/mesonbuild/wrap/wrap.py
@@ -29,6 +29,7 @@ except ImportError:
has_ssl = False
API_ROOT = 'http://wrapdb.mesonbuild.com/v1/'
+req_timeout = 600.0
ssl_warning_printed = False
def build_ssl_context():
@@ -51,7 +52,7 @@ def open_wrapdburl(urlstring):
global ssl_warning_printed
if has_ssl:
try:
- return urllib.request.urlopen(urlstring)# , context=build_ssl_context())
+ return urllib.request.urlopen(urlstring, timeout=req_timeout)# , context=build_ssl_context())
except urllib.error.URLError:
if not ssl_warning_printed:
print('SSL connection failed. Falling back to unencrypted connections.')
@@ -64,7 +65,7 @@ def open_wrapdburl(urlstring):
# certificate is not known.
if urlstring.startswith('https'):
urlstring = 'http' + urlstring[5:]
- return urllib.request.urlopen(urlstring)
+ return urllib.request.urlopen(urlstring, timeout=req_timeout)
class PackageDefinition:
@@ -270,7 +271,7 @@ class Resolver:
if url.startswith('https://wrapdb.mesonbuild.com'):
resp = open_wrapdburl(url)
else:
- resp = urllib.request.urlopen(url)
+ resp = urllib.request.urlopen(url, timeout=req_timeout)
with contextlib.closing(resp) as resp:
try:
dlsize = int(resp.info()['Content-Length'])
diff --git a/mesonbuild/wrap/wraptool.py b/mesonbuild/wrap/wraptool.py
index 570e691..364452d 100644
--- a/mesonbuild/wrap/wraptool.py
+++ b/mesonbuild/wrap/wraptool.py
@@ -213,6 +213,4 @@ def run(args):
add_arguments(parser)
options = parser.parse_args(args)
options.wrap_func(options)
-
-if __name__ == '__main__':
- sys.exit(run(sys.argv[1:]))
+ return 0
diff --git a/run_meson_command_tests.py b/run_meson_command_tests.py
index 4a05b94..fd33856 100755
--- a/run_meson_command_tests.py
+++ b/run_meson_command_tests.py
@@ -176,7 +176,7 @@ class CommandTests(unittest.TestCase):
builddir = str(self.tmpdir / 'build4')
(bindir / 'meson').rename(bindir / 'meson.real')
wrapper = (bindir / 'meson')
- with open(wrapper, 'w') as f:
+ with open(str(wrapper), 'w') as f:
f.write('#!/bin/sh\n\nmeson.real "$@"')
wrapper.chmod(0o755)
meson_setup = [str(wrapper), 'setup']
diff --git a/run_project_tests.py b/run_project_tests.py
index e390aaf..a373aa0 100755
--- a/run_project_tests.py
+++ b/run_project_tests.py
@@ -303,7 +303,7 @@ def pass_libdir_to_test(dirname):
return False
if '38 libdir must be inside prefix' in dirname:
return False
- if '199 install_mode' in dirname:
+ if '196 install_mode' in dirname:
return False
return True
@@ -653,13 +653,15 @@ def check_format():
'.py',
'.swift',
'.build',
+ '.md',
}
for (root, _, files) in os.walk('.'):
if '.dub' in root: # external deps are here
continue
for fname in files:
if os.path.splitext(fname)[1].lower() in check_suffixes:
- if os.path.split(fname)[1] == 'sitemap.txt':
+ bn = os.path.basename(fname)
+ if bn == 'sitemap.txt' or bn == 'meson-test-run.txt':
continue
fullname = os.path.join(root, fname)
check_file(fullname)
diff --git a/run_tests.py b/run_tests.py
index 6e441d3..a5fd7a5 100755
--- a/run_tests.py
+++ b/run_tests.py
@@ -31,7 +31,32 @@ from mesonbuild import mesonlib
from mesonbuild import mesonmain
from mesonbuild import mtest
from mesonbuild import mlog
-from mesonbuild.environment import detect_ninja
+from mesonbuild.environment import Environment, detect_ninja
+
+
+# Fake classes and objects for mocking
+class FakeBuild:
+ def __init__(self, env):
+ self.environment = env
+
+class FakeCompilerOptions:
+ def __init__(self):
+ self.value = []
+
+def get_fake_options(prefix):
+ import argparse
+ opts = argparse.Namespace()
+ opts.cross_file = None
+ opts.wrap_mode = None
+ opts.prefix = prefix
+ opts.cmd_line_options = {}
+ return opts
+
+def get_fake_env(sdir, bdir, prefix):
+ env = Environment(sdir, bdir, get_fake_options(prefix))
+ env.coredata.compiler_options['c_args'] = FakeCompilerOptions()
+ return env
+
Backend = Enum('Backend', 'ninja vs xcode')
@@ -148,15 +173,6 @@ def ensure_backend_detects_changes(backend):
if backend is Backend.ninja:
time.sleep(1)
-def get_fake_options(prefix):
- import argparse
- opts = argparse.Namespace()
- opts.cross_file = None
- opts.wrap_mode = None
- opts.prefix = prefix
- opts.cmd_line_options = {}
- return opts
-
def run_mtest_inprocess(commandlist):
old_stdout = sys.stdout
sys.stdout = mystdout = StringIO()
diff --git a/run_unittests.py b/run_unittests.py
index ab5d4b7..16eee3e 100755
--- a/run_unittests.py
+++ b/run_unittests.py
@@ -41,24 +41,16 @@ from mesonbuild.mesonlib import (
windows_proof_rmtree, python_command, version_compare,
grab_leading_numbers, BuildDirLock
)
-from mesonbuild.environment import Environment, detect_ninja
+from mesonbuild.environment import detect_ninja
from mesonbuild.mesonlib import MesonException, EnvironmentException
from mesonbuild.dependencies import PkgConfigDependency, ExternalProgram
import mesonbuild.modules.pkgconfig
-from run_tests import exe_suffix, get_fake_options, get_meson_script
+from run_tests import exe_suffix, get_fake_env, get_meson_script
from run_tests import get_builddir_target_args, get_backend_commands, Backend
from run_tests import ensure_backend_detects_changes, run_configure_inprocess
from run_tests import run_mtest_inprocess
-
-# Fake classes for mocking
-class FakeBuild:
- def __init__(self, env):
- self.environment = env
-
-class FakeCompilerOptions:
- def __init__(self):
- self.value = []
+from run_tests import FakeBuild, FakeCompilerOptions
def get_dynamic_section_entry(fname, entry):
if is_cygwin() or is_osx():
@@ -93,6 +85,17 @@ def is_ci():
return True
return False
+def _git_init(project_dir):
+ subprocess.check_call(['git', 'init'], cwd=project_dir, stdout=subprocess.DEVNULL)
+ subprocess.check_call(['git', 'config',
+ 'user.name', 'Author Person'], cwd=project_dir)
+ subprocess.check_call(['git', 'config',
+ 'user.email', 'teh_coderz@example.com'], cwd=project_dir)
+ subprocess.check_call('git add *', cwd=project_dir, shell=True,
+ stdout=subprocess.DEVNULL)
+ subprocess.check_call(['git', 'commit', '-a', '-m', 'I am a project'], cwd=project_dir,
+ stdout=subprocess.DEVNULL)
+
def skipIfNoPkgconfig(f):
'''
Skip this test if no pkg-config is found, unless we're on Travis or
@@ -176,19 +179,19 @@ class InternalTests(unittest.TestCase):
def test_compiler_args_class(self):
cargsfunc = mesonbuild.compilers.CompilerArgs
- c = mesonbuild.compilers.CCompiler([], 'fake', False)
+ cc = mesonbuild.compilers.CCompiler([], 'fake', False)
# Test that bad initialization fails
self.assertRaises(TypeError, cargsfunc, [])
self.assertRaises(TypeError, cargsfunc, [], [])
- self.assertRaises(TypeError, cargsfunc, c, [], [])
+ self.assertRaises(TypeError, cargsfunc, cc, [], [])
# Test that empty initialization works
- a = cargsfunc(c)
+ a = cargsfunc(cc)
self.assertEqual(a, [])
# Test that list initialization works
- a = cargsfunc(['-I.', '-I..'], c)
+ a = cargsfunc(['-I.', '-I..'], cc)
self.assertEqual(a, ['-I.', '-I..'])
# Test that there is no de-dup on initialization
- self.assertEqual(cargsfunc(['-I.', '-I.'], c), ['-I.', '-I.'])
+ self.assertEqual(cargsfunc(['-I.', '-I.'], cc), ['-I.', '-I.'])
## Test that appending works
a.append('-I..')
@@ -234,7 +237,7 @@ class InternalTests(unittest.TestCase):
self.assertEqual(a, ['-Ibar', '-Ifoo', '-Ibaz', '-I..', '-I.', '-Ldir', '-Lbah', '-Werror', '-O3', '-O2', '-Wall'])
## Test that adding libraries works
- l = cargsfunc(c, ['-Lfoodir', '-lfoo'])
+ l = cargsfunc(cc, ['-Lfoodir', '-lfoo'])
self.assertEqual(l, ['-Lfoodir', '-lfoo'])
# Adding a library and a libpath appends both correctly
l += ['-Lbardir', '-lbar']
@@ -244,7 +247,7 @@ class InternalTests(unittest.TestCase):
self.assertEqual(l, ['-Lbardir', '-Lfoodir', '-lfoo', '-lbar'])
## Test that 'direct' append and extend works
- l = cargsfunc(c, ['-Lfoodir', '-lfoo'])
+ l = cargsfunc(cc, ['-Lfoodir', '-lfoo'])
self.assertEqual(l, ['-Lfoodir', '-lfoo'])
# Direct-adding a library and a libpath appends both correctly
l.extend_direct(['-Lbardir', '-lbar'])
@@ -259,6 +262,32 @@ class InternalTests(unittest.TestCase):
l.append_direct('/libbaz.a')
self.assertEqual(l, ['-Lfoodir', '-lfoo', '-Lbardir', '-lbar', '-lbar', '/libbaz.a'])
+ def test_compiler_args_class_gnuld(self):
+ cargsfunc = mesonbuild.compilers.CompilerArgs
+ ## Test --start/end-group
+ gcc = mesonbuild.compilers.GnuCCompiler([], 'fake', 0, False)
+ ## Test that 'direct' append and extend works
+ l = cargsfunc(gcc, ['-Lfoodir', '-lfoo'])
+ self.assertEqual(l.to_native(copy=True), ['-Lfoodir', '-Wl,--start-group', '-lfoo', '-Wl,--end-group'])
+ # Direct-adding a library and a libpath appends both correctly
+ l.extend_direct(['-Lbardir', '-lbar'])
+ self.assertEqual(l.to_native(copy=True), ['-Lfoodir', '-Wl,--start-group', '-lfoo', '-Lbardir', '-lbar', '-Wl,--end-group'])
+ # Direct-adding the same library again still adds it
+ l.append_direct('-lbar')
+ self.assertEqual(l.to_native(copy=True), ['-Lfoodir', '-Wl,--start-group', '-lfoo', '-Lbardir', '-lbar', '-lbar', '-Wl,--end-group'])
+ # Direct-adding with absolute path deduplicates
+ l.append_direct('/libbaz.a')
+ self.assertEqual(l.to_native(copy=True), ['-Lfoodir', '-Wl,--start-group', '-lfoo', '-Lbardir', '-lbar', '-lbar', '/libbaz.a', '-Wl,--end-group'])
+ # Adding libbaz again does nothing
+ l.append_direct('/libbaz.a')
+ self.assertEqual(l.to_native(copy=True), ['-Lfoodir', '-Wl,--start-group', '-lfoo', '-Lbardir', '-lbar', '-lbar', '/libbaz.a', '-Wl,--end-group'])
+ # Adding a non-library argument doesn't include it in the group
+ l += ['-Lfoo', '-Wl,--export-dynamic']
+ self.assertEqual(l.to_native(copy=True), ['-Lfoo', '-Lfoodir', '-Wl,--start-group', '-lfoo', '-Lbardir', '-lbar', '-lbar', '/libbaz.a', '-Wl,--end-group', '-Wl,--export-dynamic'])
+ # -Wl,-lfoo is detected as a library and gets added to the group
+ l.append('-Wl,-ldl')
+ self.assertEqual(l.to_native(copy=True), ['-Lfoo', '-Lfoodir', '-Wl,--start-group', '-lfoo', '-Lbardir', '-lbar', '-lbar', '/libbaz.a', '-Wl,--export-dynamic', '-Wl,-ldl', '-Wl,--end-group'])
+
def test_string_templates_substitution(self):
dictfunc = mesonbuild.mesonlib.get_filenames_templates_dict
substfunc = mesonbuild.mesonlib.substitute_values
@@ -563,7 +592,7 @@ class InternalTests(unittest.TestCase):
'windows-mingw': {'shared': ['lib{}.dll.a', 'lib{}.lib', 'lib{}.dll',
'{}.dll.a', '{}.lib', '{}.dll'],
'static': msvc_static}}
- env = Environment('', '', get_fake_options(''))
+ env = get_fake_env('', '', '')
cc = env.detect_c_compiler(False)
if is_osx():
self._test_all_naming(cc, env, patterns, 'darwin')
@@ -606,7 +635,7 @@ class InternalTests(unittest.TestCase):
'''
with tempfile.TemporaryDirectory() as tmpdir:
pkgbin = ExternalProgram('pkg-config', command=['pkg-config'], silent=True)
- env = Environment('', '', get_fake_options(''))
+ env = get_fake_env('', '', '')
compiler = env.detect_c_compiler(False)
env.coredata.compilers = {'c': compiler}
env.coredata.compiler_options['c_link_args'] = FakeCompilerOptions()
@@ -630,7 +659,7 @@ class InternalTests(unittest.TestCase):
if '--libs' not in args:
return 0, ''
if args[0] == 'foo':
- return 0, '-L{} -lfoo -L{} -lbar'.format(p1.as_posix(), p2.as_posix())
+ return 0, '-L{} -lfoo -L{} -lbar'.format(p2.as_posix(), p1.as_posix())
if args[0] == 'bar':
return 0, '-L{} -lbar'.format(p2.as_posix())
if args[0] == 'internal':
@@ -658,6 +687,9 @@ class InternalTests(unittest.TestCase):
# Test ends
PkgConfigDependency._call_pkgbin = old_call
PkgConfigDependency.check_pkgconfig = old_check
+ # Reset dependency class to ensure that in-process configure doesn't mess up
+ PkgConfigDependency.pkgbin_cache = {}
+ PkgConfigDependency.class_pkgbin = None
@unittest.skipIf(is_tarball(), 'Skipping because this is a tarball release')
@@ -669,12 +701,22 @@ class DataTests(unittest.TestCase):
self.assertTrue(snippet_dir.is_dir())
for f in snippet_dir.glob('*'):
self.assertTrue(f.is_file())
+ if f.parts[-1].endswith('~'):
+ continue
if f.suffix == '.md':
+ in_code_block = False
with f.open() as snippet:
for line in snippet:
+ if line.startswith(' '):
+ continue
+ if line.startswith('```'):
+ in_code_block = not in_code_block
+ if in_code_block:
+ continue
m = re.match(hashcounter, line)
if m:
self.assertEqual(len(m.group(0)), 2, 'All headings in snippets must have two hash symbols: ' + f.name)
+ self.assertFalse(in_code_block, 'Unclosed code block.')
else:
if f.name != 'add_release_note_snippets_here':
self.assertTrue(False, 'A file without .md suffix in snippets dir: ' + f.name)
@@ -689,7 +731,7 @@ class DataTests(unittest.TestCase):
with open('docs/markdown/Builtin-options.md') as f:
md = f.read()
self.assertIsNotNone(md)
- env = Environment('', '', get_fake_options(''))
+ env = get_fake_env('', '', '')
# FIXME: Support other compilers
cc = env.detect_c_compiler(False)
cpp = env.detect_cpp_compiler(False)
@@ -735,7 +777,7 @@ class DataTests(unittest.TestCase):
Ensure that syntax highlighting files were updated for new functions in
the global namespace in build files.
'''
- env = Environment('', '', get_fake_options(''))
+ env = get_fake_env('', '', '')
interp = Interpreter(FakeBuild(env), mock=True)
with open('data/syntax-highlighting/vim/syntax/meson.vim') as f:
res = re.search(r'syn keyword mesonBuiltin(\s+\\\s\w+)+', f.read(), re.MULTILINE)
@@ -1030,7 +1072,7 @@ class AllPlatformTests(BasePlatformTests):
Can't be an ordinary test because we pass --prefix to meson there.
https://github.com/mesonbuild/meson/issues/1349
'''
- testdir = os.path.join(self.common_test_dir, '94 default options')
+ testdir = os.path.join(self.common_test_dir, '91 default options')
self.init(testdir, default_args=False)
opts = self.introspect('--buildoptions')
for opt in opts:
@@ -1045,7 +1087,7 @@ class AllPlatformTests(BasePlatformTests):
https://github.com/mesonbuild/meson/issues/1341
https://github.com/mesonbuild/meson/issues/1345
'''
- testdir = os.path.join(self.common_test_dir, '94 default options')
+ testdir = os.path.join(self.common_test_dir, '91 default options')
prefix = '/someabs'
libdir = 'libdir'
extra_args = ['--prefix=' + prefix,
@@ -1127,7 +1169,7 @@ class AllPlatformTests(BasePlatformTests):
dependent defaults for other options, and that those defaults can
be overridden in default_options or by the command line.
'''
- testdir = os.path.join(self.common_test_dir, '172 default options prefix dependent defaults')
+ testdir = os.path.join(self.common_test_dir, '169 default options prefix dependent defaults')
expected = {
'':
{'prefix': '/usr',
@@ -1169,7 +1211,7 @@ class AllPlatformTests(BasePlatformTests):
https://github.com/mesonbuild/meson/issues/1355
'''
testdir = os.path.join(self.common_test_dir, '3 static')
- env = Environment(testdir, self.builddir, get_fake_options(self.prefix))
+ env = get_fake_env(testdir, self.builddir, self.prefix)
cc = env.detect_c_compiler(False)
static_linker = env.detect_static_linker(cc)
if is_windows():
@@ -1222,7 +1264,7 @@ class AllPlatformTests(BasePlatformTests):
Test that run_targets are run from the correct directory
https://github.com/mesonbuild/meson/issues/957
'''
- testdir = os.path.join(self.common_test_dir, '58 run target')
+ testdir = os.path.join(self.common_test_dir, '55 run target')
self.init(testdir)
self.run_target('check_exists')
@@ -1368,7 +1410,7 @@ class AllPlatformTests(BasePlatformTests):
self.assertFailedTestCount(1, self.mtest_command + ['--no-suite', 'subprjfail:fail', '--no-suite', 'subprjmix:fail'])
def test_build_by_default(self):
- testdir = os.path.join(self.common_test_dir, '137 build by default')
+ testdir = os.path.join(self.common_test_dir, '134 build by default')
self.init(testdir)
self.build()
genfile1 = os.path.join(self.builddir, 'generated1.dat')
@@ -1385,7 +1427,7 @@ class AllPlatformTests(BasePlatformTests):
self.assertPathExists(exe2)
def test_internal_include_order(self):
- testdir = os.path.join(self.common_test_dir, '138 include order')
+ testdir = os.path.join(self.common_test_dir, '135 include order')
self.init(testdir)
execmd = fxecmd = None
for cmd in self.get_compdb():
@@ -1456,7 +1498,7 @@ class AllPlatformTests(BasePlatformTests):
if not is_windows():
langs += [('objc', 'OBJC'), ('objcpp', 'OBJCXX')]
testdir = os.path.join(self.unit_test_dir, '5 compiler detection')
- env = Environment(testdir, self.builddir, get_fake_options(self.prefix))
+ env = get_fake_env(testdir, self.builddir, self.prefix)
for lang, evar in langs:
# Detect with evar and do sanity checks on that
if evar in os.environ:
@@ -1556,9 +1598,9 @@ class AllPlatformTests(BasePlatformTests):
self.assertEqual(cc.is_64, wcc.is_64)
def test_always_prefer_c_compiler_for_asm(self):
- testdir = os.path.join(self.common_test_dir, '141 c cpp and asm')
+ testdir = os.path.join(self.common_test_dir, '138 c cpp and asm')
# Skip if building with MSVC
- env = Environment(testdir, self.builddir, get_fake_options(self.prefix))
+ env = get_fake_env(testdir, self.builddir, self.prefix)
if env.detect_c_compiler(False).get_id() == 'msvc':
raise unittest.SkipTest('MSVC can\'t compile assembly')
self.init(testdir)
@@ -1625,7 +1667,7 @@ class AllPlatformTests(BasePlatformTests):
'''
Test that preprocessor compiler checks read CPPFLAGS but not CFLAGS
'''
- testdir = os.path.join(self.common_test_dir, '140 get define')
+ testdir = os.path.join(self.common_test_dir, '137 get define')
define = 'MESON_TEST_DEFINE_VALUE'
# NOTE: this list can't have \n, ' or "
# \n is never substituted by the GNU pre-processor via a -D define
@@ -1638,7 +1680,7 @@ class AllPlatformTests(BasePlatformTests):
self.init(testdir, ['-D{}={}'.format(define, value)])
def test_custom_target_exe_data_deterministic(self):
- testdir = os.path.join(self.common_test_dir, '117 custom target capture')
+ testdir = os.path.join(self.common_test_dir, '114 custom target capture')
self.init(testdir)
meson_exe_dat1 = glob(os.path.join(self.privatedir, 'meson_exe*.dat'))
self.wipe()
@@ -1652,7 +1694,7 @@ class AllPlatformTests(BasePlatformTests):
changes to unused files (as determined by the dependency file) in the
input files list.
'''
- testdir = os.path.join(self.common_test_dir, '22 header in file list')
+ testdir = os.path.join(self.common_test_dir, '20 header in file list')
self.init(testdir)
self.build()
# Immediately rebuilding should not do anything
@@ -1667,7 +1709,7 @@ class AllPlatformTests(BasePlatformTests):
ExternalProgram, and any File objects on the command-line cause
a rebuild.
'''
- testdir = os.path.join(self.common_test_dir, '64 custom header generator')
+ testdir = os.path.join(self.common_test_dir, '61 custom header generator')
self.init(testdir)
self.build()
# Immediately rebuilding should not do anything
@@ -1692,19 +1734,8 @@ class AllPlatformTests(BasePlatformTests):
if not shutil.which('git'):
raise unittest.SkipTest('Git not found')
- def git_init(project_dir):
- subprocess.check_call(['git', 'init'], cwd=project_dir, stdout=subprocess.DEVNULL)
- subprocess.check_call(['git', 'config',
- 'user.name', 'Author Person'], cwd=project_dir)
- subprocess.check_call(['git', 'config',
- 'user.email', 'teh_coderz@example.com'], cwd=project_dir)
- subprocess.check_call(['git', 'add', 'meson.build', 'distexe.c'], cwd=project_dir,
- stdout=subprocess.DEVNULL)
- subprocess.check_call(['git', 'commit', '-a', '-m', 'I am a project'], cwd=project_dir,
- stdout=subprocess.DEVNULL)
-
try:
- self.dist_impl(git_init)
+ self.dist_impl(_git_init)
except PermissionError:
# When run under Windows CI, something (virus scanner?)
# holds on to the git files so cleaning up the dir
@@ -1733,6 +1764,24 @@ class AllPlatformTests(BasePlatformTests):
# fails sometimes.
pass
+ def test_dist_git_script(self):
+ if not shutil.which('git'):
+ raise unittest.SkipTest('Git not found')
+
+ try:
+ with tempfile.TemporaryDirectory() as tmpdir:
+ project_dir = os.path.join(tmpdir, 'a')
+ shutil.copytree(os.path.join(self.unit_test_dir, '35 dist script'),
+ project_dir)
+ _git_init(project_dir)
+ self.init(project_dir)
+ self.build('dist')
+ except PermissionError:
+ # When run under Windows CI, something (virus scanner?)
+ # holds on to the git files so cleaning up the dir
+ # fails sometimes.
+ pass
+
def dist_impl(self, vcs_init):
# Create this on the fly because having rogue .git directories inside
# the source tree leads to all kinds of trouble.
@@ -1766,7 +1815,7 @@ int main(int argc, char **argv) {
'''
if is_windows() or is_cygwin():
raise unittest.SkipTest('Windows PE/COFF binaries do not use RPATH')
- testdir = os.path.join(self.common_test_dir, '46 library chain')
+ testdir = os.path.join(self.common_test_dir, '43 library chain')
self.init(testdir)
self.build()
for each in ('prog', 'subdir/liblib1.so', ):
@@ -1802,10 +1851,10 @@ int main(int argc, char **argv) {
def test_all_forbidden_targets_tested(self):
'''
- Test that all forbidden targets are tested in the '158 reserved targets'
+ Test that all forbidden targets are tested in the '155 reserved targets'
test. Needs to be a unit test because it accesses Meson internals.
'''
- testdir = os.path.join(self.common_test_dir, '158 reserved targets')
+ testdir = os.path.join(self.common_test_dir, '155 reserved targets')
targets = mesonbuild.coredata.forbidden_target_names
# We don't actually define a target with this name
targets.pop('build.ninja')
@@ -1816,7 +1865,7 @@ int main(int argc, char **argv) {
self.assertPathExists(os.path.join(testdir, i))
def detect_prebuild_env(self):
- env = Environment('', self.builddir, get_fake_options(self.prefix))
+ env = get_fake_env('', self.builddir, self.prefix)
cc = env.detect_c_compiler(False)
stlinker = env.detect_static_linker(cc)
if mesonbuild.mesonlib.is_windows():
@@ -1975,14 +2024,14 @@ int main(int argc, char **argv) {
@skipIfNoPkgconfig
def test_pkgconfig_gen_escaping(self):
- testdir = os.path.join(self.common_test_dir, '51 pkgconfig-gen')
+ testdir = os.path.join(self.common_test_dir, '48 pkgconfig-gen')
prefix = '/usr/with spaces'
libdir = 'lib'
self.init(testdir, extra_args=['--prefix=' + prefix,
'--libdir=' + libdir])
# Find foo dependency
os.environ['PKG_CONFIG_LIBDIR'] = self.privatedir
- env = Environment(testdir, self.builddir, get_fake_options(self.prefix))
+ env = get_fake_env(testdir, self.builddir, self.prefix)
kwargs = {'required': True, 'silent': True}
foo_dep = PkgConfigDependency('libfoo', env, kwargs)
# Ensure link_args are properly quoted
@@ -2072,7 +2121,7 @@ int main(int argc, char **argv) {
self.assertTrue(found, "Array option not found in introspect data.")
def test_free_stringarray_setting(self):
- testdir = os.path.join(self.common_test_dir, '47 options')
+ testdir = os.path.join(self.common_test_dir, '44 options')
self.init(testdir)
self.opt_has('free_array_opt', [])
self.setconf('-Dfree_array_opt=foo,bar', will_build=False)
@@ -2108,7 +2157,7 @@ int main(int argc, char **argv) {
self.build()
def test_subproject_promotion_wrap(self):
- testdir = os.path.join(self.unit_test_dir, '42 promote wrap')
+ testdir = os.path.join(self.unit_test_dir, '43 promote wrap')
workdir = os.path.join(self.builddir, 'work')
shutil.copytree(testdir, workdir)
spdir = os.path.join(workdir, 'subprojects')
@@ -2228,7 +2277,7 @@ int main(int argc, char **argv) {
Test that identical targets in different subprojects do not collide
if layout is flat.
'''
- testdir = os.path.join(self.common_test_dir, '181 identical target name in subproject flat layout')
+ testdir = os.path.join(self.common_test_dir, '178 identical target name in subproject flat layout')
self.init(testdir, extra_args=['--layout=flat'])
self.build()
@@ -2237,7 +2286,7 @@ int main(int argc, char **argv) {
Test that identical targets in different subdirs do not collide
if layout is flat.
'''
- testdir = os.path.join(self.common_test_dir, '190 same target name flat layout')
+ testdir = os.path.join(self.common_test_dir, '187 same target name flat layout')
self.init(testdir, extra_args=['--layout=flat'])
self.build()
@@ -2289,7 +2338,7 @@ recommended as it is not supported on some platforms''')
testdirbase = os.path.join(self.unit_test_dir, '29 guessed linker dependencies')
testdirlib = os.path.join(testdirbase, 'lib')
extra_args = None
- env = Environment(testdirlib, self.builddir, get_fake_options(self.prefix))
+ env = get_fake_env(testdirlib, self.builddir, self.prefix)
if env.detect_c_compiler(False).get_id() != 'msvc':
# static libraries are not linkable with -l with msvc because meson installs them
# as .a files which unix_args_to_native will not know as it expects libraries to use
@@ -2329,14 +2378,14 @@ recommended as it is not supported on some platforms''')
self.assertRebuiltTarget('app')
def test_conflicting_d_dash_option(self):
- testdir = os.path.join(self.unit_test_dir, '35 mixed command line args')
+ testdir = os.path.join(self.unit_test_dir, '36 mixed command line args')
with self.assertRaises(subprocess.CalledProcessError) as e:
self.init(testdir, extra_args=['-Dbindir=foo', '--bindir=bar'])
# Just to ensure that we caught the correct error
self.assertIn('passed as both', e.stderr)
def _test_same_option_twice(self, arg, args):
- testdir = os.path.join(self.unit_test_dir, '35 mixed command line args')
+ testdir = os.path.join(self.unit_test_dir, '36 mixed command line args')
self.init(testdir, extra_args=args)
opts = self.introspect('--buildoptions')
for item in opts:
@@ -2355,7 +2404,7 @@ recommended as it is not supported on some platforms''')
self._test_same_option_twice('one', ['-Done=foo', '-Done=bar'])
def _test_same_option_twice_configure(self, arg, args):
- testdir = os.path.join(self.unit_test_dir, '35 mixed command line args')
+ testdir = os.path.join(self.unit_test_dir, '36 mixed command line args')
self.init(testdir)
self.setconf(args)
opts = self.introspect('--buildoptions')
@@ -2499,7 +2548,7 @@ recommended as it is not supported on some platforms''')
pass
def test_feature_check_usage_subprojects(self):
- testdir = os.path.join(self.unit_test_dir, '39 featurenew subprojects')
+ testdir = os.path.join(self.unit_test_dir, '40 featurenew subprojects')
out = self.init(testdir)
# Parent project warns correctly
self.assertRegex(out, "WARNING: Project targetting '>=0.45'.*'0.47.0': dict")
@@ -2514,7 +2563,7 @@ recommended as it is not supported on some platforms''')
self.assertRegex(out, " * 0.47.0: {'dict'}")
def test_configure_file_warnings(self):
- testdir = os.path.join(self.common_test_dir, "16 configure file")
+ testdir = os.path.join(self.common_test_dir, "14 configure file")
out = self.init(testdir)
self.assertRegex(out, "WARNING:.*'empty'.*config.h.in.*not present.*")
self.assertRegex(out, "WARNING:.*'FOO_BAR'.*nosubst-nocopy2.txt.in.*not present.*")
@@ -2552,6 +2601,41 @@ recommended as it is not supported on some platforms''')
stdout=subprocess.DEVNULL,
stderr=subprocess.DEVNULL)
+ def get_opts_as_dict(self):
+ result = {}
+ for i in self.introspect('--buildoptions'):
+ result[i['name']] = i['value']
+ return result
+
+ def test_buildtype_setting(self):
+ testdir = os.path.join(self.common_test_dir, '1 trivial')
+ self.init(testdir)
+ opts = self.get_opts_as_dict()
+ self.assertEqual(opts['buildtype'], 'debug')
+ self.assertEqual(opts['debug'], True)
+ self.setconf('-Ddebug=false')
+ opts = self.get_opts_as_dict()
+ self.assertEqual(opts['debug'], False)
+ self.assertEqual(opts['buildtype'], 'plain')
+ self.assertEqual(opts['optimization'], '0')
+
+ # Setting optimizations to 3 should cause buildtype
+ # to go to release mode.
+ self.setconf('-Doptimization=3')
+ opts = self.get_opts_as_dict()
+ self.assertEqual(opts['buildtype'], 'release')
+ self.assertEqual(opts['debug'], False)
+ self.assertEqual(opts['optimization'], '3')
+
+ # Going to debug build type should reset debugging
+ # and optimization
+ self.setconf('-Dbuildtype=debug')
+ opts = self.get_opts_as_dict()
+ self.assertEqual(opts['buildtype'], 'debug')
+ self.assertEqual(opts['debug'], True)
+ self.assertEqual(opts['optimization'], '0')
+
+
class FailureTests(BasePlatformTests):
'''
Tests that test failure conditions. Build files here should be dynamically
@@ -2561,6 +2645,7 @@ class FailureTests(BasePlatformTests):
and slows down testing.
'''
dnf = "[Dd]ependency.*not found"
+ nopkg = '[Pp]kg-config not found'
def setUp(self):
super().setUp()
@@ -2642,7 +2727,11 @@ class FailureTests(BasePlatformTests):
if shutil.which('sdl2-config'):
raise unittest.SkipTest('sdl2-config found')
self.assertMesonRaises("dependency('sdl2', method : 'sdlconfig')", self.dnf)
- self.assertMesonRaises("dependency('sdl2', method : 'pkg-config')", self.dnf)
+ if shutil.which('pkg-config'):
+ errmsg = self.dnf
+ else:
+ errmsg = self.nopkg
+ self.assertMesonRaises("dependency('sdl2', method : 'pkg-config')", errmsg)
def test_gnustep_notfound_dependency(self):
# Want to test failure, so skip if available
@@ -2703,7 +2792,7 @@ class FailureTests(BasePlatformTests):
'''
Test that when we can't detect objc or objcpp, we fail gracefully.
'''
- env = Environment('', self.builddir, get_fake_options(self.prefix))
+ env = get_fake_env('', self.builddir, self.prefix)
try:
env.detect_objc_compiler(False)
env.detect_objcpp_compiler(False)
@@ -2788,6 +2877,16 @@ class FailureTests(BasePlatformTests):
msg = '.*WARNING:.*feature.*build_always_stale.*custom_target.*'
self.assertMesonDoesNotOutput(vcs_tag, msg, meson_version='>=0.43')
+ def test_missing_subproject_not_required_and_required(self):
+ self.assertMesonRaises("sub1 = subproject('not-found-subproject', required: false)\n" +
+ "sub2 = subproject('not-found-subproject', required: true)",
+ """.*Subproject "subprojects/not-found-subproject" required but not found.*""")
+
+ def test_get_variable_on_not_found_project(self):
+ self.assertMesonRaises("sub1 = subproject('not-found-subproject', required: false)\n" +
+ "sub1.get_variable('naaa')",
+ """Subproject "subprojects/not-found-subproject" disabled can't get_variable on it.""")
+
class WindowsTests(BasePlatformTests):
'''
@@ -2840,7 +2939,7 @@ class WindowsTests(BasePlatformTests):
ExternalLibraryHolder from build files.
'''
testdir = os.path.join(self.platform_test_dir, '1 basic')
- env = Environment(testdir, self.builddir, get_fake_options(self.prefix))
+ env = get_fake_env(testdir, self.builddir, self.prefix)
cc = env.detect_c_compiler(False)
if cc.id != 'msvc':
raise unittest.SkipTest('Not using MSVC')
@@ -2853,7 +2952,7 @@ class WindowsTests(BasePlatformTests):
testdir = os.path.join(self.platform_test_dir, '5 resources')
# resource compiler depfile generation is not yet implemented for msvc
- env = Environment(testdir, self.builddir, get_fake_options(self.prefix))
+ env = get_fake_env(testdir, self.builddir, self.prefix)
depfile_works = env.detect_c_compiler(False).get_id() != 'msvc'
self.init(testdir)
@@ -2907,7 +3006,7 @@ class LinuxlikeTests(BasePlatformTests):
case because we need to run `readelf` and actually check the soname.
https://github.com/mesonbuild/meson/issues/785
'''
- testdir = os.path.join(self.common_test_dir, '27 library versions')
+ testdir = os.path.join(self.common_test_dir, '25 library versions')
self.init(testdir)
self.build()
lib1 = os.path.join(self.builddir, 'prefixsomelib.suffix')
@@ -2940,9 +3039,9 @@ class LinuxlikeTests(BasePlatformTests):
need to run pkg-config outside of a Meson build file.
https://github.com/mesonbuild/meson/issues/889
'''
- testdir = os.path.join(self.common_test_dir, '51 pkgconfig-gen')
+ testdir = os.path.join(self.common_test_dir, '48 pkgconfig-gen')
self.init(testdir)
- env = Environment(testdir, self.builddir, get_fake_options(self.prefix))
+ env = get_fake_env(testdir, self.builddir, self.prefix)
kwargs = {'required': True, 'silent': True}
os.environ['PKG_CONFIG_LIBDIR'] = self.privatedir
foo_dep = PkgConfigDependency('libfoo', env, kwargs)
@@ -2956,13 +3055,13 @@ class LinuxlikeTests(BasePlatformTests):
'''
Test that generated pkg-config files correctly handle dependencies
'''
- testdir = os.path.join(self.common_test_dir, '51 pkgconfig-gen')
+ testdir = os.path.join(self.common_test_dir, '48 pkgconfig-gen')
self.init(testdir)
privatedir1 = self.privatedir
self.new_builddir()
os.environ['PKG_CONFIG_LIBDIR'] = privatedir1
- testdir = os.path.join(self.common_test_dir, '51 pkgconfig-gen', 'dependencies')
+ testdir = os.path.join(self.common_test_dir, '48 pkgconfig-gen', 'dependencies')
self.init(testdir)
privatedir2 = self.privatedir
@@ -3139,14 +3238,14 @@ class LinuxlikeTests(BasePlatformTests):
'''
Oflag = '-O3'
os.environ['CFLAGS'] = os.environ['CXXFLAGS'] = Oflag
- testdir = os.path.join(self.common_test_dir, '43 has function')
+ testdir = os.path.join(self.common_test_dir, '40 has function')
self.init(testdir)
cmds = self.get_meson_log_compiler_checks()
for cmd in cmds:
if cmd[0] == 'ccache':
cmd = cmd[1:]
# Verify that -I flags from the `args` kwarg are first
- # This is set in the '43 has function' test case
+ # This is set in the '40 has function' test case
self.assertEqual(cmd[1], '-I/tmp')
# Verify that -O3 set via the environment is overridden by -O0
Oargs = [arg for arg in cmd if arg.startswith('-O')]
@@ -3198,7 +3297,7 @@ class LinuxlikeTests(BasePlatformTests):
an ordinary test because it requires passing options to meson.
'''
testdir = os.path.join(self.common_test_dir, '1 trivial')
- env = Environment(testdir, self.builddir, get_fake_options(self.prefix))
+ env = get_fake_env(testdir, self.builddir, self.prefix)
cc = env.detect_c_compiler(False)
self._test_stds_impl(testdir, cc, 'c')
@@ -3208,12 +3307,12 @@ class LinuxlikeTests(BasePlatformTests):
be an ordinary test because it requires passing options to meson.
'''
testdir = os.path.join(self.common_test_dir, '2 cpp')
- env = Environment(testdir, self.builddir, get_fake_options(self.prefix))
+ env = get_fake_env(testdir, self.builddir, self.prefix)
cpp = env.detect_cpp_compiler(False)
self._test_stds_impl(testdir, cpp, 'cpp')
def test_unity_subproj(self):
- testdir = os.path.join(self.common_test_dir, '49 subproject')
+ testdir = os.path.join(self.common_test_dir, '46 subproject')
self.init(testdir, extra_args='--unity=subprojects')
self.assertPathExists(os.path.join(self.builddir, 'subprojects/sublib/subprojects@sublib@@simpletest@exe/simpletest-unity.c'))
self.assertPathExists(os.path.join(self.builddir, 'subprojects/sublib/subprojects@sublib@@sublib@sha/sublib-unity.c'))
@@ -3260,7 +3359,7 @@ class LinuxlikeTests(BasePlatformTests):
self.wipe()
# Test directory modes
- testdir = os.path.join(self.common_test_dir, '66 install subdir')
+ testdir = os.path.join(self.common_test_dir, '63 install subdir')
self.init(testdir)
self.install()
@@ -3277,7 +3376,7 @@ class LinuxlikeTests(BasePlatformTests):
'''
Test that files are installed with correct permissions using install_mode.
'''
- testdir = os.path.join(self.common_test_dir, '199 install_mode')
+ testdir = os.path.join(self.common_test_dir, '196 install_mode')
self.init(testdir)
self.build()
self.install()
@@ -3428,6 +3527,7 @@ class LinuxlikeTests(BasePlatformTests):
for v in installed.values():
self.assertTrue('prog' in v or 'foo' in v)
+ @skipIfNoPkgconfig
def test_order_of_l_arguments(self):
testdir = os.path.join(self.unit_test_dir, '8 -L -l order')
os.environ['PKG_CONFIG_PATH'] = testdir
@@ -3652,7 +3752,7 @@ endian = 'little'
@skipIfNoPkgconfig
def test_pkgconfig_formatting(self):
- testdir = os.path.join(self.unit_test_dir, '36 pkgconfig format')
+ testdir = os.path.join(self.unit_test_dir, '37 pkgconfig format')
self.init(testdir)
myenv = os.environ.copy()
myenv['PKG_CONFIG_PATH'] = self.privatedir
@@ -3704,7 +3804,7 @@ endian = 'little'
'''
if not is_osx():
raise unittest.SkipTest('Apple bitcode not relevant')
- testdir = os.path.join(self.common_test_dir, '156 shared module resolving symbol in executable')
+ testdir = os.path.join(self.common_test_dir, '153 shared module resolving symbol in executable')
# Ensure that it builds even with bitcode enabled
self.init(testdir, extra_args='-Db_bitcode=true')
self.build()
@@ -3714,7 +3814,7 @@ endian = 'little'
'''
Test that the dependencies are always listed in a deterministic order.
'''
- testdir = os.path.join(self.unit_test_dir, '41 dep order')
+ testdir = os.path.join(self.unit_test_dir, '42 dep order')
self.init(testdir)
with open(os.path.join(self.builddir, 'build.ninja')) as bfile:
for line in bfile:
@@ -3729,7 +3829,7 @@ endian = 'little'
'''
if is_cygwin():
raise unittest.SkipTest('rpath are not used on Cygwin')
- testdir = os.path.join(self.unit_test_dir, '40 rpath order')
+ testdir = os.path.join(self.unit_test_dir, '41 rpath order')
self.init(testdir)
if is_osx():
rpathre = re.compile('-rpath,.*/subprojects/sub1.*-rpath,.*/subprojects/sub2')
@@ -3752,11 +3852,9 @@ endian = 'little'
The system library is found with cc.find_library() and pkg-config deps.
'''
- if not is_osx():
- raise unittest.SkipTest('workflow currently only works on macOS')
oldprefix = self.prefix
# Install external library so we can find it
- testdir = os.path.join(self.unit_test_dir, '38 external, internal library rpath', 'external library')
+ testdir = os.path.join(self.unit_test_dir, '39 external, internal library rpath', 'external library')
# install into installdir without using DESTDIR
installdir = self.installdir
self.prefix = installdir
@@ -3768,7 +3866,7 @@ endian = 'little'
self.new_builddir()
os.environ['LIBRARY_PATH'] = os.path.join(installdir, self.libdir)
os.environ['PKG_CONFIG_PATH'] = os.path.join(installdir, self.libdir, 'pkgconfig')
- testdir = os.path.join(self.unit_test_dir, '38 external, internal library rpath', 'built library')
+ testdir = os.path.join(self.unit_test_dir, '39 external, internal library rpath', 'built library')
# install into installdir without using DESTDIR
self.prefix = self.installdir
self.init(testdir)
@@ -3776,6 +3874,9 @@ endian = 'little'
self.build()
# test uninstalled
self.run_tests()
+ if not is_osx():
+ # Rest of the workflow only works on macOS
+ return
# test running after installation
self.install(use_destdir=False)
prog = os.path.join(self.installdir, 'bin', 'prog')
@@ -3796,32 +3897,42 @@ endian = 'little'
# Ensure that the otool output does not contain self.installdir
self.assertNotRegex(out, self.installdir + '.*dylib ')
- def test_install_subdir_symlinks(self):
+ def install_subdir_invalid_symlinks(self, testdir, subdir_path):
'''
Test that installation of broken symlinks works fine.
https://github.com/mesonbuild/meson/issues/3914
'''
- testdir = os.path.join(self.common_test_dir, '66 install subdir')
- subdir = os.path.join(testdir, 'sub/sub1')
+ testdir = os.path.join(self.common_test_dir, testdir)
+ subdir = os.path.join(testdir, subdir_path)
curdir = os.getcwd()
os.chdir(subdir)
# Can't distribute broken symlinks in the source tree because it breaks
# the creation of zipapps. Create it dynamically and run the test by
# hand.
src = '../../nonexistent.txt'
- os.symlink(src, 'test.txt')
+ os.symlink(src, 'invalid-symlink.txt')
try:
self.init(testdir)
self.build()
self.install()
- link = os.path.join(self.installdir, 'usr', 'share', 'sub1', 'test.txt')
+ install_path = subdir_path.split(os.path.sep)[-1]
+ link = os.path.join(self.installdir, 'usr', 'share', install_path, 'invalid-symlink.txt')
self.assertTrue(os.path.islink(link), msg=link)
self.assertEqual(src, os.readlink(link))
self.assertFalse(os.path.isfile(link), msg=link)
finally:
- os.remove(os.path.join(subdir, 'test.txt'))
+ os.remove(os.path.join(subdir, 'invalid-symlink.txt'))
os.chdir(curdir)
+ def test_install_subdir_symlinks(self):
+ self.install_subdir_invalid_symlinks('63 install subdir', os.path.join('sub', 'sub1'))
+
+ def test_install_subdir_symlinks_with_default_umask(self):
+ self.install_subdir_invalid_symlinks('196 install_mode', 'sub2')
+
+ def test_install_subdir_symlinks_with_default_umask_and_mode(self):
+ self.install_subdir_invalid_symlinks('196 install_mode', 'sub1')
+
class LinuxCrossArmTests(BasePlatformTests):
'''
@@ -3907,7 +4018,7 @@ class PythonTests(BasePlatformTests):
if self.backend is not Backend.ninja:
raise unittest.SkipTest('Skipping python tests with {} backend'.format(self.backend.name))
- testdir = os.path.join(self.src_root, 'test cases', 'unit', '37 python extmodule')
+ testdir = os.path.join(self.src_root, 'test cases', 'unit', '38 python extmodule')
# No python version specified, this will use meson's python
self.init(testdir)
diff --git a/test cases/common/103 manygen/depuser.c b/test cases/common/100 manygen/depuser.c
index 1a825e0..1a825e0 100644
--- a/test cases/common/103 manygen/depuser.c
+++ b/test cases/common/100 manygen/depuser.c
diff --git a/test cases/common/103 manygen/meson.build b/test cases/common/100 manygen/meson.build
index e70a55a..e70a55a 100644
--- a/test cases/common/103 manygen/meson.build
+++ b/test cases/common/100 manygen/meson.build
diff --git a/test cases/common/103 manygen/subdir/funcinfo.def b/test cases/common/100 manygen/subdir/funcinfo.def
index b074186..b074186 100644
--- a/test cases/common/103 manygen/subdir/funcinfo.def
+++ b/test cases/common/100 manygen/subdir/funcinfo.def
diff --git a/test cases/common/103 manygen/subdir/manygen.py b/test cases/common/100 manygen/subdir/manygen.py
index 7ffd435..7ffd435 100755
--- a/test cases/common/103 manygen/subdir/manygen.py
+++ b/test cases/common/100 manygen/subdir/manygen.py
diff --git a/test cases/common/103 manygen/subdir/meson.build b/test cases/common/100 manygen/subdir/meson.build
index 73b4ff7..73b4ff7 100644
--- a/test cases/common/103 manygen/subdir/meson.build
+++ b/test cases/common/100 manygen/subdir/meson.build
diff --git a/test cases/common/104 stringdef/meson.build b/test cases/common/101 stringdef/meson.build
index 3f9170e..3f9170e 100644
--- a/test cases/common/104 stringdef/meson.build
+++ b/test cases/common/101 stringdef/meson.build
diff --git a/test cases/common/104 stringdef/stringdef.c b/test cases/common/101 stringdef/stringdef.c
index 69ea656..69ea656 100644
--- a/test cases/common/104 stringdef/stringdef.c
+++ b/test cases/common/101 stringdef/stringdef.c
diff --git a/test cases/common/105 find program path/meson.build b/test cases/common/102 find program path/meson.build
index 0a81249..0a81249 100644
--- a/test cases/common/105 find program path/meson.build
+++ b/test cases/common/102 find program path/meson.build
diff --git a/test cases/common/105 find program path/program.py b/test cases/common/102 find program path/program.py
index 2ebc564..2ebc564 100755
--- a/test cases/common/105 find program path/program.py
+++ b/test cases/common/102 find program path/program.py
diff --git a/test cases/common/106 subproject subdir/meson.build b/test cases/common/103 subproject subdir/meson.build
index ec9fad1..ec9fad1 100644
--- a/test cases/common/106 subproject subdir/meson.build
+++ b/test cases/common/103 subproject subdir/meson.build
diff --git a/test cases/common/106 subproject subdir/prog.c b/test cases/common/103 subproject subdir/prog.c
index cf6f425..cf6f425 100644
--- a/test cases/common/106 subproject subdir/prog.c
+++ b/test cases/common/103 subproject subdir/prog.c
diff --git a/test cases/common/106 subproject subdir/subprojects/sub/lib/meson.build b/test cases/common/103 subproject subdir/subprojects/sub/lib/meson.build
index 731d22b..731d22b 100644
--- a/test cases/common/106 subproject subdir/subprojects/sub/lib/meson.build
+++ b/test cases/common/103 subproject subdir/subprojects/sub/lib/meson.build
diff --git a/test cases/common/106 subproject subdir/subprojects/sub/lib/sub.c b/test cases/common/103 subproject subdir/subprojects/sub/lib/sub.c
index 068a5b8..068a5b8 100644
--- a/test cases/common/106 subproject subdir/subprojects/sub/lib/sub.c
+++ b/test cases/common/103 subproject subdir/subprojects/sub/lib/sub.c
diff --git a/test cases/common/106 subproject subdir/subprojects/sub/lib/sub.h b/test cases/common/103 subproject subdir/subprojects/sub/lib/sub.h
index f1ab0e1..f1ab0e1 100644
--- a/test cases/common/106 subproject subdir/subprojects/sub/lib/sub.h
+++ b/test cases/common/103 subproject subdir/subprojects/sub/lib/sub.h
diff --git a/test cases/common/106 subproject subdir/subprojects/sub/meson.build b/test cases/common/103 subproject subdir/subprojects/sub/meson.build
index bf69c25..bf69c25 100644
--- a/test cases/common/106 subproject subdir/subprojects/sub/meson.build
+++ b/test cases/common/103 subproject subdir/subprojects/sub/meson.build
diff --git a/test cases/common/107 postconf/meson.build b/test cases/common/104 postconf/meson.build
index 12b3c5b..12b3c5b 100644
--- a/test cases/common/107 postconf/meson.build
+++ b/test cases/common/104 postconf/meson.build
diff --git a/test cases/common/107 postconf/postconf.py b/test cases/common/104 postconf/postconf.py
index 950c706..950c706 100644
--- a/test cases/common/107 postconf/postconf.py
+++ b/test cases/common/104 postconf/postconf.py
diff --git a/test cases/common/107 postconf/prog.c b/test cases/common/104 postconf/prog.c
index 1e5d4cb..1e5d4cb 100644
--- a/test cases/common/107 postconf/prog.c
+++ b/test cases/common/104 postconf/prog.c
diff --git a/test cases/common/107 postconf/raw.dat b/test cases/common/104 postconf/raw.dat
index ec63514..ec63514 100644
--- a/test cases/common/107 postconf/raw.dat
+++ b/test cases/common/104 postconf/raw.dat
diff --git a/test cases/common/108 postconf with args/meson.build b/test cases/common/105 postconf with args/meson.build
index 8510c5b..8510c5b 100644
--- a/test cases/common/108 postconf with args/meson.build
+++ b/test cases/common/105 postconf with args/meson.build
diff --git a/test cases/common/108 postconf with args/postconf.py b/test cases/common/105 postconf with args/postconf.py
index cef7f79..cef7f79 100644
--- a/test cases/common/108 postconf with args/postconf.py
+++ b/test cases/common/105 postconf with args/postconf.py
diff --git a/test cases/common/108 postconf with args/prog.c b/test cases/common/105 postconf with args/prog.c
index 0e63a8c..0e63a8c 100644
--- a/test cases/common/108 postconf with args/prog.c
+++ b/test cases/common/105 postconf with args/prog.c
diff --git a/test cases/common/108 postconf with args/raw.dat b/test cases/common/105 postconf with args/raw.dat
index ec63514..ec63514 100644
--- a/test cases/common/108 postconf with args/raw.dat
+++ b/test cases/common/105 postconf with args/raw.dat
diff --git a/test cases/common/109 testframework options/meson.build b/test cases/common/106 testframework options/meson.build
index 2773730..2773730 100644
--- a/test cases/common/109 testframework options/meson.build
+++ b/test cases/common/106 testframework options/meson.build
diff --git a/test cases/common/109 testframework options/meson_options.txt b/test cases/common/106 testframework options/meson_options.txt
index 653dd75..653dd75 100644
--- a/test cases/common/109 testframework options/meson_options.txt
+++ b/test cases/common/106 testframework options/meson_options.txt
diff --git a/test cases/common/109 testframework options/test_args.txt b/test cases/common/106 testframework options/test_args.txt
index a667e3a..a667e3a 100644
--- a/test cases/common/109 testframework options/test_args.txt
+++ b/test cases/common/106 testframework options/test_args.txt
diff --git a/test cases/common/110 extract same name/lib.c b/test cases/common/107 extract same name/lib.c
index 6bdeda7..6bdeda7 100644
--- a/test cases/common/110 extract same name/lib.c
+++ b/test cases/common/107 extract same name/lib.c
diff --git a/test cases/common/110 extract same name/main.c b/test cases/common/107 extract same name/main.c
index dc57dd5..dc57dd5 100644
--- a/test cases/common/110 extract same name/main.c
+++ b/test cases/common/107 extract same name/main.c
diff --git a/test cases/common/110 extract same name/meson.build b/test cases/common/107 extract same name/meson.build
index 0bfbb4d..0bfbb4d 100644
--- a/test cases/common/110 extract same name/meson.build
+++ b/test cases/common/107 extract same name/meson.build
diff --git a/test cases/common/110 extract same name/src/lib.c b/test cases/common/107 extract same name/src/lib.c
index 68e6ab9..68e6ab9 100644
--- a/test cases/common/110 extract same name/src/lib.c
+++ b/test cases/common/107 extract same name/src/lib.c
diff --git a/test cases/common/111 has header symbol/meson.build b/test cases/common/108 has header symbol/meson.build
index 54cedce..54cedce 100644
--- a/test cases/common/111 has header symbol/meson.build
+++ b/test cases/common/108 has header symbol/meson.build
diff --git a/test cases/common/112 has arg/meson.build b/test cases/common/109 has arg/meson.build
index ba07311..ba07311 100644
--- a/test cases/common/112 has arg/meson.build
+++ b/test cases/common/109 has arg/meson.build
diff --git a/test cases/common/113 generatorcustom/catter.py b/test cases/common/110 generatorcustom/catter.py
index 198fa98..198fa98 100755
--- a/test cases/common/113 generatorcustom/catter.py
+++ b/test cases/common/110 generatorcustom/catter.py
diff --git a/test cases/common/113 generatorcustom/gen.py b/test cases/common/110 generatorcustom/gen.py
index c1e34ed..c1e34ed 100755
--- a/test cases/common/113 generatorcustom/gen.py
+++ b/test cases/common/110 generatorcustom/gen.py
diff --git a/test cases/common/113 generatorcustom/main.c b/test cases/common/110 generatorcustom/main.c
index 04abcf6..04abcf6 100644
--- a/test cases/common/113 generatorcustom/main.c
+++ b/test cases/common/110 generatorcustom/main.c
diff --git a/test cases/common/113 generatorcustom/meson.build b/test cases/common/110 generatorcustom/meson.build
index 17d27e5..17d27e5 100644
--- a/test cases/common/113 generatorcustom/meson.build
+++ b/test cases/common/110 generatorcustom/meson.build
diff --git a/test cases/common/113 generatorcustom/res1.txt b/test cases/common/110 generatorcustom/res1.txt
index 6487c56..6487c56 100644
--- a/test cases/common/113 generatorcustom/res1.txt
+++ b/test cases/common/110 generatorcustom/res1.txt
diff --git a/test cases/common/113 generatorcustom/res2.txt b/test cases/common/110 generatorcustom/res2.txt
index 0a8879d..0a8879d 100644
--- a/test cases/common/113 generatorcustom/res2.txt
+++ b/test cases/common/110 generatorcustom/res2.txt
diff --git a/test cases/common/114 multiple dir configure file/meson.build b/test cases/common/111 multiple dir configure file/meson.build
index a4615fa..a4615fa 100644
--- a/test cases/common/114 multiple dir configure file/meson.build
+++ b/test cases/common/111 multiple dir configure file/meson.build
diff --git a/test cases/common/114 multiple dir configure file/subdir/foo.txt b/test cases/common/111 multiple dir configure file/subdir/foo.txt
index e69de29..e69de29 100644
--- a/test cases/common/114 multiple dir configure file/subdir/foo.txt
+++ b/test cases/common/111 multiple dir configure file/subdir/foo.txt
diff --git a/test cases/common/114 multiple dir configure file/subdir/meson.build b/test cases/common/111 multiple dir configure file/subdir/meson.build
index 503df96..503df96 100644
--- a/test cases/common/114 multiple dir configure file/subdir/meson.build
+++ b/test cases/common/111 multiple dir configure file/subdir/meson.build
diff --git a/test cases/common/114 multiple dir configure file/subdir/someinput.in b/test cases/common/111 multiple dir configure file/subdir/someinput.in
index e69de29..e69de29 100644
--- a/test cases/common/114 multiple dir configure file/subdir/someinput.in
+++ b/test cases/common/111 multiple dir configure file/subdir/someinput.in
diff --git a/test cases/common/115 spaces backslash/asm output/meson.build b/test cases/common/112 spaces backslash/asm output/meson.build
index b5f13f5..b5f13f5 100644
--- a/test cases/common/115 spaces backslash/asm output/meson.build
+++ b/test cases/common/112 spaces backslash/asm output/meson.build
diff --git a/test cases/common/115 spaces backslash/comparer-end-notstring.c b/test cases/common/112 spaces backslash/comparer-end-notstring.c
index 65bf8bc..65bf8bc 100644
--- a/test cases/common/115 spaces backslash/comparer-end-notstring.c
+++ b/test cases/common/112 spaces backslash/comparer-end-notstring.c
diff --git a/test cases/common/115 spaces backslash/comparer-end.c b/test cases/common/112 spaces backslash/comparer-end.c
index fef25a5..fef25a5 100644
--- a/test cases/common/115 spaces backslash/comparer-end.c
+++ b/test cases/common/112 spaces backslash/comparer-end.c
diff --git a/test cases/common/115 spaces backslash/comparer.c b/test cases/common/112 spaces backslash/comparer.c
index 937cb47..937cb47 100644
--- a/test cases/common/115 spaces backslash/comparer.c
+++ b/test cases/common/112 spaces backslash/comparer.c
diff --git a/test cases/common/115 spaces backslash/include/comparer.h b/test cases/common/112 spaces backslash/include/comparer.h
index 624d96c..624d96c 100644
--- a/test cases/common/115 spaces backslash/include/comparer.h
+++ b/test cases/common/112 spaces backslash/include/comparer.h
diff --git a/test cases/common/115 spaces backslash/meson.build b/test cases/common/112 spaces backslash/meson.build
index bf614e8..bf614e8 100644
--- a/test cases/common/115 spaces backslash/meson.build
+++ b/test cases/common/112 spaces backslash/meson.build
diff --git a/test cases/common/116 ternary/meson.build b/test cases/common/113 ternary/meson.build
index 3e65046..3e65046 100644
--- a/test cases/common/116 ternary/meson.build
+++ b/test cases/common/113 ternary/meson.build
diff --git a/test cases/common/117 custom target capture/data_source.txt b/test cases/common/114 custom target capture/data_source.txt
index 0c23cc0..0c23cc0 100644
--- a/test cases/common/117 custom target capture/data_source.txt
+++ b/test cases/common/114 custom target capture/data_source.txt
diff --git a/test cases/common/117 custom target capture/installed_files.txt b/test cases/common/114 custom target capture/installed_files.txt
index d90a6b0..d90a6b0 100644
--- a/test cases/common/117 custom target capture/installed_files.txt
+++ b/test cases/common/114 custom target capture/installed_files.txt
diff --git a/test cases/common/117 custom target capture/meson.build b/test cases/common/114 custom target capture/meson.build
index 58a69ca..58a69ca 100644
--- a/test cases/common/117 custom target capture/meson.build
+++ b/test cases/common/114 custom target capture/meson.build
diff --git a/test cases/common/117 custom target capture/my_compiler.py b/test cases/common/114 custom target capture/my_compiler.py
index b60722a..b60722a 100755
--- a/test cases/common/117 custom target capture/my_compiler.py
+++ b/test cases/common/114 custom target capture/my_compiler.py
diff --git a/test cases/common/118 allgenerate/converter.py b/test cases/common/115 allgenerate/converter.py
index f8e2ca0..f8e2ca0 100755
--- a/test cases/common/118 allgenerate/converter.py
+++ b/test cases/common/115 allgenerate/converter.py
diff --git a/test cases/common/118 allgenerate/foobar.cpp.in b/test cases/common/115 allgenerate/foobar.cpp.in
index c64f3b5..c64f3b5 100644
--- a/test cases/common/118 allgenerate/foobar.cpp.in
+++ b/test cases/common/115 allgenerate/foobar.cpp.in
diff --git a/test cases/common/118 allgenerate/meson.build b/test cases/common/115 allgenerate/meson.build
index 049e849..049e849 100644
--- a/test cases/common/118 allgenerate/meson.build
+++ b/test cases/common/115 allgenerate/meson.build
diff --git a/test cases/common/119 pathjoin/meson.build b/test cases/common/116 pathjoin/meson.build
index 751ca68..751ca68 100644
--- a/test cases/common/119 pathjoin/meson.build
+++ b/test cases/common/116 pathjoin/meson.build
diff --git a/test cases/common/120 subdir subproject/meson.build b/test cases/common/117 subdir subproject/meson.build
index 54ecfe0..54ecfe0 100644
--- a/test cases/common/120 subdir subproject/meson.build
+++ b/test cases/common/117 subdir subproject/meson.build
diff --git a/test cases/common/120 subdir subproject/prog/meson.build b/test cases/common/117 subdir subproject/prog/meson.build
index 360b5f5..360b5f5 100644
--- a/test cases/common/120 subdir subproject/prog/meson.build
+++ b/test cases/common/117 subdir subproject/prog/meson.build
diff --git a/test cases/common/120 subdir subproject/prog/prog.c b/test cases/common/117 subdir subproject/prog/prog.c
index cf6f425..cf6f425 100644
--- a/test cases/common/120 subdir subproject/prog/prog.c
+++ b/test cases/common/117 subdir subproject/prog/prog.c
diff --git a/test cases/common/120 subdir subproject/subprojects/sub/meson.build b/test cases/common/117 subdir subproject/subprojects/sub/meson.build
index 94e9eec..94e9eec 100644
--- a/test cases/common/120 subdir subproject/subprojects/sub/meson.build
+++ b/test cases/common/117 subdir subproject/subprojects/sub/meson.build
diff --git a/test cases/common/120 subdir subproject/subprojects/sub/sub.c b/test cases/common/117 subdir subproject/subprojects/sub/sub.c
index 068a5b8..068a5b8 100644
--- a/test cases/common/120 subdir subproject/subprojects/sub/sub.c
+++ b/test cases/common/117 subdir subproject/subprojects/sub/sub.c
diff --git a/test cases/common/120 subdir subproject/subprojects/sub/sub.h b/test cases/common/117 subdir subproject/subprojects/sub/sub.h
index f1ab0e1..f1ab0e1 100644
--- a/test cases/common/120 subdir subproject/subprojects/sub/sub.h
+++ b/test cases/common/117 subdir subproject/subprojects/sub/sub.h
diff --git a/test cases/common/121 interpreter copy mutable var on assignment/meson.build b/test cases/common/118 interpreter copy mutable var on assignment/meson.build
index 8b15357..8b15357 100644
--- a/test cases/common/121 interpreter copy mutable var on assignment/meson.build
+++ b/test cases/common/118 interpreter copy mutable var on assignment/meson.build
diff --git a/test cases/common/122 skip/meson.build b/test cases/common/119 skip/meson.build
index 1adedb6..1adedb6 100644
--- a/test cases/common/122 skip/meson.build
+++ b/test cases/common/119 skip/meson.build
diff --git a/test cases/common/123 subproject project arguments/exe.c b/test cases/common/120 subproject project arguments/exe.c
index d6440f0..d6440f0 100644
--- a/test cases/common/123 subproject project arguments/exe.c
+++ b/test cases/common/120 subproject project arguments/exe.c
diff --git a/test cases/common/123 subproject project arguments/exe.cpp b/test cases/common/120 subproject project arguments/exe.cpp
index 8471c6f..8471c6f 100644
--- a/test cases/common/123 subproject project arguments/exe.cpp
+++ b/test cases/common/120 subproject project arguments/exe.cpp
diff --git a/test cases/common/123 subproject project arguments/meson.build b/test cases/common/120 subproject project arguments/meson.build
index 90d4c05..90d4c05 100644
--- a/test cases/common/123 subproject project arguments/meson.build
+++ b/test cases/common/120 subproject project arguments/meson.build
diff --git a/test cases/common/123 subproject project arguments/subprojects/subexe/meson.build b/test cases/common/120 subproject project arguments/subprojects/subexe/meson.build
index ef141dc..ef141dc 100644
--- a/test cases/common/123 subproject project arguments/subprojects/subexe/meson.build
+++ b/test cases/common/120 subproject project arguments/subprojects/subexe/meson.build
diff --git a/test cases/common/123 subproject project arguments/subprojects/subexe/subexe.c b/test cases/common/120 subproject project arguments/subprojects/subexe/subexe.c
index f748afc..f748afc 100644
--- a/test cases/common/123 subproject project arguments/subprojects/subexe/subexe.c
+++ b/test cases/common/120 subproject project arguments/subprojects/subexe/subexe.c
diff --git a/test cases/common/124 test skip/meson.build b/test cases/common/121 test skip/meson.build
index 568527f..568527f 100644
--- a/test cases/common/124 test skip/meson.build
+++ b/test cases/common/121 test skip/meson.build
diff --git a/test cases/common/124 test skip/test_skip.c b/test cases/common/121 test skip/test_skip.c
index db26681..db26681 100644
--- a/test cases/common/124 test skip/test_skip.c
+++ b/test cases/common/121 test skip/test_skip.c
diff --git a/test cases/common/125 shared module/installed_files.txt b/test cases/common/122 shared module/installed_files.txt
index a351490..a351490 100644
--- a/test cases/common/125 shared module/installed_files.txt
+++ b/test cases/common/122 shared module/installed_files.txt
diff --git a/test cases/common/125 shared module/meson.build b/test cases/common/122 shared module/meson.build
index 9f9ad63..9f9ad63 100644
--- a/test cases/common/125 shared module/meson.build
+++ b/test cases/common/122 shared module/meson.build
diff --git a/test cases/common/125 shared module/module.c b/test cases/common/122 shared module/module.c
index 181b760..181b760 100644
--- a/test cases/common/125 shared module/module.c
+++ b/test cases/common/122 shared module/module.c
diff --git a/test cases/common/125 shared module/nosyms.c b/test cases/common/122 shared module/nosyms.c
index 3432b1c..3432b1c 100644
--- a/test cases/common/125 shared module/nosyms.c
+++ b/test cases/common/122 shared module/nosyms.c
diff --git a/test cases/common/125 shared module/prog.c b/test cases/common/122 shared module/prog.c
index 2b63840..2b63840 100644
--- a/test cases/common/125 shared module/prog.c
+++ b/test cases/common/122 shared module/prog.c
diff --git a/test cases/common/125 shared module/runtime.c b/test cases/common/122 shared module/runtime.c
index 03bde86..03bde86 100644
--- a/test cases/common/125 shared module/runtime.c
+++ b/test cases/common/122 shared module/runtime.c
diff --git a/test cases/common/126 llvm ir and assembly/main.c b/test cases/common/123 llvm ir and assembly/main.c
index 97fe723..97fe723 100644
--- a/test cases/common/126 llvm ir and assembly/main.c
+++ b/test cases/common/123 llvm ir and assembly/main.c
diff --git a/test cases/common/126 llvm ir and assembly/main.cpp b/test cases/common/123 llvm ir and assembly/main.cpp
index f2c7de3..f2c7de3 100644
--- a/test cases/common/126 llvm ir and assembly/main.cpp
+++ b/test cases/common/123 llvm ir and assembly/main.cpp
diff --git a/test cases/common/126 llvm ir and assembly/meson.build b/test cases/common/123 llvm ir and assembly/meson.build
index acff93f..51321fb 100644
--- a/test cases/common/126 llvm ir and assembly/meson.build
+++ b/test cases/common/123 llvm ir and assembly/meson.build
@@ -47,7 +47,7 @@ foreach lang : ['c', 'cpp']
square_impl = custom_target(lang + square_impl,
input : square_preproc,
output : lang + square_base + '.obj',
- command : [ml, '/Fo', '@OUTPUT@', '/c', '@INPUT@'])
+ command : [ml, '/safeseh', '/Fo', '@OUTPUT@', '/c', '@INPUT@'])
endif
if supported_cpus.contains(cpu)
e = executable('square_asm_' + lang, square_impl, 'main.' + lang,
diff --git a/test cases/common/126 llvm ir and assembly/square-arm.S b/test cases/common/123 llvm ir and assembly/square-arm.S
index 4dd4467..4dd4467 100644
--- a/test cases/common/126 llvm ir and assembly/square-arm.S
+++ b/test cases/common/123 llvm ir and assembly/square-arm.S
diff --git a/test cases/common/126 llvm ir and assembly/square-x86.S b/test cases/common/123 llvm ir and assembly/square-x86.S
index 18284c1..18284c1 100644
--- a/test cases/common/126 llvm ir and assembly/square-x86.S
+++ b/test cases/common/123 llvm ir and assembly/square-x86.S
diff --git a/test cases/common/126 llvm ir and assembly/square-x86_64.S b/test cases/common/123 llvm ir and assembly/square-x86_64.S
index 5678d00..5678d00 100644
--- a/test cases/common/126 llvm ir and assembly/square-x86_64.S
+++ b/test cases/common/123 llvm ir and assembly/square-x86_64.S
diff --git a/test cases/common/126 llvm ir and assembly/square.ll b/test cases/common/123 llvm ir and assembly/square.ll
index 7c321aa..7c321aa 100644
--- a/test cases/common/126 llvm ir and assembly/square.ll
+++ b/test cases/common/123 llvm ir and assembly/square.ll
diff --git a/test cases/common/126 llvm ir and assembly/symbol-underscore.h b/test cases/common/123 llvm ir and assembly/symbol-underscore.h
index d0f3ef9..d0f3ef9 100644
--- a/test cases/common/126 llvm ir and assembly/symbol-underscore.h
+++ b/test cases/common/123 llvm ir and assembly/symbol-underscore.h
diff --git a/test cases/common/127 cpp and asm/meson.build b/test cases/common/124 cpp and asm/meson.build
index 9160775..9160775 100644
--- a/test cases/common/127 cpp and asm/meson.build
+++ b/test cases/common/124 cpp and asm/meson.build
diff --git a/test cases/common/127 cpp and asm/retval-arm.S b/test cases/common/124 cpp and asm/retval-arm.S
index a892362..a892362 100644
--- a/test cases/common/127 cpp and asm/retval-arm.S
+++ b/test cases/common/124 cpp and asm/retval-arm.S
diff --git a/test cases/common/127 cpp and asm/retval-x86.S b/test cases/common/124 cpp and asm/retval-x86.S
index f9e8190..f9e8190 100644
--- a/test cases/common/127 cpp and asm/retval-x86.S
+++ b/test cases/common/124 cpp and asm/retval-x86.S
diff --git a/test cases/common/127 cpp and asm/retval-x86_64.S b/test cases/common/124 cpp and asm/retval-x86_64.S
index 1a5f3eb..1a5f3eb 100644
--- a/test cases/common/127 cpp and asm/retval-x86_64.S
+++ b/test cases/common/124 cpp and asm/retval-x86_64.S
diff --git a/test cases/common/127 cpp and asm/symbol-underscore.h b/test cases/common/124 cpp and asm/symbol-underscore.h
index d0f3ef9..d0f3ef9 100644
--- a/test cases/common/127 cpp and asm/symbol-underscore.h
+++ b/test cases/common/124 cpp and asm/symbol-underscore.h
diff --git a/test cases/common/127 cpp and asm/trivial.cc b/test cases/common/124 cpp and asm/trivial.cc
index d2928c0..d2928c0 100644
--- a/test cases/common/127 cpp and asm/trivial.cc
+++ b/test cases/common/124 cpp and asm/trivial.cc
diff --git a/test cases/common/128 extract all shared library/extractor.h b/test cases/common/125 extract all shared library/extractor.h
index d0917a1..d0917a1 100644
--- a/test cases/common/128 extract all shared library/extractor.h
+++ b/test cases/common/125 extract all shared library/extractor.h
diff --git a/test cases/common/128 extract all shared library/four.c b/test cases/common/125 extract all shared library/four.c
index 5ca6696..5ca6696 100644
--- a/test cases/common/128 extract all shared library/four.c
+++ b/test cases/common/125 extract all shared library/four.c
diff --git a/test cases/common/128 extract all shared library/func1234.def b/test cases/common/125 extract all shared library/func1234.def
index d62c08d..d62c08d 100644
--- a/test cases/common/128 extract all shared library/func1234.def
+++ b/test cases/common/125 extract all shared library/func1234.def
diff --git a/test cases/common/128 extract all shared library/meson.build b/test cases/common/125 extract all shared library/meson.build
index 7c24fde..7c24fde 100644
--- a/test cases/common/128 extract all shared library/meson.build
+++ b/test cases/common/125 extract all shared library/meson.build
diff --git a/test cases/common/128 extract all shared library/one.c b/test cases/common/125 extract all shared library/one.c
index cfb0157..cfb0157 100644
--- a/test cases/common/128 extract all shared library/one.c
+++ b/test cases/common/125 extract all shared library/one.c
diff --git a/test cases/common/128 extract all shared library/prog.c b/test cases/common/125 extract all shared library/prog.c
index 57a4c64..57a4c64 100644
--- a/test cases/common/128 extract all shared library/prog.c
+++ b/test cases/common/125 extract all shared library/prog.c
diff --git a/test cases/common/128 extract all shared library/three.c b/test cases/common/125 extract all shared library/three.c
index c410046..c410046 100644
--- a/test cases/common/128 extract all shared library/three.c
+++ b/test cases/common/125 extract all shared library/three.c
diff --git a/test cases/common/128 extract all shared library/two.c b/test cases/common/125 extract all shared library/two.c
index 3ece512..3ece512 100644
--- a/test cases/common/128 extract all shared library/two.c
+++ b/test cases/common/125 extract all shared library/two.c
diff --git a/test cases/common/129 object only target/installed_files.txt b/test cases/common/126 object only target/installed_files.txt
index c7dab9f..c7dab9f 100644
--- a/test cases/common/129 object only target/installed_files.txt
+++ b/test cases/common/126 object only target/installed_files.txt
diff --git a/test cases/common/129 object only target/meson.build b/test cases/common/126 object only target/meson.build
index d83a658..d83a658 100644
--- a/test cases/common/129 object only target/meson.build
+++ b/test cases/common/126 object only target/meson.build
diff --git a/test cases/common/129 object only target/obj_generator.py b/test cases/common/126 object only target/obj_generator.py
index a33872a..a33872a 100755
--- a/test cases/common/129 object only target/obj_generator.py
+++ b/test cases/common/126 object only target/obj_generator.py
diff --git a/test cases/common/129 object only target/prog.c b/test cases/common/126 object only target/prog.c
index 60459d6..60459d6 100644
--- a/test cases/common/129 object only target/prog.c
+++ b/test cases/common/126 object only target/prog.c
diff --git a/test cases/common/129 object only target/source.c b/test cases/common/126 object only target/source.c
index 7779b33..7779b33 100644
--- a/test cases/common/129 object only target/source.c
+++ b/test cases/common/126 object only target/source.c
diff --git a/test cases/common/129 object only target/source2.c b/test cases/common/126 object only target/source2.c
index 29aad40..29aad40 100644
--- a/test cases/common/129 object only target/source2.c
+++ b/test cases/common/126 object only target/source2.c
diff --git a/test cases/common/129 object only target/source2.def b/test cases/common/126 object only target/source2.def
index a993ab8..a993ab8 100644
--- a/test cases/common/129 object only target/source2.def
+++ b/test cases/common/126 object only target/source2.def
diff --git a/test cases/common/129 object only target/source3.c b/test cases/common/126 object only target/source3.c
index 1580f1e..1580f1e 100644
--- a/test cases/common/129 object only target/source3.c
+++ b/test cases/common/126 object only target/source3.c
diff --git a/test cases/common/130 no buildincdir/include/header.h b/test cases/common/127 no buildincdir/include/header.h
index add1850..add1850 100644
--- a/test cases/common/130 no buildincdir/include/header.h
+++ b/test cases/common/127 no buildincdir/include/header.h
diff --git a/test cases/common/130 no buildincdir/meson.build b/test cases/common/127 no buildincdir/meson.build
index ac69e8e..ac69e8e 100644
--- a/test cases/common/130 no buildincdir/meson.build
+++ b/test cases/common/127 no buildincdir/meson.build
diff --git a/test cases/common/130 no buildincdir/prog.c b/test cases/common/127 no buildincdir/prog.c
index 800f0d6..800f0d6 100644
--- a/test cases/common/130 no buildincdir/prog.c
+++ b/test cases/common/127 no buildincdir/prog.c
diff --git a/test cases/common/131 custom target directory install/docgen.py b/test cases/common/128 custom target directory install/docgen.py
index 245f370..245f370 100644
--- a/test cases/common/131 custom target directory install/docgen.py
+++ b/test cases/common/128 custom target directory install/docgen.py
diff --git a/test cases/common/131 custom target directory install/installed_files.txt b/test cases/common/128 custom target directory install/installed_files.txt
index bcf20e0..bcf20e0 100644
--- a/test cases/common/131 custom target directory install/installed_files.txt
+++ b/test cases/common/128 custom target directory install/installed_files.txt
diff --git a/test cases/common/131 custom target directory install/meson.build b/test cases/common/128 custom target directory install/meson.build
index ada9ae1..ada9ae1 100644
--- a/test cases/common/131 custom target directory install/meson.build
+++ b/test cases/common/128 custom target directory install/meson.build
diff --git a/test cases/common/132 dependency file generation/main .c b/test cases/common/129 dependency file generation/main .c
index 0fb4389..0fb4389 100644
--- a/test cases/common/132 dependency file generation/main .c
+++ b/test cases/common/129 dependency file generation/main .c
diff --git a/test cases/common/132 dependency file generation/meson.build b/test cases/common/129 dependency file generation/meson.build
index b5ee47b..b5ee47b 100644
--- a/test cases/common/132 dependency file generation/meson.build
+++ b/test cases/common/129 dependency file generation/meson.build
diff --git a/test cases/common/13 pch/c/meson.build b/test cases/common/13 pch/c/meson.build
new file mode 100644
index 0000000..cb8349d
--- /dev/null
+++ b/test cases/common/13 pch/c/meson.build
@@ -0,0 +1,8 @@
+cc = meson.get_compiler('c')
+cc_id = cc.get_id()
+if cc_id == 'lcc'
+ error('MESON_SKIP_TEST: Elbrus compiler does not support PCH.')
+endif
+
+exe = executable('prog', 'prog.c',
+c_pch : ['pch/prog_pch.c', 'pch/prog.h'])
diff --git a/test cases/common/13 pch/pch/prog.h b/test cases/common/13 pch/c/pch/prog.h
index 354499a..354499a 100644
--- a/test cases/common/13 pch/pch/prog.h
+++ b/test cases/common/13 pch/c/pch/prog.h
diff --git a/test cases/common/13 pch/pch/prog_pch.c b/test cases/common/13 pch/c/pch/prog_pch.c
index 4960505..4960505 100644
--- a/test cases/common/13 pch/pch/prog_pch.c
+++ b/test cases/common/13 pch/c/pch/prog_pch.c
diff --git a/test cases/common/13 pch/prog.c b/test cases/common/13 pch/c/prog.c
index 0ce3d0a..0ce3d0a 100644
--- a/test cases/common/13 pch/prog.c
+++ b/test cases/common/13 pch/c/prog.c
diff --git a/test cases/common/14 cpp pch/meson.build b/test cases/common/13 pch/cpp/meson.build
index 6922fd7..802c3e1 100644
--- a/test cases/common/14 cpp pch/meson.build
+++ b/test cases/common/13 pch/cpp/meson.build
@@ -1,2 +1 @@
-project('c++ pch test', 'cpp')
exe = executable('prog', 'prog.cc', cpp_pch : ['pch/prog.hh', 'pch/prog_pch.cc'])
diff --git a/test cases/common/14 cpp pch/pch/prog.hh b/test cases/common/13 pch/cpp/pch/prog.hh
index 751cc4a..751cc4a 100644
--- a/test cases/common/14 cpp pch/pch/prog.hh
+++ b/test cases/common/13 pch/cpp/pch/prog.hh
diff --git a/test cases/common/14 cpp pch/pch/prog_pch.cc b/test cases/common/13 pch/cpp/pch/prog_pch.cc
index aff1225..aff1225 100644
--- a/test cases/common/14 cpp pch/pch/prog_pch.cc
+++ b/test cases/common/13 pch/cpp/pch/prog_pch.cc
diff --git a/test cases/common/14 cpp pch/prog.cc b/test cases/common/13 pch/cpp/prog.cc
index 629d880..629d880 100644
--- a/test cases/common/14 cpp pch/prog.cc
+++ b/test cases/common/13 pch/cpp/prog.cc
diff --git a/test cases/common/13 pch/meson.build b/test cases/common/13 pch/meson.build
index e144aa5..05b4037 100644
--- a/test cases/common/13 pch/meson.build
+++ b/test cases/common/13 pch/meson.build
@@ -1,10 +1,5 @@
-project('pch test', 'c')
+project('pch test', 'c', 'cpp')
-cc = meson.get_compiler('c')
-cc_id = cc.get_id()
-if cc_id == 'lcc'
- error('MESON_SKIP_TEST: Elbrus compiler does not support PCH.')
-endif
-
-exe = executable('prog', 'prog.c',
-c_pch : ['pch/prog_pch.c', 'pch/prog.h'])
+subdir('c')
+subdir('cpp')
+subdir('mixed')
diff --git a/test cases/common/15 mixed pch/func.c b/test cases/common/13 pch/mixed/func.c
index c02722e..c02722e 100644
--- a/test cases/common/15 mixed pch/func.c
+++ b/test cases/common/13 pch/mixed/func.c
diff --git a/test cases/common/15 mixed pch/main.cc b/test cases/common/13 pch/mixed/main.cc
index 44d049e..44d049e 100644
--- a/test cases/common/15 mixed pch/main.cc
+++ b/test cases/common/13 pch/mixed/main.cc
diff --git a/test cases/common/15 mixed pch/meson.build b/test cases/common/13 pch/mixed/meson.build
index 8e9da93..7f6033d 100644
--- a/test cases/common/15 mixed pch/meson.build
+++ b/test cases/common/13 pch/mixed/meson.build
@@ -1,6 +1,3 @@
-project('mixed C and C++ pch test', 'cpp', 'c')
-
-
exe = executable(
'prog',
files('main.cc', 'func.c'),
diff --git a/test cases/common/15 mixed pch/pch/func.h b/test cases/common/13 pch/mixed/pch/func.h
index 354499a..354499a 100644
--- a/test cases/common/15 mixed pch/pch/func.h
+++ b/test cases/common/13 pch/mixed/pch/func.h
diff --git a/test cases/common/15 mixed pch/pch/func_pch.c b/test cases/common/13 pch/mixed/pch/func_pch.c
index 5566739..5566739 100644
--- a/test cases/common/15 mixed pch/pch/func_pch.c
+++ b/test cases/common/13 pch/mixed/pch/func_pch.c
diff --git a/test cases/common/15 mixed pch/pch/main.h b/test cases/common/13 pch/mixed/pch/main.h
index 751cc4a..751cc4a 100644
--- a/test cases/common/15 mixed pch/pch/main.h
+++ b/test cases/common/13 pch/mixed/pch/main.h
diff --git a/test cases/common/15 mixed pch/pch/main_pch.cc b/test cases/common/13 pch/mixed/pch/main_pch.cc
index acd3f57..acd3f57 100644
--- a/test cases/common/15 mixed pch/pch/main_pch.cc
+++ b/test cases/common/13 pch/mixed/pch/main_pch.cc
diff --git a/test cases/common/133 configure file in generator/inc/confdata.in b/test cases/common/130 configure file in generator/inc/confdata.in
index e44cdea..e44cdea 100644
--- a/test cases/common/133 configure file in generator/inc/confdata.in
+++ b/test cases/common/130 configure file in generator/inc/confdata.in
diff --git a/test cases/common/133 configure file in generator/inc/meson.build b/test cases/common/130 configure file in generator/inc/meson.build
index 05d2dcb..05d2dcb 100644
--- a/test cases/common/133 configure file in generator/inc/meson.build
+++ b/test cases/common/130 configure file in generator/inc/meson.build
diff --git a/test cases/common/133 configure file in generator/meson.build b/test cases/common/130 configure file in generator/meson.build
index e1c26b6..e1c26b6 100644
--- a/test cases/common/133 configure file in generator/meson.build
+++ b/test cases/common/130 configure file in generator/meson.build
diff --git a/test cases/common/133 configure file in generator/src/gen.py b/test cases/common/130 configure file in generator/src/gen.py
index 99b7cdd..99b7cdd 100755
--- a/test cases/common/133 configure file in generator/src/gen.py
+++ b/test cases/common/130 configure file in generator/src/gen.py
diff --git a/test cases/common/133 configure file in generator/src/main.c b/test cases/common/130 configure file in generator/src/main.c
index 54f4f57..54f4f57 100644
--- a/test cases/common/133 configure file in generator/src/main.c
+++ b/test cases/common/130 configure file in generator/src/main.c
diff --git a/test cases/common/133 configure file in generator/src/meson.build b/test cases/common/130 configure file in generator/src/meson.build
index 2fb804e..2fb804e 100644
--- a/test cases/common/133 configure file in generator/src/meson.build
+++ b/test cases/common/130 configure file in generator/src/meson.build
diff --git a/test cases/common/133 configure file in generator/src/source b/test cases/common/130 configure file in generator/src/source
index 4099407..4099407 100644
--- a/test cases/common/133 configure file in generator/src/source
+++ b/test cases/common/130 configure file in generator/src/source
diff --git a/test cases/common/134 generated llvm ir/copyfile.py b/test cases/common/131 generated llvm ir/copyfile.py
index ff42ac3..ff42ac3 100644
--- a/test cases/common/134 generated llvm ir/copyfile.py
+++ b/test cases/common/131 generated llvm ir/copyfile.py
diff --git a/test cases/common/134 generated llvm ir/main.c b/test cases/common/131 generated llvm ir/main.c
index 97fe723..97fe723 100644
--- a/test cases/common/134 generated llvm ir/main.c
+++ b/test cases/common/131 generated llvm ir/main.c
diff --git a/test cases/common/134 generated llvm ir/meson.build b/test cases/common/131 generated llvm ir/meson.build
index 111cdc0..111cdc0 100644
--- a/test cases/common/134 generated llvm ir/meson.build
+++ b/test cases/common/131 generated llvm ir/meson.build
diff --git a/test cases/common/134 generated llvm ir/square.ll.in b/test cases/common/131 generated llvm ir/square.ll.in
index 7c321aa..7c321aa 100644
--- a/test cases/common/134 generated llvm ir/square.ll.in
+++ b/test cases/common/131 generated llvm ir/square.ll.in
diff --git a/test cases/common/135 generated assembly/copyfile.py b/test cases/common/132 generated assembly/copyfile.py
index ff42ac3..ff42ac3 100644
--- a/test cases/common/135 generated assembly/copyfile.py
+++ b/test cases/common/132 generated assembly/copyfile.py
diff --git a/test cases/common/135 generated assembly/main.c b/test cases/common/132 generated assembly/main.c
index b669cba..b669cba 100644
--- a/test cases/common/135 generated assembly/main.c
+++ b/test cases/common/132 generated assembly/main.c
diff --git a/test cases/common/135 generated assembly/meson.build b/test cases/common/132 generated assembly/meson.build
index 6a8744b..6a8744b 100644
--- a/test cases/common/135 generated assembly/meson.build
+++ b/test cases/common/132 generated assembly/meson.build
diff --git a/test cases/common/135 generated assembly/square-arm.S.in b/test cases/common/132 generated assembly/square-arm.S.in
index d2fb7ac..d2fb7ac 100644
--- a/test cases/common/135 generated assembly/square-arm.S.in
+++ b/test cases/common/132 generated assembly/square-arm.S.in
diff --git a/test cases/common/135 generated assembly/square-x86.S.in b/test cases/common/132 generated assembly/square-x86.S.in
index ee77b81..ee77b81 100644
--- a/test cases/common/135 generated assembly/square-x86.S.in
+++ b/test cases/common/132 generated assembly/square-x86.S.in
diff --git a/test cases/common/135 generated assembly/square-x86_64.S.in b/test cases/common/132 generated assembly/square-x86_64.S.in
index 856af13..856af13 100644
--- a/test cases/common/135 generated assembly/square-x86_64.S.in
+++ b/test cases/common/132 generated assembly/square-x86_64.S.in
diff --git a/test cases/common/135 generated assembly/symbol-underscore.h b/test cases/common/132 generated assembly/symbol-underscore.h
index d0f3ef9..d0f3ef9 100644
--- a/test cases/common/135 generated assembly/symbol-underscore.h
+++ b/test cases/common/132 generated assembly/symbol-underscore.h
diff --git a/test cases/common/136 build by default targets in tests/main.c b/test cases/common/133 build by default targets in tests/main.c
index 63a62a1..63a62a1 100644
--- a/test cases/common/136 build by default targets in tests/main.c
+++ b/test cases/common/133 build by default targets in tests/main.c
diff --git a/test cases/common/136 build by default targets in tests/meson.build b/test cases/common/133 build by default targets in tests/meson.build
index 5cc5055..5cc5055 100644
--- a/test cases/common/136 build by default targets in tests/meson.build
+++ b/test cases/common/133 build by default targets in tests/meson.build
diff --git a/test cases/common/136 build by default targets in tests/write_file.py b/test cases/common/133 build by default targets in tests/write_file.py
index ff9c224..ff9c224 100644
--- a/test cases/common/136 build by default targets in tests/write_file.py
+++ b/test cases/common/133 build by default targets in tests/write_file.py
diff --git a/test cases/common/137 build by default/checkexists.py b/test cases/common/134 build by default/checkexists.py
index 6664f72..6664f72 100644
--- a/test cases/common/137 build by default/checkexists.py
+++ b/test cases/common/134 build by default/checkexists.py
diff --git a/test cases/common/137 build by default/foo.c b/test cases/common/134 build by default/foo.c
index ca97916..ca97916 100644
--- a/test cases/common/137 build by default/foo.c
+++ b/test cases/common/134 build by default/foo.c
diff --git a/test cases/common/137 build by default/meson.build b/test cases/common/134 build by default/meson.build
index b28b634..b28b634 100644
--- a/test cases/common/137 build by default/meson.build
+++ b/test cases/common/134 build by default/meson.build
diff --git a/test cases/common/137 build by default/mygen.py b/test cases/common/134 build by default/mygen.py
index 5a74153..5a74153 100644
--- a/test cases/common/137 build by default/mygen.py
+++ b/test cases/common/134 build by default/mygen.py
diff --git a/test cases/common/137 build by default/source.txt b/test cases/common/134 build by default/source.txt
index 3573f4b..3573f4b 100644
--- a/test cases/common/137 build by default/source.txt
+++ b/test cases/common/134 build by default/source.txt
diff --git a/test cases/common/138 include order/ctsub/copyfile.py b/test cases/common/135 include order/ctsub/copyfile.py
index ff42ac3..ff42ac3 100644
--- a/test cases/common/138 include order/ctsub/copyfile.py
+++ b/test cases/common/135 include order/ctsub/copyfile.py
diff --git a/test cases/common/138 include order/ctsub/emptyfile.c b/test cases/common/135 include order/ctsub/emptyfile.c
index e69de29..e69de29 100644
--- a/test cases/common/138 include order/ctsub/emptyfile.c
+++ b/test cases/common/135 include order/ctsub/emptyfile.c
diff --git a/test cases/common/138 include order/ctsub/main.h b/test cases/common/135 include order/ctsub/main.h
index 9d9acf3..9d9acf3 100644
--- a/test cases/common/138 include order/ctsub/main.h
+++ b/test cases/common/135 include order/ctsub/main.h
diff --git a/test cases/common/138 include order/ctsub/meson.build b/test cases/common/135 include order/ctsub/meson.build
index a242e07..a242e07 100644
--- a/test cases/common/138 include order/ctsub/meson.build
+++ b/test cases/common/135 include order/ctsub/meson.build
diff --git a/test cases/common/138 include order/inc1/hdr.h b/test cases/common/135 include order/inc1/hdr.h
index 9d755a8..9d755a8 100644
--- a/test cases/common/138 include order/inc1/hdr.h
+++ b/test cases/common/135 include order/inc1/hdr.h
diff --git a/test cases/common/138 include order/inc2/hdr.h b/test cases/common/135 include order/inc2/hdr.h
index 2ebcaca..2ebcaca 100644
--- a/test cases/common/138 include order/inc2/hdr.h
+++ b/test cases/common/135 include order/inc2/hdr.h
diff --git a/test cases/common/138 include order/meson.build b/test cases/common/135 include order/meson.build
index 9f275b8..9f275b8 100644
--- a/test cases/common/138 include order/meson.build
+++ b/test cases/common/135 include order/meson.build
diff --git a/test cases/common/138 include order/ordertest.c b/test cases/common/135 include order/ordertest.c
index 0d9173f..0d9173f 100644
--- a/test cases/common/138 include order/ordertest.c
+++ b/test cases/common/135 include order/ordertest.c
diff --git a/test cases/common/138 include order/sub1/main.h b/test cases/common/135 include order/sub1/main.h
index acf4a35..acf4a35 100644
--- a/test cases/common/138 include order/sub1/main.h
+++ b/test cases/common/135 include order/sub1/main.h
diff --git a/test cases/common/138 include order/sub1/meson.build b/test cases/common/135 include order/sub1/meson.build
index 9672945..9672945 100644
--- a/test cases/common/138 include order/sub1/meson.build
+++ b/test cases/common/135 include order/sub1/meson.build
diff --git a/test cases/common/138 include order/sub1/some.c b/test cases/common/135 include order/sub1/some.c
index 1ab0db4..1ab0db4 100644
--- a/test cases/common/138 include order/sub1/some.c
+++ b/test cases/common/135 include order/sub1/some.c
diff --git a/test cases/common/138 include order/sub1/some.h b/test cases/common/135 include order/sub1/some.h
index 6479492..6479492 100644
--- a/test cases/common/138 include order/sub1/some.h
+++ b/test cases/common/135 include order/sub1/some.h
diff --git a/test cases/common/138 include order/sub2/main.h b/test cases/common/135 include order/sub2/main.h
index b9c0da9..b9c0da9 100644
--- a/test cases/common/138 include order/sub2/main.h
+++ b/test cases/common/135 include order/sub2/main.h
diff --git a/test cases/common/138 include order/sub2/meson.build b/test cases/common/135 include order/sub2/meson.build
index b1e6190..b1e6190 100644
--- a/test cases/common/138 include order/sub2/meson.build
+++ b/test cases/common/135 include order/sub2/meson.build
diff --git a/test cases/common/138 include order/sub3/main.h b/test cases/common/135 include order/sub3/main.h
index 1ab7231..1ab7231 100644
--- a/test cases/common/138 include order/sub3/main.h
+++ b/test cases/common/135 include order/sub3/main.h
diff --git a/test cases/common/138 include order/sub3/meson.build b/test cases/common/135 include order/sub3/meson.build
index 0bd3906..0bd3906 100644
--- a/test cases/common/138 include order/sub3/meson.build
+++ b/test cases/common/135 include order/sub3/meson.build
diff --git a/test cases/common/138 include order/sub4/main.c b/test cases/common/135 include order/sub4/main.c
index 0b25eed..0b25eed 100644
--- a/test cases/common/138 include order/sub4/main.c
+++ b/test cases/common/135 include order/sub4/main.c
diff --git a/test cases/common/138 include order/sub4/main.h b/test cases/common/135 include order/sub4/main.h
index 194d7fe..194d7fe 100644
--- a/test cases/common/138 include order/sub4/main.h
+++ b/test cases/common/135 include order/sub4/main.h
diff --git a/test cases/common/138 include order/sub4/meson.build b/test cases/common/135 include order/sub4/meson.build
index c01edaa..c01edaa 100644
--- a/test cases/common/138 include order/sub4/meson.build
+++ b/test cases/common/135 include order/sub4/meson.build
diff --git a/test cases/common/139 override options/four.c b/test cases/common/136 override options/four.c
index 54f8491..54f8491 100644
--- a/test cases/common/139 override options/four.c
+++ b/test cases/common/136 override options/four.c
diff --git a/test cases/common/139 override options/meson.build b/test cases/common/136 override options/meson.build
index 4dd8d79..4dd8d79 100644
--- a/test cases/common/139 override options/meson.build
+++ b/test cases/common/136 override options/meson.build
diff --git a/test cases/common/139 override options/one.c b/test cases/common/136 override options/one.c
index 14fe9d6..14fe9d6 100644
--- a/test cases/common/139 override options/one.c
+++ b/test cases/common/136 override options/one.c
diff --git a/test cases/common/139 override options/three.c b/test cases/common/136 override options/three.c
index 305a575..305a575 100644
--- a/test cases/common/139 override options/three.c
+++ b/test cases/common/136 override options/three.c
diff --git a/test cases/common/139 override options/two.c b/test cases/common/136 override options/two.c
index 04b1d3f..04b1d3f 100644
--- a/test cases/common/139 override options/two.c
+++ b/test cases/common/136 override options/two.c
diff --git a/test cases/common/140 get define/concat.h b/test cases/common/137 get define/concat.h
index 6eb3e5e..6eb3e5e 100644
--- a/test cases/common/140 get define/concat.h
+++ b/test cases/common/137 get define/concat.h
diff --git a/test cases/common/140 get define/meson.build b/test cases/common/137 get define/meson.build
index b20c554..b20c554 100644
--- a/test cases/common/140 get define/meson.build
+++ b/test cases/common/137 get define/meson.build
diff --git a/test cases/common/140 get define/meson_options.txt b/test cases/common/137 get define/meson_options.txt
index 7d34a2e..7d34a2e 100644
--- a/test cases/common/140 get define/meson_options.txt
+++ b/test cases/common/137 get define/meson_options.txt
diff --git a/test cases/common/141 c cpp and asm/main.c b/test cases/common/138 c cpp and asm/main.c
index 8976723..8976723 100644
--- a/test cases/common/141 c cpp and asm/main.c
+++ b/test cases/common/138 c cpp and asm/main.c
diff --git a/test cases/common/141 c cpp and asm/main.cpp b/test cases/common/138 c cpp and asm/main.cpp
index c089870..c089870 100644
--- a/test cases/common/141 c cpp and asm/main.cpp
+++ b/test cases/common/138 c cpp and asm/main.cpp
diff --git a/test cases/common/141 c cpp and asm/meson.build b/test cases/common/138 c cpp and asm/meson.build
index 2c3610e..2c3610e 100644
--- a/test cases/common/141 c cpp and asm/meson.build
+++ b/test cases/common/138 c cpp and asm/meson.build
diff --git a/test cases/common/141 c cpp and asm/retval-arm.S b/test cases/common/138 c cpp and asm/retval-arm.S
index a892362..a892362 100644
--- a/test cases/common/141 c cpp and asm/retval-arm.S
+++ b/test cases/common/138 c cpp and asm/retval-arm.S
diff --git a/test cases/common/141 c cpp and asm/retval-x86.S b/test cases/common/138 c cpp and asm/retval-x86.S
index 3cb0237..3cb0237 100644
--- a/test cases/common/141 c cpp and asm/retval-x86.S
+++ b/test cases/common/138 c cpp and asm/retval-x86.S
diff --git a/test cases/common/141 c cpp and asm/retval-x86_64.S b/test cases/common/138 c cpp and asm/retval-x86_64.S
index 1a5f3eb..1a5f3eb 100644
--- a/test cases/common/141 c cpp and asm/retval-x86_64.S
+++ b/test cases/common/138 c cpp and asm/retval-x86_64.S
diff --git a/test cases/common/141 c cpp and asm/somelib.c b/test cases/common/138 c cpp and asm/somelib.c
index e585b8e..e585b8e 100644
--- a/test cases/common/141 c cpp and asm/somelib.c
+++ b/test cases/common/138 c cpp and asm/somelib.c
diff --git a/test cases/common/141 c cpp and asm/symbol-underscore.h b/test cases/common/138 c cpp and asm/symbol-underscore.h
index d0f3ef9..d0f3ef9 100644
--- a/test cases/common/141 c cpp and asm/symbol-underscore.h
+++ b/test cases/common/138 c cpp and asm/symbol-underscore.h
diff --git a/test cases/common/142 compute int/config.h.in b/test cases/common/139 compute int/config.h.in
index 0de63ab..0de63ab 100644
--- a/test cases/common/142 compute int/config.h.in
+++ b/test cases/common/139 compute int/config.h.in
diff --git a/test cases/common/142 compute int/foobar.h b/test cases/common/139 compute int/foobar.h
index fd3cb5e..fd3cb5e 100644
--- a/test cases/common/142 compute int/foobar.h
+++ b/test cases/common/139 compute int/foobar.h
diff --git a/test cases/common/142 compute int/meson.build b/test cases/common/139 compute int/meson.build
index 22bd266..22bd266 100644
--- a/test cases/common/142 compute int/meson.build
+++ b/test cases/common/139 compute int/meson.build
diff --git a/test cases/common/142 compute int/prog.c.in b/test cases/common/139 compute int/prog.c.in
index ff1ad55..ff1ad55 100644
--- a/test cases/common/142 compute int/prog.c.in
+++ b/test cases/common/139 compute int/prog.c.in
diff --git a/test cases/common/16 configure file/basename.py b/test cases/common/14 configure file/basename.py
index d2c8662..d2c8662 100644
--- a/test cases/common/16 configure file/basename.py
+++ b/test cases/common/14 configure file/basename.py
diff --git a/test cases/common/16 configure file/check_file.py b/test cases/common/14 configure file/check_file.py
index 6aa73e0..6aa73e0 100644
--- a/test cases/common/16 configure file/check_file.py
+++ b/test cases/common/14 configure file/check_file.py
diff --git a/test cases/common/16 configure file/config.h b/test cases/common/14 configure file/config.h
index e85b634..e85b634 100644
--- a/test cases/common/16 configure file/config.h
+++ b/test cases/common/14 configure file/config.h
diff --git a/test cases/common/16 configure file/config.h.in b/test cases/common/14 configure file/config.h.in
index 14a1558..14a1558 100644
--- a/test cases/common/16 configure file/config.h.in
+++ b/test cases/common/14 configure file/config.h.in
diff --git a/test cases/common/16 configure file/config4a.h.in b/test cases/common/14 configure file/config4a.h.in
index aafd195..aafd195 100644
--- a/test cases/common/16 configure file/config4a.h.in
+++ b/test cases/common/14 configure file/config4a.h.in
diff --git a/test cases/common/16 configure file/config4b.h.in b/test cases/common/14 configure file/config4b.h.in
index 3408bab..3408bab 100644
--- a/test cases/common/16 configure file/config4b.h.in
+++ b/test cases/common/14 configure file/config4b.h.in
diff --git a/test cases/common/16 configure file/config5.h.in b/test cases/common/14 configure file/config5.h.in
index 323bec6..323bec6 100644
--- a/test cases/common/16 configure file/config5.h.in
+++ b/test cases/common/14 configure file/config5.h.in
diff --git a/test cases/common/16 configure file/config6.h.in b/test cases/common/14 configure file/config6.h.in
index 9719f87..9719f87 100644
--- a/test cases/common/16 configure file/config6.h.in
+++ b/test cases/common/14 configure file/config6.h.in
diff --git a/test cases/common/16 configure file/config7.h.in b/test cases/common/14 configure file/config7.h.in
index edd0bb3..edd0bb3 100644
--- a/test cases/common/16 configure file/config7.h.in
+++ b/test cases/common/14 configure file/config7.h.in
diff --git a/test cases/common/16 configure file/config8.h.in b/test cases/common/14 configure file/config8.h.in
index b854ea0..b854ea0 100644
--- a/test cases/common/16 configure file/config8.h.in
+++ b/test cases/common/14 configure file/config8.h.in
diff --git a/test cases/common/16 configure file/dummy.dat b/test cases/common/14 configure file/dummy.dat
index e69de29..e69de29 100644
--- a/test cases/common/16 configure file/dummy.dat
+++ b/test cases/common/14 configure file/dummy.dat
diff --git a/test cases/common/16 configure file/dumpprog.c b/test cases/common/14 configure file/dumpprog.c
index 39a215e..39a215e 100644
--- a/test cases/common/16 configure file/dumpprog.c
+++ b/test cases/common/14 configure file/dumpprog.c
diff --git a/test cases/common/16 configure file/file_contains.py b/test cases/common/14 configure file/file_contains.py
index 25634f5..25634f5 100644
--- a/test cases/common/16 configure file/file_contains.py
+++ b/test cases/common/14 configure file/file_contains.py
diff --git a/test cases/common/16 configure file/generator-without-input-file.py b/test cases/common/14 configure file/generator-without-input-file.py
index 2ee059e..2ee059e 100755
--- a/test cases/common/16 configure file/generator-without-input-file.py
+++ b/test cases/common/14 configure file/generator-without-input-file.py
diff --git a/test cases/common/16 configure file/generator.py b/test cases/common/14 configure file/generator.py
index e3cc881..e3cc881 100755
--- a/test cases/common/16 configure file/generator.py
+++ b/test cases/common/14 configure file/generator.py
diff --git a/test cases/common/16 configure file/installed_files.txt b/test cases/common/14 configure file/installed_files.txt
index 542516e..542516e 100644
--- a/test cases/common/16 configure file/installed_files.txt
+++ b/test cases/common/14 configure file/installed_files.txt
diff --git a/test cases/common/16 configure file/invalid-utf8.bin.in b/test cases/common/14 configure file/invalid-utf8.bin.in
index 98e9ed9..98e9ed9 100644
--- a/test cases/common/16 configure file/invalid-utf8.bin.in
+++ b/test cases/common/14 configure file/invalid-utf8.bin.in
Binary files differ
diff --git a/test cases/common/16 configure file/meson.build b/test cases/common/14 configure file/meson.build
index d7beeb1..d7beeb1 100644
--- a/test cases/common/16 configure file/meson.build
+++ b/test cases/common/14 configure file/meson.build
diff --git a/test cases/common/16 configure file/nosubst-nocopy1.txt.in b/test cases/common/14 configure file/nosubst-nocopy1.txt.in
index 6e893a1..6e893a1 100644
--- a/test cases/common/16 configure file/nosubst-nocopy1.txt.in
+++ b/test cases/common/14 configure file/nosubst-nocopy1.txt.in
diff --git a/test cases/common/16 configure file/nosubst-nocopy2.txt.in b/test cases/common/14 configure file/nosubst-nocopy2.txt.in
index a6a7cca..a6a7cca 100644
--- a/test cases/common/16 configure file/nosubst-nocopy2.txt.in
+++ b/test cases/common/14 configure file/nosubst-nocopy2.txt.in
diff --git a/test cases/common/16 configure file/prog.c b/test cases/common/14 configure file/prog.c
index 89a718e..89a718e 100644
--- a/test cases/common/16 configure file/prog.c
+++ b/test cases/common/14 configure file/prog.c
diff --git a/test cases/common/16 configure file/prog2.c b/test cases/common/14 configure file/prog2.c
index a88c70f..a88c70f 100644
--- a/test cases/common/16 configure file/prog2.c
+++ b/test cases/common/14 configure file/prog2.c
diff --git a/test cases/common/16 configure file/prog4.c b/test cases/common/14 configure file/prog4.c
index 92dc7cb..92dc7cb 100644
--- a/test cases/common/16 configure file/prog4.c
+++ b/test cases/common/14 configure file/prog4.c
diff --git a/test cases/common/16 configure file/prog5.c b/test cases/common/14 configure file/prog5.c
index 42c08f9..42c08f9 100644
--- a/test cases/common/16 configure file/prog5.c
+++ b/test cases/common/14 configure file/prog5.c
diff --git a/test cases/common/16 configure file/prog6.c b/test cases/common/14 configure file/prog6.c
index 7412404..7412404 100644
--- a/test cases/common/16 configure file/prog6.c
+++ b/test cases/common/14 configure file/prog6.c
diff --git a/test cases/common/16 configure file/prog7.c b/test cases/common/14 configure file/prog7.c
index 0bb7d13..0bb7d13 100644
--- a/test cases/common/16 configure file/prog7.c
+++ b/test cases/common/14 configure file/prog7.c
diff --git a/test cases/common/16 configure file/subdir/meson.build b/test cases/common/14 configure file/subdir/meson.build
index 146b7b6..146b7b6 100644
--- a/test cases/common/16 configure file/subdir/meson.build
+++ b/test cases/common/14 configure file/subdir/meson.build
diff --git a/test cases/common/16 configure file/test.py.in b/test cases/common/14 configure file/test.py.in
index 15a61f5..15a61f5 100644
--- a/test cases/common/16 configure file/test.py.in
+++ b/test cases/common/14 configure file/test.py.in
diff --git a/test cases/common/16 configure file/touch.py b/test cases/common/14 configure file/touch.py
index b48f481..b48f481 100644
--- a/test cases/common/16 configure file/touch.py
+++ b/test cases/common/14 configure file/touch.py
diff --git a/test cases/common/143 custom target object output/meson.build b/test cases/common/140 custom target object output/meson.build
index ede165b..ede165b 100644
--- a/test cases/common/143 custom target object output/meson.build
+++ b/test cases/common/140 custom target object output/meson.build
diff --git a/test cases/common/143 custom target object output/obj_generator.py b/test cases/common/140 custom target object output/obj_generator.py
index a33872a..a33872a 100644
--- a/test cases/common/143 custom target object output/obj_generator.py
+++ b/test cases/common/140 custom target object output/obj_generator.py
diff --git a/test cases/common/143 custom target object output/objdir/meson.build b/test cases/common/140 custom target object output/objdir/meson.build
index 0d7f6c2..0d7f6c2 100644
--- a/test cases/common/143 custom target object output/objdir/meson.build
+++ b/test cases/common/140 custom target object output/objdir/meson.build
diff --git a/test cases/common/143 custom target object output/objdir/source.c b/test cases/common/140 custom target object output/objdir/source.c
index 7779b33..7779b33 100644
--- a/test cases/common/143 custom target object output/objdir/source.c
+++ b/test cases/common/140 custom target object output/objdir/source.c
diff --git a/test cases/common/143 custom target object output/progdir/meson.build b/test cases/common/140 custom target object output/progdir/meson.build
index 4216c24..4216c24 100644
--- a/test cases/common/143 custom target object output/progdir/meson.build
+++ b/test cases/common/140 custom target object output/progdir/meson.build
diff --git a/test cases/common/143 custom target object output/progdir/prog.c b/test cases/common/140 custom target object output/progdir/prog.c
index c1ece33..c1ece33 100644
--- a/test cases/common/143 custom target object output/progdir/prog.c
+++ b/test cases/common/140 custom target object output/progdir/prog.c
diff --git a/test cases/common/144 empty build file/meson.build b/test cases/common/141 empty build file/meson.build
index 73d0397..73d0397 100644
--- a/test cases/common/144 empty build file/meson.build
+++ b/test cases/common/141 empty build file/meson.build
diff --git a/test cases/common/144 empty build file/subdir/meson.build b/test cases/common/141 empty build file/subdir/meson.build
index e69de29..e69de29 100644
--- a/test cases/common/144 empty build file/subdir/meson.build
+++ b/test cases/common/141 empty build file/subdir/meson.build
diff --git a/test cases/common/145 whole archive/exe/meson.build b/test cases/common/142 whole archive/exe/meson.build
index 91d298d..91d298d 100644
--- a/test cases/common/145 whole archive/exe/meson.build
+++ b/test cases/common/142 whole archive/exe/meson.build
diff --git a/test cases/common/145 whole archive/exe2/meson.build b/test cases/common/142 whole archive/exe2/meson.build
index 9184864..9184864 100644
--- a/test cases/common/145 whole archive/exe2/meson.build
+++ b/test cases/common/142 whole archive/exe2/meson.build
diff --git a/test cases/common/145 whole archive/exe3/meson.build b/test cases/common/142 whole archive/exe3/meson.build
index 82cf57e..82cf57e 100644
--- a/test cases/common/145 whole archive/exe3/meson.build
+++ b/test cases/common/142 whole archive/exe3/meson.build
diff --git a/test cases/common/145 whole archive/exe4/meson.build b/test cases/common/142 whole archive/exe4/meson.build
index 0781250..0781250 100644
--- a/test cases/common/145 whole archive/exe4/meson.build
+++ b/test cases/common/142 whole archive/exe4/meson.build
diff --git a/test cases/common/145 whole archive/func1.c b/test cases/common/142 whole archive/func1.c
index b2690a0..b2690a0 100644
--- a/test cases/common/145 whole archive/func1.c
+++ b/test cases/common/142 whole archive/func1.c
diff --git a/test cases/common/145 whole archive/func2.c b/test cases/common/142 whole archive/func2.c
index 9e287a4..9e287a4 100644
--- a/test cases/common/145 whole archive/func2.c
+++ b/test cases/common/142 whole archive/func2.c
diff --git a/test cases/common/145 whole archive/meson.build b/test cases/common/142 whole archive/meson.build
index 012df33..012df33 100644
--- a/test cases/common/145 whole archive/meson.build
+++ b/test cases/common/142 whole archive/meson.build
diff --git a/test cases/common/145 whole archive/mylib.h b/test cases/common/142 whole archive/mylib.h
index 813cc67..813cc67 100644
--- a/test cases/common/145 whole archive/mylib.h
+++ b/test cases/common/142 whole archive/mylib.h
diff --git a/test cases/common/145 whole archive/prog.c b/test cases/common/142 whole archive/prog.c
index 9111ad4..9111ad4 100644
--- a/test cases/common/145 whole archive/prog.c
+++ b/test cases/common/142 whole archive/prog.c
diff --git a/test cases/common/145 whole archive/sh_func2_dep_func1/meson.build b/test cases/common/142 whole archive/sh_func2_dep_func1/meson.build
index 92baca6..92baca6 100644
--- a/test cases/common/145 whole archive/sh_func2_dep_func1/meson.build
+++ b/test cases/common/142 whole archive/sh_func2_dep_func1/meson.build
diff --git a/test cases/common/145 whole archive/sh_func2_linked_func1/meson.build b/test cases/common/142 whole archive/sh_func2_linked_func1/meson.build
index 2858f65..2858f65 100644
--- a/test cases/common/145 whole archive/sh_func2_linked_func1/meson.build
+++ b/test cases/common/142 whole archive/sh_func2_linked_func1/meson.build
diff --git a/test cases/common/145 whole archive/sh_func2_transdep_func1/meson.build b/test cases/common/142 whole archive/sh_func2_transdep_func1/meson.build
index 0703077..0703077 100644
--- a/test cases/common/145 whole archive/sh_func2_transdep_func1/meson.build
+++ b/test cases/common/142 whole archive/sh_func2_transdep_func1/meson.build
diff --git a/test cases/common/145 whole archive/sh_only_link_whole/meson.build b/test cases/common/142 whole archive/sh_only_link_whole/meson.build
index 64baabd..64baabd 100644
--- a/test cases/common/145 whole archive/sh_only_link_whole/meson.build
+++ b/test cases/common/142 whole archive/sh_only_link_whole/meson.build
diff --git a/test cases/common/145 whole archive/st_func1/meson.build b/test cases/common/142 whole archive/st_func1/meson.build
index c84d781..c84d781 100644
--- a/test cases/common/145 whole archive/st_func1/meson.build
+++ b/test cases/common/142 whole archive/st_func1/meson.build
diff --git a/test cases/common/145 whole archive/st_func2/meson.build b/test cases/common/142 whole archive/st_func2/meson.build
index 2732f96..2732f96 100644
--- a/test cases/common/145 whole archive/st_func2/meson.build
+++ b/test cases/common/142 whole archive/st_func2/meson.build
diff --git a/test cases/common/146 C and CPP link/dummy.c b/test cases/common/143 C and CPP link/dummy.c
index e69de29..e69de29 100644
--- a/test cases/common/146 C and CPP link/dummy.c
+++ b/test cases/common/143 C and CPP link/dummy.c
diff --git a/test cases/common/146 C and CPP link/foo.c b/test cases/common/143 C and CPP link/foo.c
index 77c7e39..77c7e39 100644
--- a/test cases/common/146 C and CPP link/foo.c
+++ b/test cases/common/143 C and CPP link/foo.c
diff --git a/test cases/common/146 C and CPP link/foo.cpp b/test cases/common/143 C and CPP link/foo.cpp
index 9db7fb2..9db7fb2 100644
--- a/test cases/common/146 C and CPP link/foo.cpp
+++ b/test cases/common/143 C and CPP link/foo.cpp
diff --git a/test cases/common/146 C and CPP link/foo.h b/test cases/common/143 C and CPP link/foo.h
index 1ed8ce9..1ed8ce9 100644
--- a/test cases/common/146 C and CPP link/foo.h
+++ b/test cases/common/143 C and CPP link/foo.h
diff --git a/test cases/common/146 C and CPP link/foo.hpp b/test cases/common/143 C and CPP link/foo.hpp
index e47f01d..e47f01d 100644
--- a/test cases/common/146 C and CPP link/foo.hpp
+++ b/test cases/common/143 C and CPP link/foo.hpp
diff --git a/test cases/common/146 C and CPP link/foobar.c b/test cases/common/143 C and CPP link/foobar.c
index 27928bf..27928bf 100644
--- a/test cases/common/146 C and CPP link/foobar.c
+++ b/test cases/common/143 C and CPP link/foobar.c
diff --git a/test cases/common/146 C and CPP link/foobar.h b/test cases/common/143 C and CPP link/foobar.h
index 6dcb096..6dcb096 100644
--- a/test cases/common/146 C and CPP link/foobar.h
+++ b/test cases/common/143 C and CPP link/foobar.h
diff --git a/test cases/common/146 C and CPP link/meson.build b/test cases/common/143 C and CPP link/meson.build
index 55c1b87..55c1b87 100644
--- a/test cases/common/146 C and CPP link/meson.build
+++ b/test cases/common/143 C and CPP link/meson.build
diff --git a/test cases/common/146 C and CPP link/sub.c b/test cases/common/143 C and CPP link/sub.c
index 7c078f8..7c078f8 100644
--- a/test cases/common/146 C and CPP link/sub.c
+++ b/test cases/common/143 C and CPP link/sub.c
diff --git a/test cases/common/146 C and CPP link/sub.h b/test cases/common/143 C and CPP link/sub.h
index 5b02e17..5b02e17 100644
--- a/test cases/common/146 C and CPP link/sub.h
+++ b/test cases/common/143 C and CPP link/sub.h
diff --git a/test cases/common/147 mesonintrospect from scripts/check_env.py b/test cases/common/144 mesonintrospect from scripts/check_env.py
index 2d46d88..2d46d88 100644
--- a/test cases/common/147 mesonintrospect from scripts/check_env.py
+++ b/test cases/common/144 mesonintrospect from scripts/check_env.py
diff --git a/test cases/common/147 mesonintrospect from scripts/meson.build b/test cases/common/144 mesonintrospect from scripts/meson.build
index f78710b..f78710b 100644
--- a/test cases/common/147 mesonintrospect from scripts/meson.build
+++ b/test cases/common/144 mesonintrospect from scripts/meson.build
diff --git a/test cases/common/148 custom target multiple outputs/generator.py b/test cases/common/145 custom target multiple outputs/generator.py
index 39dbd11..39dbd11 100755
--- a/test cases/common/148 custom target multiple outputs/generator.py
+++ b/test cases/common/145 custom target multiple outputs/generator.py
diff --git a/test cases/common/148 custom target multiple outputs/installed_files.txt b/test cases/common/145 custom target multiple outputs/installed_files.txt
index 21e1249..21e1249 100644
--- a/test cases/common/148 custom target multiple outputs/installed_files.txt
+++ b/test cases/common/145 custom target multiple outputs/installed_files.txt
diff --git a/test cases/common/148 custom target multiple outputs/meson.build b/test cases/common/145 custom target multiple outputs/meson.build
index 6412864..6412864 100644
--- a/test cases/common/148 custom target multiple outputs/meson.build
+++ b/test cases/common/145 custom target multiple outputs/meson.build
diff --git a/test cases/common/149 special characters/check_quoting.py b/test cases/common/146 special characters/check_quoting.py
index d6e50ea..d6e50ea 100644
--- a/test cases/common/149 special characters/check_quoting.py
+++ b/test cases/common/146 special characters/check_quoting.py
diff --git a/test cases/common/149 special characters/installed_files.txt b/test cases/common/146 special characters/installed_files.txt
index f677881..f677881 100644
--- a/test cases/common/149 special characters/installed_files.txt
+++ b/test cases/common/146 special characters/installed_files.txt
diff --git a/test cases/common/149 special characters/meson.build b/test cases/common/146 special characters/meson.build
index ecba650..ecba650 100644
--- a/test cases/common/149 special characters/meson.build
+++ b/test cases/common/146 special characters/meson.build
diff --git a/test cases/common/150 nested links/meson.build b/test cases/common/147 nested links/meson.build
index 0821b03..0821b03 100644
--- a/test cases/common/150 nested links/meson.build
+++ b/test cases/common/147 nested links/meson.build
diff --git a/test cases/common/150 nested links/xephyr.c b/test cases/common/147 nested links/xephyr.c
index 33c14ce..33c14ce 100644
--- a/test cases/common/150 nested links/xephyr.c
+++ b/test cases/common/147 nested links/xephyr.c
diff --git a/test cases/common/151 list of file sources/foo b/test cases/common/148 list of file sources/foo
index 7b57bd2..7b57bd2 100644
--- a/test cases/common/151 list of file sources/foo
+++ b/test cases/common/148 list of file sources/foo
diff --git a/test cases/common/151 list of file sources/gen.py b/test cases/common/148 list of file sources/gen.py
index 2337d3d..2337d3d 100644
--- a/test cases/common/151 list of file sources/gen.py
+++ b/test cases/common/148 list of file sources/gen.py
diff --git a/test cases/common/151 list of file sources/meson.build b/test cases/common/148 list of file sources/meson.build
index 819509d..819509d 100644
--- a/test cases/common/151 list of file sources/meson.build
+++ b/test cases/common/148 list of file sources/meson.build
diff --git a/test cases/common/152 link depends custom target/foo.c b/test cases/common/149 link depends custom target/foo.c
index 8700a9e..8700a9e 100644
--- a/test cases/common/152 link depends custom target/foo.c
+++ b/test cases/common/149 link depends custom target/foo.c
diff --git a/test cases/common/152 link depends custom target/make_file.py b/test cases/common/149 link depends custom target/make_file.py
index ceb6e19..ceb6e19 100755
--- a/test cases/common/152 link depends custom target/make_file.py
+++ b/test cases/common/149 link depends custom target/make_file.py
diff --git a/test cases/common/152 link depends custom target/meson.build b/test cases/common/149 link depends custom target/meson.build
index ee7a865..ee7a865 100644
--- a/test cases/common/152 link depends custom target/meson.build
+++ b/test cases/common/149 link depends custom target/meson.build
diff --git a/test cases/common/17 if/meson.build b/test cases/common/15 if/meson.build
index 2103d20..b0288db 100644
--- a/test cases/common/17 if/meson.build
+++ b/test cases/common/15 if/meson.build
@@ -28,3 +28,33 @@ endif
if get_variable('nonexisting', false)
error('Get_variable fail.')
endif
+
+
+# Now test elseif
+
+t = true
+f = false
+
+if true
+ message('Ok.')
+elif true
+ error('Error')
+else
+ error('Error')
+endif
+
+if f
+ error('Error.')
+elif t
+ message('Ok')
+else
+ error('Error')
+endif
+
+if f
+ error('Error.')
+elif false
+ error('Error')
+else
+ message('Ok')
+endif
diff --git a/test cases/common/17 if/prog.c b/test cases/common/15 if/prog.c
index 0314ff1..0314ff1 100644
--- a/test cases/common/17 if/prog.c
+++ b/test cases/common/15 if/prog.c
diff --git a/test cases/common/153 recursive linking/3rdorderdeps/lib.c.in b/test cases/common/150 recursive linking/3rdorderdeps/lib.c.in
index 461f859..461f859 100644
--- a/test cases/common/153 recursive linking/3rdorderdeps/lib.c.in
+++ b/test cases/common/150 recursive linking/3rdorderdeps/lib.c.in
diff --git a/test cases/common/153 recursive linking/3rdorderdeps/main.c.in b/test cases/common/150 recursive linking/3rdorderdeps/main.c.in
index 8155f35..8155f35 100644
--- a/test cases/common/153 recursive linking/3rdorderdeps/main.c.in
+++ b/test cases/common/150 recursive linking/3rdorderdeps/main.c.in
diff --git a/test cases/common/153 recursive linking/3rdorderdeps/meson.build b/test cases/common/150 recursive linking/3rdorderdeps/meson.build
index d4ef745..d4ef745 100644
--- a/test cases/common/153 recursive linking/3rdorderdeps/meson.build
+++ b/test cases/common/150 recursive linking/3rdorderdeps/meson.build
diff --git a/test cases/common/153 recursive linking/circular/lib1.c b/test cases/common/150 recursive linking/circular/lib1.c
index 38889cf..38889cf 100644
--- a/test cases/common/153 recursive linking/circular/lib1.c
+++ b/test cases/common/150 recursive linking/circular/lib1.c
diff --git a/test cases/common/153 recursive linking/circular/lib2.c b/test cases/common/150 recursive linking/circular/lib2.c
index 31cd37c..31cd37c 100644
--- a/test cases/common/153 recursive linking/circular/lib2.c
+++ b/test cases/common/150 recursive linking/circular/lib2.c
diff --git a/test cases/common/153 recursive linking/circular/lib3.c b/test cases/common/150 recursive linking/circular/lib3.c
index 67d473a..67d473a 100644
--- a/test cases/common/153 recursive linking/circular/lib3.c
+++ b/test cases/common/150 recursive linking/circular/lib3.c
diff --git a/test cases/common/153 recursive linking/circular/main.c b/test cases/common/150 recursive linking/circular/main.c
index 5f797a5..5f797a5 100644
--- a/test cases/common/153 recursive linking/circular/main.c
+++ b/test cases/common/150 recursive linking/circular/main.c
diff --git a/test cases/common/153 recursive linking/circular/meson.build b/test cases/common/150 recursive linking/circular/meson.build
index b7a70a8..b7a70a8 100644
--- a/test cases/common/153 recursive linking/circular/meson.build
+++ b/test cases/common/150 recursive linking/circular/meson.build
diff --git a/test cases/common/153 recursive linking/circular/prop1.c b/test cases/common/150 recursive linking/circular/prop1.c
index 4e571f5..4e571f5 100644
--- a/test cases/common/153 recursive linking/circular/prop1.c
+++ b/test cases/common/150 recursive linking/circular/prop1.c
diff --git a/test cases/common/153 recursive linking/circular/prop2.c b/test cases/common/150 recursive linking/circular/prop2.c
index ceabba0..ceabba0 100644
--- a/test cases/common/153 recursive linking/circular/prop2.c
+++ b/test cases/common/150 recursive linking/circular/prop2.c
diff --git a/test cases/common/153 recursive linking/circular/prop3.c b/test cases/common/150 recursive linking/circular/prop3.c
index 246206c..246206c 100644
--- a/test cases/common/153 recursive linking/circular/prop3.c
+++ b/test cases/common/150 recursive linking/circular/prop3.c
diff --git a/test cases/common/153 recursive linking/edge-cases/libsto.c b/test cases/common/150 recursive linking/edge-cases/libsto.c
index 93f46a8..93f46a8 100644
--- a/test cases/common/153 recursive linking/edge-cases/libsto.c
+++ b/test cases/common/150 recursive linking/edge-cases/libsto.c
diff --git a/test cases/common/153 recursive linking/edge-cases/meson.build b/test cases/common/150 recursive linking/edge-cases/meson.build
index 6a46266..6a46266 100644
--- a/test cases/common/153 recursive linking/edge-cases/meson.build
+++ b/test cases/common/150 recursive linking/edge-cases/meson.build
diff --git a/test cases/common/153 recursive linking/edge-cases/shstmain.c b/test cases/common/150 recursive linking/edge-cases/shstmain.c
index b44c55f..b44c55f 100644
--- a/test cases/common/153 recursive linking/edge-cases/shstmain.c
+++ b/test cases/common/150 recursive linking/edge-cases/shstmain.c
diff --git a/test cases/common/153 recursive linking/edge-cases/stobuilt.c b/test cases/common/150 recursive linking/edge-cases/stobuilt.c
index 9cc15bc..9cc15bc 100644
--- a/test cases/common/153 recursive linking/edge-cases/stobuilt.c
+++ b/test cases/common/150 recursive linking/edge-cases/stobuilt.c
diff --git a/test cases/common/153 recursive linking/edge-cases/stomain.c b/test cases/common/150 recursive linking/edge-cases/stomain.c
index 90208a7..90208a7 100644
--- a/test cases/common/153 recursive linking/edge-cases/stomain.c
+++ b/test cases/common/150 recursive linking/edge-cases/stomain.c
diff --git a/test cases/common/153 recursive linking/lib.h b/test cases/common/150 recursive linking/lib.h
index b54bf36..b54bf36 100644
--- a/test cases/common/153 recursive linking/lib.h
+++ b/test cases/common/150 recursive linking/lib.h
diff --git a/test cases/common/153 recursive linking/main.c b/test cases/common/150 recursive linking/main.c
index 0851611..0851611 100644
--- a/test cases/common/153 recursive linking/main.c
+++ b/test cases/common/150 recursive linking/main.c
diff --git a/test cases/common/153 recursive linking/meson.build b/test cases/common/150 recursive linking/meson.build
index 2ca7151..2ca7151 100644
--- a/test cases/common/153 recursive linking/meson.build
+++ b/test cases/common/150 recursive linking/meson.build
diff --git a/test cases/common/153 recursive linking/shnodep/lib.c b/test cases/common/150 recursive linking/shnodep/lib.c
index a3b7993..a3b7993 100644
--- a/test cases/common/153 recursive linking/shnodep/lib.c
+++ b/test cases/common/150 recursive linking/shnodep/lib.c
diff --git a/test cases/common/153 recursive linking/shnodep/meson.build b/test cases/common/150 recursive linking/shnodep/meson.build
index 66cfd9b..66cfd9b 100644
--- a/test cases/common/153 recursive linking/shnodep/meson.build
+++ b/test cases/common/150 recursive linking/shnodep/meson.build
diff --git a/test cases/common/153 recursive linking/shshdep/lib.c b/test cases/common/150 recursive linking/shshdep/lib.c
index 715d120..715d120 100644
--- a/test cases/common/153 recursive linking/shshdep/lib.c
+++ b/test cases/common/150 recursive linking/shshdep/lib.c
diff --git a/test cases/common/153 recursive linking/shshdep/meson.build b/test cases/common/150 recursive linking/shshdep/meson.build
index 020b481..020b481 100644
--- a/test cases/common/153 recursive linking/shshdep/meson.build
+++ b/test cases/common/150 recursive linking/shshdep/meson.build
diff --git a/test cases/common/153 recursive linking/shstdep/lib.c b/test cases/common/150 recursive linking/shstdep/lib.c
index 5da8d0b..5da8d0b 100644
--- a/test cases/common/153 recursive linking/shstdep/lib.c
+++ b/test cases/common/150 recursive linking/shstdep/lib.c
diff --git a/test cases/common/153 recursive linking/shstdep/meson.build b/test cases/common/150 recursive linking/shstdep/meson.build
index 008f9f8..008f9f8 100644
--- a/test cases/common/153 recursive linking/shstdep/meson.build
+++ b/test cases/common/150 recursive linking/shstdep/meson.build
diff --git a/test cases/common/153 recursive linking/stnodep/lib.c b/test cases/common/150 recursive linking/stnodep/lib.c
index 4bc50be..4bc50be 100644
--- a/test cases/common/153 recursive linking/stnodep/lib.c
+++ b/test cases/common/150 recursive linking/stnodep/lib.c
diff --git a/test cases/common/153 recursive linking/stnodep/meson.build b/test cases/common/150 recursive linking/stnodep/meson.build
index 77f7129..77f7129 100644
--- a/test cases/common/153 recursive linking/stnodep/meson.build
+++ b/test cases/common/150 recursive linking/stnodep/meson.build
diff --git a/test cases/common/153 recursive linking/stshdep/lib.c b/test cases/common/150 recursive linking/stshdep/lib.c
index 3cfa12b..3cfa12b 100644
--- a/test cases/common/153 recursive linking/stshdep/lib.c
+++ b/test cases/common/150 recursive linking/stshdep/lib.c
diff --git a/test cases/common/153 recursive linking/stshdep/meson.build b/test cases/common/150 recursive linking/stshdep/meson.build
index 0967c1c..0967c1c 100644
--- a/test cases/common/153 recursive linking/stshdep/meson.build
+++ b/test cases/common/150 recursive linking/stshdep/meson.build
diff --git a/test cases/common/153 recursive linking/ststdep/lib.c b/test cases/common/150 recursive linking/ststdep/lib.c
index fca8706..fca8706 100644
--- a/test cases/common/153 recursive linking/ststdep/lib.c
+++ b/test cases/common/150 recursive linking/ststdep/lib.c
diff --git a/test cases/common/153 recursive linking/ststdep/meson.build b/test cases/common/150 recursive linking/ststdep/meson.build
index 3602442..3602442 100644
--- a/test cases/common/153 recursive linking/ststdep/meson.build
+++ b/test cases/common/150 recursive linking/ststdep/meson.build
diff --git a/test cases/common/154 library at root/lib.c b/test cases/common/151 library at root/lib.c
index a5b3dc3..a5b3dc3 100644
--- a/test cases/common/154 library at root/lib.c
+++ b/test cases/common/151 library at root/lib.c
diff --git a/test cases/common/154 library at root/main/main.c b/test cases/common/151 library at root/main/main.c
index c4e1b4e..c4e1b4e 100644
--- a/test cases/common/154 library at root/main/main.c
+++ b/test cases/common/151 library at root/main/main.c
diff --git a/test cases/common/154 library at root/main/meson.build b/test cases/common/151 library at root/main/meson.build
index 557378a..557378a 100644
--- a/test cases/common/154 library at root/main/meson.build
+++ b/test cases/common/151 library at root/main/meson.build
diff --git a/test cases/common/154 library at root/meson.build b/test cases/common/151 library at root/meson.build
index bfdd869..bfdd869 100644
--- a/test cases/common/154 library at root/meson.build
+++ b/test cases/common/151 library at root/meson.build
diff --git a/test cases/common/155 simd/fallback.c b/test cases/common/152 simd/fallback.c
index ab435f4..ab435f4 100644
--- a/test cases/common/155 simd/fallback.c
+++ b/test cases/common/152 simd/fallback.c
diff --git a/test cases/common/155 simd/include/simdheader.h b/test cases/common/152 simd/include/simdheader.h
index 6515e41..6515e41 100644
--- a/test cases/common/155 simd/include/simdheader.h
+++ b/test cases/common/152 simd/include/simdheader.h
diff --git a/test cases/common/155 simd/meson.build b/test cases/common/152 simd/meson.build
index 2628a12..2628a12 100644
--- a/test cases/common/155 simd/meson.build
+++ b/test cases/common/152 simd/meson.build
diff --git a/test cases/common/155 simd/simd_avx.c b/test cases/common/152 simd/simd_avx.c
index 1c84dae..1c84dae 100644
--- a/test cases/common/155 simd/simd_avx.c
+++ b/test cases/common/152 simd/simd_avx.c
diff --git a/test cases/common/155 simd/simd_avx2.c b/test cases/common/152 simd/simd_avx2.c
index 15297eb..15297eb 100644
--- a/test cases/common/155 simd/simd_avx2.c
+++ b/test cases/common/152 simd/simd_avx2.c
diff --git a/test cases/common/155 simd/simd_mmx.c b/test cases/common/152 simd/simd_mmx.c
index 731abd1..731abd1 100644
--- a/test cases/common/155 simd/simd_mmx.c
+++ b/test cases/common/152 simd/simd_mmx.c
diff --git a/test cases/common/155 simd/simd_neon.c b/test cases/common/152 simd/simd_neon.c
index 2082099..2082099 100644
--- a/test cases/common/155 simd/simd_neon.c
+++ b/test cases/common/152 simd/simd_neon.c
diff --git a/test cases/common/155 simd/simd_sse.c b/test cases/common/152 simd/simd_sse.c
index 3c9fe62..3c9fe62 100644
--- a/test cases/common/155 simd/simd_sse.c
+++ b/test cases/common/152 simd/simd_sse.c
diff --git a/test cases/common/155 simd/simd_sse2.c b/test cases/common/152 simd/simd_sse2.c
index 0274533..0274533 100644
--- a/test cases/common/155 simd/simd_sse2.c
+++ b/test cases/common/152 simd/simd_sse2.c
diff --git a/test cases/common/155 simd/simd_sse3.c b/test cases/common/152 simd/simd_sse3.c
index e97d102..e97d102 100644
--- a/test cases/common/155 simd/simd_sse3.c
+++ b/test cases/common/152 simd/simd_sse3.c
diff --git a/test cases/common/155 simd/simd_sse41.c b/test cases/common/152 simd/simd_sse41.c
index 0308c7e..0308c7e 100644
--- a/test cases/common/155 simd/simd_sse41.c
+++ b/test cases/common/152 simd/simd_sse41.c
diff --git a/test cases/common/155 simd/simd_sse42.c b/test cases/common/152 simd/simd_sse42.c
index 137ffc4..137ffc4 100644
--- a/test cases/common/155 simd/simd_sse42.c
+++ b/test cases/common/152 simd/simd_sse42.c
diff --git a/test cases/common/155 simd/simd_ssse3.c b/test cases/common/152 simd/simd_ssse3.c
index ab4dff4..ab4dff4 100644
--- a/test cases/common/155 simd/simd_ssse3.c
+++ b/test cases/common/152 simd/simd_ssse3.c
diff --git a/test cases/common/155 simd/simdchecker.c b/test cases/common/152 simd/simdchecker.c
index 222fbf3..222fbf3 100644
--- a/test cases/common/155 simd/simdchecker.c
+++ b/test cases/common/152 simd/simdchecker.c
diff --git a/test cases/common/155 simd/simdfuncs.h b/test cases/common/152 simd/simdfuncs.h
index dfb0560..dfb0560 100644
--- a/test cases/common/155 simd/simdfuncs.h
+++ b/test cases/common/152 simd/simdfuncs.h
diff --git a/test cases/common/156 shared module resolving symbol in executable/meson.build b/test cases/common/153 shared module resolving symbol in executable/meson.build
index 282a4d2..282a4d2 100644
--- a/test cases/common/156 shared module resolving symbol in executable/meson.build
+++ b/test cases/common/153 shared module resolving symbol in executable/meson.build
diff --git a/test cases/common/156 shared module resolving symbol in executable/module.c b/test cases/common/153 shared module resolving symbol in executable/module.c
index 64374d5..64374d5 100644
--- a/test cases/common/156 shared module resolving symbol in executable/module.c
+++ b/test cases/common/153 shared module resolving symbol in executable/module.c
diff --git a/test cases/common/156 shared module resolving symbol in executable/prog.c b/test cases/common/153 shared module resolving symbol in executable/prog.c
index 746c192..746c192 100644
--- a/test cases/common/156 shared module resolving symbol in executable/prog.c
+++ b/test cases/common/153 shared module resolving symbol in executable/prog.c
diff --git a/test cases/common/157 dotinclude/dotproc.c b/test cases/common/154 dotinclude/dotproc.c
index 5e65f7b..5e65f7b 100644
--- a/test cases/common/157 dotinclude/dotproc.c
+++ b/test cases/common/154 dotinclude/dotproc.c
diff --git a/test cases/common/157 dotinclude/meson.build b/test cases/common/154 dotinclude/meson.build
index e0c2cd7..e0c2cd7 100644
--- a/test cases/common/157 dotinclude/meson.build
+++ b/test cases/common/154 dotinclude/meson.build
diff --git a/test cases/common/157 dotinclude/stdio.h b/test cases/common/154 dotinclude/stdio.h
index b6bd09f..b6bd09f 100644
--- a/test cases/common/157 dotinclude/stdio.h
+++ b/test cases/common/154 dotinclude/stdio.h
diff --git a/test cases/common/158 reserved targets/all/meson.build b/test cases/common/155 reserved targets/all/meson.build
index adee882..adee882 100644
--- a/test cases/common/158 reserved targets/all/meson.build
+++ b/test cases/common/155 reserved targets/all/meson.build
diff --git a/test cases/common/158 reserved targets/benchmark/meson.build b/test cases/common/155 reserved targets/benchmark/meson.build
index 242cc23..242cc23 100644
--- a/test cases/common/158 reserved targets/benchmark/meson.build
+++ b/test cases/common/155 reserved targets/benchmark/meson.build
diff --git a/test cases/common/158 reserved targets/clean-ctlist/meson.build b/test cases/common/155 reserved targets/clean-ctlist/meson.build
index 75eb207..75eb207 100644
--- a/test cases/common/158 reserved targets/clean-ctlist/meson.build
+++ b/test cases/common/155 reserved targets/clean-ctlist/meson.build
diff --git a/test cases/common/158 reserved targets/clean-gcda/meson.build b/test cases/common/155 reserved targets/clean-gcda/meson.build
index 488a527..488a527 100644
--- a/test cases/common/158 reserved targets/clean-gcda/meson.build
+++ b/test cases/common/155 reserved targets/clean-gcda/meson.build
diff --git a/test cases/common/158 reserved targets/clean-gcno/meson.build b/test cases/common/155 reserved targets/clean-gcno/meson.build
index eec789a..eec789a 100644
--- a/test cases/common/158 reserved targets/clean-gcno/meson.build
+++ b/test cases/common/155 reserved targets/clean-gcno/meson.build
diff --git a/test cases/common/158 reserved targets/clean/meson.build b/test cases/common/155 reserved targets/clean/meson.build
index 4e27b6c..4e27b6c 100644
--- a/test cases/common/158 reserved targets/clean/meson.build
+++ b/test cases/common/155 reserved targets/clean/meson.build
diff --git a/test cases/common/158 reserved targets/coverage-html/meson.build b/test cases/common/155 reserved targets/coverage-html/meson.build
index 10a4cc8..10a4cc8 100644
--- a/test cases/common/158 reserved targets/coverage-html/meson.build
+++ b/test cases/common/155 reserved targets/coverage-html/meson.build
diff --git a/test cases/common/158 reserved targets/coverage-text/meson.build b/test cases/common/155 reserved targets/coverage-text/meson.build
index 21dcae5..21dcae5 100644
--- a/test cases/common/158 reserved targets/coverage-text/meson.build
+++ b/test cases/common/155 reserved targets/coverage-text/meson.build
diff --git a/test cases/common/158 reserved targets/coverage-xml/meson.build b/test cases/common/155 reserved targets/coverage-xml/meson.build
index 44d7bfb..44d7bfb 100644
--- a/test cases/common/158 reserved targets/coverage-xml/meson.build
+++ b/test cases/common/155 reserved targets/coverage-xml/meson.build
diff --git a/test cases/common/158 reserved targets/coverage/meson.build b/test cases/common/155 reserved targets/coverage/meson.build
index b401055..b401055 100644
--- a/test cases/common/158 reserved targets/coverage/meson.build
+++ b/test cases/common/155 reserved targets/coverage/meson.build
diff --git a/test cases/common/158 reserved targets/dist/meson.build b/test cases/common/155 reserved targets/dist/meson.build
index 951bbb4..951bbb4 100644
--- a/test cases/common/158 reserved targets/dist/meson.build
+++ b/test cases/common/155 reserved targets/dist/meson.build
diff --git a/test cases/common/158 reserved targets/distcheck/meson.build b/test cases/common/155 reserved targets/distcheck/meson.build
index 12b9328..12b9328 100644
--- a/test cases/common/158 reserved targets/distcheck/meson.build
+++ b/test cases/common/155 reserved targets/distcheck/meson.build
diff --git a/test cases/common/158 reserved targets/install/meson.build b/test cases/common/155 reserved targets/install/meson.build
index 4839901..4839901 100644
--- a/test cases/common/158 reserved targets/install/meson.build
+++ b/test cases/common/155 reserved targets/install/meson.build
diff --git a/test cases/common/158 reserved targets/meson.build b/test cases/common/155 reserved targets/meson.build
index 24fd937..24fd937 100644
--- a/test cases/common/158 reserved targets/meson.build
+++ b/test cases/common/155 reserved targets/meson.build
diff --git a/test cases/common/158 reserved targets/phony/meson.build b/test cases/common/155 reserved targets/phony/meson.build
index 6710fc1..6710fc1 100644
--- a/test cases/common/158 reserved targets/phony/meson.build
+++ b/test cases/common/155 reserved targets/phony/meson.build
diff --git a/test cases/common/158 reserved targets/reconfigure/meson.build b/test cases/common/155 reserved targets/reconfigure/meson.build
index c3ea3da..c3ea3da 100644
--- a/test cases/common/158 reserved targets/reconfigure/meson.build
+++ b/test cases/common/155 reserved targets/reconfigure/meson.build
diff --git a/test cases/common/158 reserved targets/runtarget/meson.build b/test cases/common/155 reserved targets/runtarget/meson.build
index 52c371b..52c371b 100644
--- a/test cases/common/158 reserved targets/runtarget/meson.build
+++ b/test cases/common/155 reserved targets/runtarget/meson.build
diff --git a/test cases/common/158 reserved targets/scan-build/meson.build b/test cases/common/155 reserved targets/scan-build/meson.build
index 1002053..1002053 100644
--- a/test cases/common/158 reserved targets/scan-build/meson.build
+++ b/test cases/common/155 reserved targets/scan-build/meson.build
diff --git a/test cases/common/158 reserved targets/test.c b/test cases/common/155 reserved targets/test.c
index 0fb4389..0fb4389 100644
--- a/test cases/common/158 reserved targets/test.c
+++ b/test cases/common/155 reserved targets/test.c
diff --git a/test cases/common/158 reserved targets/test/meson.build b/test cases/common/155 reserved targets/test/meson.build
index 4ab123c..4ab123c 100644
--- a/test cases/common/158 reserved targets/test/meson.build
+++ b/test cases/common/155 reserved targets/test/meson.build
diff --git a/test cases/common/158 reserved targets/uninstall/meson.build b/test cases/common/155 reserved targets/uninstall/meson.build
index 21c6ca6..21c6ca6 100644
--- a/test cases/common/158 reserved targets/uninstall/meson.build
+++ b/test cases/common/155 reserved targets/uninstall/meson.build
diff --git a/test cases/common/159 duplicate source names/dir1/file.c b/test cases/common/156 duplicate source names/dir1/file.c
index 094e187..094e187 100644
--- a/test cases/common/159 duplicate source names/dir1/file.c
+++ b/test cases/common/156 duplicate source names/dir1/file.c
diff --git a/test cases/common/159 duplicate source names/dir1/meson.build b/test cases/common/156 duplicate source names/dir1/meson.build
index 00bc85d..00bc85d 100644
--- a/test cases/common/159 duplicate source names/dir1/meson.build
+++ b/test cases/common/156 duplicate source names/dir1/meson.build
diff --git a/test cases/common/159 duplicate source names/dir2/dir1/file.c b/test cases/common/156 duplicate source names/dir2/dir1/file.c
index 5aac8e5..5aac8e5 100644
--- a/test cases/common/159 duplicate source names/dir2/dir1/file.c
+++ b/test cases/common/156 duplicate source names/dir2/dir1/file.c
diff --git a/test cases/common/159 duplicate source names/dir2/file.c b/test cases/common/156 duplicate source names/dir2/file.c
index 6cf8d66..6cf8d66 100644
--- a/test cases/common/159 duplicate source names/dir2/file.c
+++ b/test cases/common/156 duplicate source names/dir2/file.c
diff --git a/test cases/common/159 duplicate source names/dir2/meson.build b/test cases/common/156 duplicate source names/dir2/meson.build
index f116a02..f116a02 100644
--- a/test cases/common/159 duplicate source names/dir2/meson.build
+++ b/test cases/common/156 duplicate source names/dir2/meson.build
diff --git a/test cases/common/159 duplicate source names/dir3/dir1/file.c b/test cases/common/156 duplicate source names/dir3/dir1/file.c
index 04667c2..04667c2 100644
--- a/test cases/common/159 duplicate source names/dir3/dir1/file.c
+++ b/test cases/common/156 duplicate source names/dir3/dir1/file.c
diff --git a/test cases/common/159 duplicate source names/dir3/file.c b/test cases/common/156 duplicate source names/dir3/file.c
index d16d0a8..d16d0a8 100644
--- a/test cases/common/159 duplicate source names/dir3/file.c
+++ b/test cases/common/156 duplicate source names/dir3/file.c
diff --git a/test cases/common/159 duplicate source names/dir3/meson.build b/test cases/common/156 duplicate source names/dir3/meson.build
index 70ddbf2..70ddbf2 100644
--- a/test cases/common/159 duplicate source names/dir3/meson.build
+++ b/test cases/common/156 duplicate source names/dir3/meson.build
diff --git a/test cases/common/159 duplicate source names/meson.build b/test cases/common/156 duplicate source names/meson.build
index cac5194..cac5194 100644
--- a/test cases/common/159 duplicate source names/meson.build
+++ b/test cases/common/156 duplicate source names/meson.build
diff --git a/test cases/common/160 index customtarget/check_args.py b/test cases/common/157 index customtarget/check_args.py
index 8663a6f..8663a6f 100644
--- a/test cases/common/160 index customtarget/check_args.py
+++ b/test cases/common/157 index customtarget/check_args.py
diff --git a/test cases/common/160 index customtarget/gen_sources.py b/test cases/common/157 index customtarget/gen_sources.py
index 0bdb529..0bdb529 100644
--- a/test cases/common/160 index customtarget/gen_sources.py
+++ b/test cases/common/157 index customtarget/gen_sources.py
diff --git a/test cases/common/160 index customtarget/lib.c b/test cases/common/157 index customtarget/lib.c
index 17117d5..17117d5 100644
--- a/test cases/common/160 index customtarget/lib.c
+++ b/test cases/common/157 index customtarget/lib.c
diff --git a/test cases/common/160 index customtarget/meson.build b/test cases/common/157 index customtarget/meson.build
index 27d28b5..27d28b5 100644
--- a/test cases/common/160 index customtarget/meson.build
+++ b/test cases/common/157 index customtarget/meson.build
diff --git a/test cases/common/160 index customtarget/subdir/foo.c b/test cases/common/157 index customtarget/subdir/foo.c
index c620a11..c620a11 100644
--- a/test cases/common/160 index customtarget/subdir/foo.c
+++ b/test cases/common/157 index customtarget/subdir/foo.c
diff --git a/test cases/common/160 index customtarget/subdir/meson.build b/test cases/common/157 index customtarget/subdir/meson.build
index 47bcd32..47bcd32 100644
--- a/test cases/common/160 index customtarget/subdir/meson.build
+++ b/test cases/common/157 index customtarget/subdir/meson.build
diff --git a/test cases/common/161 wrap file should not failed/meson.build b/test cases/common/158 wrap file should not failed/meson.build
index 9cf4e9a..9cf4e9a 100644
--- a/test cases/common/161 wrap file should not failed/meson.build
+++ b/test cases/common/158 wrap file should not failed/meson.build
diff --git a/test cases/common/161 wrap file should not failed/src/meson.build b/test cases/common/158 wrap file should not failed/src/meson.build
index 69f666d..69f666d 100644
--- a/test cases/common/161 wrap file should not failed/src/meson.build
+++ b/test cases/common/158 wrap file should not failed/src/meson.build
diff --git a/test cases/common/161 wrap file should not failed/src/subprojects/foo/prog2.c b/test cases/common/158 wrap file should not failed/src/subprojects/foo/prog2.c
index 56f61a8..56f61a8 100644
--- a/test cases/common/161 wrap file should not failed/src/subprojects/foo/prog2.c
+++ b/test cases/common/158 wrap file should not failed/src/subprojects/foo/prog2.c
diff --git a/test cases/common/161 wrap file should not failed/src/subprojects/prog.c b/test cases/common/158 wrap file should not failed/src/subprojects/prog.c
index 56f61a8..56f61a8 100644
--- a/test cases/common/161 wrap file should not failed/src/subprojects/prog.c
+++ b/test cases/common/158 wrap file should not failed/src/subprojects/prog.c
diff --git a/test cases/common/161 wrap file should not failed/subprojects/packagecache/zlib-1.2.8-8-wrap.zip b/test cases/common/158 wrap file should not failed/subprojects/packagecache/zlib-1.2.8-8-wrap.zip
index 421376d..421376d 100644
--- a/test cases/common/161 wrap file should not failed/subprojects/packagecache/zlib-1.2.8-8-wrap.zip
+++ b/test cases/common/158 wrap file should not failed/subprojects/packagecache/zlib-1.2.8-8-wrap.zip
diff --git a/test cases/common/161 wrap file should not failed/subprojects/packagecache/zlib-1.2.8.tar.gz b/test cases/common/158 wrap file should not failed/subprojects/packagecache/zlib-1.2.8.tar.gz
index 421376d..421376d 100644
--- a/test cases/common/161 wrap file should not failed/subprojects/packagecache/zlib-1.2.8.tar.gz
+++ b/test cases/common/158 wrap file should not failed/subprojects/packagecache/zlib-1.2.8.tar.gz
diff --git a/test cases/common/161 wrap file should not failed/subprojects/zlib-1.2.8/foo.c b/test cases/common/158 wrap file should not failed/subprojects/zlib-1.2.8/foo.c
index 019f2ba..019f2ba 100644
--- a/test cases/common/161 wrap file should not failed/subprojects/zlib-1.2.8/foo.c
+++ b/test cases/common/158 wrap file should not failed/subprojects/zlib-1.2.8/foo.c
diff --git a/test cases/common/161 wrap file should not failed/subprojects/zlib-1.2.8/meson.build b/test cases/common/158 wrap file should not failed/subprojects/zlib-1.2.8/meson.build
index 8d8008e..8d8008e 100644
--- a/test cases/common/161 wrap file should not failed/subprojects/zlib-1.2.8/meson.build
+++ b/test cases/common/158 wrap file should not failed/subprojects/zlib-1.2.8/meson.build
diff --git a/test cases/common/161 wrap file should not failed/subprojects/zlib.wrap b/test cases/common/158 wrap file should not failed/subprojects/zlib.wrap
index 6d5896f..6d5896f 100644
--- a/test cases/common/161 wrap file should not failed/subprojects/zlib.wrap
+++ b/test cases/common/158 wrap file should not failed/subprojects/zlib.wrap
diff --git a/test cases/common/162 includedir subproj/meson.build b/test cases/common/159 includedir subproj/meson.build
index b3de5af..b3de5af 100644
--- a/test cases/common/162 includedir subproj/meson.build
+++ b/test cases/common/159 includedir subproj/meson.build
diff --git a/test cases/common/162 includedir subproj/prog.c b/test cases/common/159 includedir subproj/prog.c
index 772681e..772681e 100644
--- a/test cases/common/162 includedir subproj/prog.c
+++ b/test cases/common/159 includedir subproj/prog.c
diff --git a/test cases/common/162 includedir subproj/subprojects/inctest/include/incfile.h b/test cases/common/159 includedir subproj/subprojects/inctest/include/incfile.h
index ec740da..ec740da 100644
--- a/test cases/common/162 includedir subproj/subprojects/inctest/include/incfile.h
+++ b/test cases/common/159 includedir subproj/subprojects/inctest/include/incfile.h
diff --git a/test cases/common/162 includedir subproj/subprojects/inctest/meson.build b/test cases/common/159 includedir subproj/subprojects/inctest/meson.build
index 74aabcb..74aabcb 100644
--- a/test cases/common/162 includedir subproj/subprojects/inctest/meson.build
+++ b/test cases/common/159 includedir subproj/subprojects/inctest/meson.build
diff --git a/test cases/common/18 else/meson.build b/test cases/common/16 else/meson.build
index 99cb927..99cb927 100644
--- a/test cases/common/18 else/meson.build
+++ b/test cases/common/16 else/meson.build
diff --git a/test cases/common/18 else/prog.c b/test cases/common/16 else/prog.c
index 0314ff1..0314ff1 100644
--- a/test cases/common/18 else/prog.c
+++ b/test cases/common/16 else/prog.c
diff --git a/test cases/common/163 subproject dir name collision/a.c b/test cases/common/160 subproject dir name collision/a.c
index 6ed96fa..6ed96fa 100644
--- a/test cases/common/163 subproject dir name collision/a.c
+++ b/test cases/common/160 subproject dir name collision/a.c
diff --git a/test cases/common/163 subproject dir name collision/custom_subproject_dir/B/b.c b/test cases/common/160 subproject dir name collision/custom_subproject_dir/B/b.c
index 4c94ee9..4c94ee9 100644
--- a/test cases/common/163 subproject dir name collision/custom_subproject_dir/B/b.c
+++ b/test cases/common/160 subproject dir name collision/custom_subproject_dir/B/b.c
diff --git a/test cases/common/163 subproject dir name collision/custom_subproject_dir/B/meson.build b/test cases/common/160 subproject dir name collision/custom_subproject_dir/B/meson.build
index 280c60c..280c60c 100644
--- a/test cases/common/163 subproject dir name collision/custom_subproject_dir/B/meson.build
+++ b/test cases/common/160 subproject dir name collision/custom_subproject_dir/B/meson.build
diff --git a/test cases/common/163 subproject dir name collision/custom_subproject_dir/C/c.c b/test cases/common/160 subproject dir name collision/custom_subproject_dir/C/c.c
index eebfb9f..eebfb9f 100644
--- a/test cases/common/163 subproject dir name collision/custom_subproject_dir/C/c.c
+++ b/test cases/common/160 subproject dir name collision/custom_subproject_dir/C/c.c
diff --git a/test cases/common/163 subproject dir name collision/custom_subproject_dir/C/meson.build b/test cases/common/160 subproject dir name collision/custom_subproject_dir/C/meson.build
index abf0b1e..abf0b1e 100644
--- a/test cases/common/163 subproject dir name collision/custom_subproject_dir/C/meson.build
+++ b/test cases/common/160 subproject dir name collision/custom_subproject_dir/C/meson.build
diff --git a/test cases/common/163 subproject dir name collision/meson.build b/test cases/common/160 subproject dir name collision/meson.build
index 5531217..5531217 100644
--- a/test cases/common/163 subproject dir name collision/meson.build
+++ b/test cases/common/160 subproject dir name collision/meson.build
diff --git a/test cases/common/163 subproject dir name collision/other_subdir/custom_subproject_dir/other.c b/test cases/common/160 subproject dir name collision/other_subdir/custom_subproject_dir/other.c
index 0c27f84..0c27f84 100644
--- a/test cases/common/163 subproject dir name collision/other_subdir/custom_subproject_dir/other.c
+++ b/test cases/common/160 subproject dir name collision/other_subdir/custom_subproject_dir/other.c
diff --git a/test cases/common/163 subproject dir name collision/other_subdir/meson.build b/test cases/common/160 subproject dir name collision/other_subdir/meson.build
index 90cb67a..90cb67a 100644
--- a/test cases/common/163 subproject dir name collision/other_subdir/meson.build
+++ b/test cases/common/160 subproject dir name collision/other_subdir/meson.build
diff --git a/test cases/common/164 config tool variable/meson.build b/test cases/common/161 config tool variable/meson.build
index 0643042..0643042 100644
--- a/test cases/common/164 config tool variable/meson.build
+++ b/test cases/common/161 config tool variable/meson.build
diff --git a/test cases/common/165 custom target subdir depend files/copyfile.py b/test cases/common/162 custom target subdir depend files/copyfile.py
index ff42ac3..ff42ac3 100644
--- a/test cases/common/165 custom target subdir depend files/copyfile.py
+++ b/test cases/common/162 custom target subdir depend files/copyfile.py
diff --git a/test cases/common/165 custom target subdir depend files/meson.build b/test cases/common/162 custom target subdir depend files/meson.build
index 44f5c71..44f5c71 100644
--- a/test cases/common/165 custom target subdir depend files/meson.build
+++ b/test cases/common/162 custom target subdir depend files/meson.build
diff --git a/test cases/common/165 custom target subdir depend files/subdir/dep.dat b/test cases/common/162 custom target subdir depend files/subdir/dep.dat
index 5daee49..5daee49 100644
--- a/test cases/common/165 custom target subdir depend files/subdir/dep.dat
+++ b/test cases/common/162 custom target subdir depend files/subdir/dep.dat
diff --git a/test cases/common/165 custom target subdir depend files/subdir/foo.c.in b/test cases/common/162 custom target subdir depend files/subdir/foo.c.in
index d53846f..d53846f 100644
--- a/test cases/common/165 custom target subdir depend files/subdir/foo.c.in
+++ b/test cases/common/162 custom target subdir depend files/subdir/foo.c.in
diff --git a/test cases/common/165 custom target subdir depend files/subdir/meson.build b/test cases/common/162 custom target subdir depend files/subdir/meson.build
index f9d31c4..f9d31c4 100644
--- a/test cases/common/165 custom target subdir depend files/subdir/meson.build
+++ b/test cases/common/162 custom target subdir depend files/subdir/meson.build
diff --git a/test cases/common/166 external program shebang parsing/input.txt b/test cases/common/163 external program shebang parsing/input.txt
index 40e30d4..40e30d4 100644
--- a/test cases/common/166 external program shebang parsing/input.txt
+++ b/test cases/common/163 external program shebang parsing/input.txt
diff --git a/test cases/common/166 external program shebang parsing/main.c b/test cases/common/163 external program shebang parsing/main.c
index a90206b..a90206b 100644
--- a/test cases/common/166 external program shebang parsing/main.c
+++ b/test cases/common/163 external program shebang parsing/main.c
diff --git a/test cases/common/166 external program shebang parsing/meson.build b/test cases/common/163 external program shebang parsing/meson.build
index c1cc5af..c1cc5af 100644
--- a/test cases/common/166 external program shebang parsing/meson.build
+++ b/test cases/common/163 external program shebang parsing/meson.build
diff --git a/test cases/common/166 external program shebang parsing/script.int.in b/test cases/common/163 external program shebang parsing/script.int.in
index 77ff909..77ff909 100644
--- a/test cases/common/166 external program shebang parsing/script.int.in
+++ b/test cases/common/163 external program shebang parsing/script.int.in
diff --git a/test cases/common/167 disabler/meson.build b/test cases/common/164 disabler/meson.build
index 1956cd3..1956cd3 100644
--- a/test cases/common/167 disabler/meson.build
+++ b/test cases/common/164 disabler/meson.build
diff --git a/test cases/common/168 array option/meson.build b/test cases/common/165 array option/meson.build
index 034b9a5..034b9a5 100644
--- a/test cases/common/168 array option/meson.build
+++ b/test cases/common/165 array option/meson.build
diff --git a/test cases/common/168 array option/meson_options.txt b/test cases/common/165 array option/meson_options.txt
index 7ed0ac1..7ed0ac1 100644
--- a/test cases/common/168 array option/meson_options.txt
+++ b/test cases/common/165 array option/meson_options.txt
diff --git a/test cases/common/169 custom target template substitution/checkcopy.py b/test cases/common/166 custom target template substitution/checkcopy.py
index ab9f436..ab9f436 100644
--- a/test cases/common/169 custom target template substitution/checkcopy.py
+++ b/test cases/common/166 custom target template substitution/checkcopy.py
diff --git a/test cases/common/169 custom target template substitution/foo.c.in b/test cases/common/166 custom target template substitution/foo.c.in
index d53846f..d53846f 100644
--- a/test cases/common/169 custom target template substitution/foo.c.in
+++ b/test cases/common/166 custom target template substitution/foo.c.in
diff --git a/test cases/common/169 custom target template substitution/meson.build b/test cases/common/166 custom target template substitution/meson.build
index 737408e..737408e 100644
--- a/test cases/common/169 custom target template substitution/meson.build
+++ b/test cases/common/166 custom target template substitution/meson.build
diff --git a/test cases/common/170 not-found dependency/meson.build b/test cases/common/167 not-found dependency/meson.build
index 02072b6..02072b6 100644
--- a/test cases/common/170 not-found dependency/meson.build
+++ b/test cases/common/167 not-found dependency/meson.build
diff --git a/test cases/common/170 not-found dependency/sub/meson.build b/test cases/common/167 not-found dependency/sub/meson.build
index 2a33cae..2a33cae 100644
--- a/test cases/common/170 not-found dependency/sub/meson.build
+++ b/test cases/common/167 not-found dependency/sub/meson.build
diff --git a/test cases/common/170 not-found dependency/subprojects/trivial/meson.build b/test cases/common/167 not-found dependency/subprojects/trivial/meson.build
index 8769c70..8769c70 100644
--- a/test cases/common/170 not-found dependency/subprojects/trivial/meson.build
+++ b/test cases/common/167 not-found dependency/subprojects/trivial/meson.build
diff --git a/test cases/common/170 not-found dependency/subprojects/trivial/trivial.c b/test cases/common/167 not-found dependency/subprojects/trivial/trivial.c
index 35b21e0..35b21e0 100644
--- a/test cases/common/170 not-found dependency/subprojects/trivial/trivial.c
+++ b/test cases/common/167 not-found dependency/subprojects/trivial/trivial.c
diff --git a/test cases/common/170 not-found dependency/testlib.c b/test cases/common/167 not-found dependency/testlib.c
index e69de29..e69de29 100644
--- a/test cases/common/170 not-found dependency/testlib.c
+++ b/test cases/common/167 not-found dependency/testlib.c
diff --git a/test cases/common/171 subdir if_found/meson.build b/test cases/common/168 subdir if_found/meson.build
index 2c640cf..2c640cf 100644
--- a/test cases/common/171 subdir if_found/meson.build
+++ b/test cases/common/168 subdir if_found/meson.build
diff --git a/test cases/common/171 subdir if_found/subdir/meson.build b/test cases/common/168 subdir if_found/subdir/meson.build
index 1030e25..1030e25 100644
--- a/test cases/common/171 subdir if_found/subdir/meson.build
+++ b/test cases/common/168 subdir if_found/subdir/meson.build
diff --git a/test cases/common/172 default options prefix dependent defaults/meson.build b/test cases/common/169 default options prefix dependent defaults/meson.build
index 9ca4ec5..9ca4ec5 100644
--- a/test cases/common/172 default options prefix dependent defaults/meson.build
+++ b/test cases/common/169 default options prefix dependent defaults/meson.build
diff --git a/test cases/common/19 comparison/meson.build b/test cases/common/17 comparison/meson.build
index fb641ed..fb641ed 100644
--- a/test cases/common/19 comparison/meson.build
+++ b/test cases/common/17 comparison/meson.build
diff --git a/test cases/common/19 comparison/prog.c b/test cases/common/17 comparison/prog.c
index 0314ff1..0314ff1 100644
--- a/test cases/common/19 comparison/prog.c
+++ b/test cases/common/17 comparison/prog.c
diff --git a/test cases/common/173 dependency factory/meson.build b/test cases/common/170 dependency factory/meson.build
index 1b8ed17..1b8ed17 100644
--- a/test cases/common/173 dependency factory/meson.build
+++ b/test cases/common/170 dependency factory/meson.build
diff --git a/test cases/common/174 get project license/bar.c b/test cases/common/171 get project license/bar.c
index 864869b..864869b 100644
--- a/test cases/common/174 get project license/bar.c
+++ b/test cases/common/171 get project license/bar.c
diff --git a/test cases/common/174 get project license/meson.build b/test cases/common/171 get project license/meson.build
index 37303e3..37303e3 100644
--- a/test cases/common/174 get project license/meson.build
+++ b/test cases/common/171 get project license/meson.build
diff --git a/test cases/common/175 yield/meson.build b/test cases/common/172 yield/meson.build
index 9b11569..9b11569 100644
--- a/test cases/common/175 yield/meson.build
+++ b/test cases/common/172 yield/meson.build
diff --git a/test cases/common/175 yield/meson_options.txt b/test cases/common/172 yield/meson_options.txt
index 9f58fbb..9f58fbb 100644
--- a/test cases/common/175 yield/meson_options.txt
+++ b/test cases/common/172 yield/meson_options.txt
diff --git a/test cases/common/175 yield/subprojects/sub/meson.build b/test cases/common/172 yield/subprojects/sub/meson.build
index 832c13c..832c13c 100644
--- a/test cases/common/175 yield/subprojects/sub/meson.build
+++ b/test cases/common/172 yield/subprojects/sub/meson.build
diff --git a/test cases/common/175 yield/subprojects/sub/meson_options.txt b/test cases/common/172 yield/subprojects/sub/meson_options.txt
index 101122e..101122e 100644
--- a/test cases/common/175 yield/subprojects/sub/meson_options.txt
+++ b/test cases/common/172 yield/subprojects/sub/meson_options.txt
diff --git a/test cases/common/176 subproject nested subproject dirs/contrib/subprojects/alpha/a.c b/test cases/common/173 subproject nested subproject dirs/contrib/subprojects/alpha/a.c
index 7ac3e5e..7ac3e5e 100644
--- a/test cases/common/176 subproject nested subproject dirs/contrib/subprojects/alpha/a.c
+++ b/test cases/common/173 subproject nested subproject dirs/contrib/subprojects/alpha/a.c
diff --git a/test cases/common/176 subproject nested subproject dirs/contrib/subprojects/alpha/meson.build b/test cases/common/173 subproject nested subproject dirs/contrib/subprojects/alpha/meson.build
index 12f6564..12f6564 100644
--- a/test cases/common/176 subproject nested subproject dirs/contrib/subprojects/alpha/meson.build
+++ b/test cases/common/173 subproject nested subproject dirs/contrib/subprojects/alpha/meson.build
diff --git a/test cases/common/176 subproject nested subproject dirs/contrib/subprojects/alpha/var/subprojects/wrap_files_might_be_here b/test cases/common/173 subproject nested subproject dirs/contrib/subprojects/alpha/var/subprojects/wrap_files_might_be_here
index 8d1c8b6..8d1c8b6 100644
--- a/test cases/common/176 subproject nested subproject dirs/contrib/subprojects/alpha/var/subprojects/wrap_files_might_be_here
+++ b/test cases/common/173 subproject nested subproject dirs/contrib/subprojects/alpha/var/subprojects/wrap_files_might_be_here
diff --git a/test cases/common/176 subproject nested subproject dirs/contrib/subprojects/beta/b.c b/test cases/common/173 subproject nested subproject dirs/contrib/subprojects/beta/b.c
index a95651b..a95651b 100644
--- a/test cases/common/176 subproject nested subproject dirs/contrib/subprojects/beta/b.c
+++ b/test cases/common/173 subproject nested subproject dirs/contrib/subprojects/beta/b.c
diff --git a/test cases/common/176 subproject nested subproject dirs/contrib/subprojects/beta/meson.build b/test cases/common/173 subproject nested subproject dirs/contrib/subprojects/beta/meson.build
index 1720d3e..1720d3e 100644
--- a/test cases/common/176 subproject nested subproject dirs/contrib/subprojects/beta/meson.build
+++ b/test cases/common/173 subproject nested subproject dirs/contrib/subprojects/beta/meson.build
diff --git a/test cases/common/176 subproject nested subproject dirs/meson.build b/test cases/common/173 subproject nested subproject dirs/meson.build
index 875eed3..875eed3 100644
--- a/test cases/common/176 subproject nested subproject dirs/meson.build
+++ b/test cases/common/173 subproject nested subproject dirs/meson.build
diff --git a/test cases/common/176 subproject nested subproject dirs/prog.c b/test cases/common/173 subproject nested subproject dirs/prog.c
index 394f139..394f139 100644
--- a/test cases/common/176 subproject nested subproject dirs/prog.c
+++ b/test cases/common/173 subproject nested subproject dirs/prog.c
diff --git a/test cases/common/177 preserve gendir/base.inp b/test cases/common/174 preserve gendir/base.inp
index df967b9..df967b9 100644
--- a/test cases/common/177 preserve gendir/base.inp
+++ b/test cases/common/174 preserve gendir/base.inp
diff --git a/test cases/common/177 preserve gendir/com/mesonbuild/subbie.inp b/test cases/common/174 preserve gendir/com/mesonbuild/subbie.inp
index df0f4e9..df0f4e9 100644
--- a/test cases/common/177 preserve gendir/com/mesonbuild/subbie.inp
+++ b/test cases/common/174 preserve gendir/com/mesonbuild/subbie.inp
diff --git a/test cases/common/177 preserve gendir/genprog.py b/test cases/common/174 preserve gendir/genprog.py
index 1e10998..1e10998 100755
--- a/test cases/common/177 preserve gendir/genprog.py
+++ b/test cases/common/174 preserve gendir/genprog.py
diff --git a/test cases/common/177 preserve gendir/meson.build b/test cases/common/174 preserve gendir/meson.build
index ce219f0..ce219f0 100644
--- a/test cases/common/177 preserve gendir/meson.build
+++ b/test cases/common/174 preserve gendir/meson.build
diff --git a/test cases/common/177 preserve gendir/testprog.c b/test cases/common/174 preserve gendir/testprog.c
index 46b4602..46b4602 100644
--- a/test cases/common/177 preserve gendir/testprog.c
+++ b/test cases/common/174 preserve gendir/testprog.c
diff --git a/test cases/common/178 source in dep/bar.cpp b/test cases/common/175 source in dep/bar.cpp
index bda8cb6..bda8cb6 100644
--- a/test cases/common/178 source in dep/bar.cpp
+++ b/test cases/common/175 source in dep/bar.cpp
diff --git a/test cases/common/178 source in dep/foo.c b/test cases/common/175 source in dep/foo.c
index 1ecfa8c..1ecfa8c 100644
--- a/test cases/common/178 source in dep/foo.c
+++ b/test cases/common/175 source in dep/foo.c
diff --git a/test cases/common/178 source in dep/generated/funname b/test cases/common/175 source in dep/generated/funname
index 79f3c86..79f3c86 100644
--- a/test cases/common/178 source in dep/generated/funname
+++ b/test cases/common/175 source in dep/generated/funname
diff --git a/test cases/common/178 source in dep/generated/genheader.py b/test cases/common/175 source in dep/generated/genheader.py
index eafc075..eafc075 100755
--- a/test cases/common/178 source in dep/generated/genheader.py
+++ b/test cases/common/175 source in dep/generated/genheader.py
diff --git a/test cases/common/178 source in dep/generated/main.c b/test cases/common/175 source in dep/generated/main.c
index 07e7c93..07e7c93 100644
--- a/test cases/common/178 source in dep/generated/main.c
+++ b/test cases/common/175 source in dep/generated/main.c
diff --git a/test cases/common/178 source in dep/generated/meson.build b/test cases/common/175 source in dep/generated/meson.build
index 2862709..2862709 100644
--- a/test cases/common/178 source in dep/generated/meson.build
+++ b/test cases/common/175 source in dep/generated/meson.build
diff --git a/test cases/common/178 source in dep/meson.build b/test cases/common/175 source in dep/meson.build
index 7111ba1..7111ba1 100644
--- a/test cases/common/178 source in dep/meson.build
+++ b/test cases/common/175 source in dep/meson.build
diff --git a/test cases/common/179 generator link whole/export.h b/test cases/common/176 generator link whole/export.h
index f4f6f45..f4f6f45 100644
--- a/test cases/common/179 generator link whole/export.h
+++ b/test cases/common/176 generator link whole/export.h
diff --git a/test cases/common/179 generator link whole/generator.py b/test cases/common/176 generator link whole/generator.py
index 0076b74..0076b74 100755
--- a/test cases/common/179 generator link whole/generator.py
+++ b/test cases/common/176 generator link whole/generator.py
diff --git a/test cases/common/179 generator link whole/main.c b/test cases/common/176 generator link whole/main.c
index acf8717..acf8717 100644
--- a/test cases/common/179 generator link whole/main.c
+++ b/test cases/common/176 generator link whole/main.c
diff --git a/test cases/common/179 generator link whole/meson.build b/test cases/common/176 generator link whole/meson.build
index 30ae9c6..30ae9c6 100644
--- a/test cases/common/179 generator link whole/meson.build
+++ b/test cases/common/176 generator link whole/meson.build
diff --git a/test cases/common/179 generator link whole/meson_test_function.tmpl b/test cases/common/176 generator link whole/meson_test_function.tmpl
index e69de29..e69de29 100644
--- a/test cases/common/179 generator link whole/meson_test_function.tmpl
+++ b/test cases/common/176 generator link whole/meson_test_function.tmpl
diff --git a/test cases/common/179 generator link whole/pull_meson_test_function.c b/test cases/common/176 generator link whole/pull_meson_test_function.c
index c54dda6..c54dda6 100644
--- a/test cases/common/179 generator link whole/pull_meson_test_function.c
+++ b/test cases/common/176 generator link whole/pull_meson_test_function.c
diff --git a/test cases/common/180 initial c_args/meson.build b/test cases/common/177 initial c_args/meson.build
index 169d2bd..169d2bd 100644
--- a/test cases/common/180 initial c_args/meson.build
+++ b/test cases/common/177 initial c_args/meson.build
diff --git a/test cases/common/180 initial c_args/test_args.txt b/test cases/common/177 initial c_args/test_args.txt
index 9a6da06..9a6da06 100644
--- a/test cases/common/180 initial c_args/test_args.txt
+++ b/test cases/common/177 initial c_args/test_args.txt
diff --git a/test cases/common/181 identical target name in subproject flat layout/foo.c b/test cases/common/178 identical target name in subproject flat layout/foo.c
index ed42789..ed42789 100644
--- a/test cases/common/181 identical target name in subproject flat layout/foo.c
+++ b/test cases/common/178 identical target name in subproject flat layout/foo.c
diff --git a/test cases/common/181 identical target name in subproject flat layout/main.c b/test cases/common/178 identical target name in subproject flat layout/main.c
index 6f02aeb..6f02aeb 100644
--- a/test cases/common/181 identical target name in subproject flat layout/main.c
+++ b/test cases/common/178 identical target name in subproject flat layout/main.c
diff --git a/test cases/common/181 identical target name in subproject flat layout/meson.build b/test cases/common/178 identical target name in subproject flat layout/meson.build
index d859fda..d859fda 100644
--- a/test cases/common/181 identical target name in subproject flat layout/meson.build
+++ b/test cases/common/178 identical target name in subproject flat layout/meson.build
diff --git a/test cases/common/181 identical target name in subproject flat layout/subprojects/subproj/foo.c b/test cases/common/178 identical target name in subproject flat layout/subprojects/subproj/foo.c
index f334292..f334292 100644
--- a/test cases/common/181 identical target name in subproject flat layout/subprojects/subproj/foo.c
+++ b/test cases/common/178 identical target name in subproject flat layout/subprojects/subproj/foo.c
diff --git a/test cases/common/181 identical target name in subproject flat layout/subprojects/subproj/meson.build b/test cases/common/178 identical target name in subproject flat layout/subprojects/subproj/meson.build
index c927194..c927194 100644
--- a/test cases/common/181 identical target name in subproject flat layout/subprojects/subproj/meson.build
+++ b/test cases/common/178 identical target name in subproject flat layout/subprojects/subproj/meson.build
diff --git a/test cases/common/182 as-needed/config.h b/test cases/common/179 as-needed/config.h
index b8fb60f..b8fb60f 100644
--- a/test cases/common/182 as-needed/config.h
+++ b/test cases/common/179 as-needed/config.h
diff --git a/test cases/common/182 as-needed/libA.cpp b/test cases/common/179 as-needed/libA.cpp
index 5f45bc0..5f45bc0 100644
--- a/test cases/common/182 as-needed/libA.cpp
+++ b/test cases/common/179 as-needed/libA.cpp
diff --git a/test cases/common/182 as-needed/libA.h b/test cases/common/179 as-needed/libA.h
index 8e76d22..8e76d22 100644
--- a/test cases/common/182 as-needed/libA.h
+++ b/test cases/common/179 as-needed/libA.h
diff --git a/test cases/common/182 as-needed/libB.cpp b/test cases/common/179 as-needed/libB.cpp
index a872394..a872394 100644
--- a/test cases/common/182 as-needed/libB.cpp
+++ b/test cases/common/179 as-needed/libB.cpp
diff --git a/test cases/common/182 as-needed/main.cpp b/test cases/common/179 as-needed/main.cpp
index 191d15c..191d15c 100644
--- a/test cases/common/182 as-needed/main.cpp
+++ b/test cases/common/179 as-needed/main.cpp
diff --git a/test cases/common/182 as-needed/meson.build b/test cases/common/179 as-needed/meson.build
index 3b54aaa..3b54aaa 100644
--- a/test cases/common/182 as-needed/meson.build
+++ b/test cases/common/179 as-needed/meson.build
diff --git a/test cases/common/20 array/func.c b/test cases/common/18 array/func.c
index 7412372..7412372 100644
--- a/test cases/common/20 array/func.c
+++ b/test cases/common/18 array/func.c
diff --git a/test cases/common/20 array/meson.build b/test cases/common/18 array/meson.build
index 0d17374..0d17374 100644
--- a/test cases/common/20 array/meson.build
+++ b/test cases/common/18 array/meson.build
diff --git a/test cases/common/20 array/prog.c b/test cases/common/18 array/prog.c
index ad58a0b..ad58a0b 100644
--- a/test cases/common/20 array/prog.c
+++ b/test cases/common/18 array/prog.c
diff --git a/test cases/common/183 ndebug if-release enabled/main.c b/test cases/common/180 ndebug if-release enabled/main.c
index 984ebca..984ebca 100644
--- a/test cases/common/183 ndebug if-release enabled/main.c
+++ b/test cases/common/180 ndebug if-release enabled/main.c
diff --git a/test cases/common/183 ndebug if-release enabled/meson.build b/test cases/common/180 ndebug if-release enabled/meson.build
index be26375..be26375 100644
--- a/test cases/common/183 ndebug if-release enabled/meson.build
+++ b/test cases/common/180 ndebug if-release enabled/meson.build
diff --git a/test cases/common/184 ndebug if-release disabled/main.c b/test cases/common/181 ndebug if-release disabled/main.c
index cb3ec3f..cb3ec3f 100644
--- a/test cases/common/184 ndebug if-release disabled/main.c
+++ b/test cases/common/181 ndebug if-release disabled/main.c
diff --git a/test cases/common/184 ndebug if-release disabled/meson.build b/test cases/common/181 ndebug if-release disabled/meson.build
index a9a79ea..a9a79ea 100644
--- a/test cases/common/184 ndebug if-release disabled/meson.build
+++ b/test cases/common/181 ndebug if-release disabled/meson.build
diff --git a/test cases/common/185 subproject version/meson.build b/test cases/common/182 subproject version/meson.build
index bd8fc03..bd8fc03 100644
--- a/test cases/common/185 subproject version/meson.build
+++ b/test cases/common/182 subproject version/meson.build
diff --git a/test cases/common/185 subproject version/subprojects/a/meson.build b/test cases/common/182 subproject version/subprojects/a/meson.build
index dae3130..dae3130 100644
--- a/test cases/common/185 subproject version/subprojects/a/meson.build
+++ b/test cases/common/182 subproject version/subprojects/a/meson.build
diff --git a/test cases/common/186 subdir_done/meson.build b/test cases/common/183 subdir_done/meson.build
index 457e613..457e613 100644
--- a/test cases/common/186 subdir_done/meson.build
+++ b/test cases/common/183 subdir_done/meson.build
diff --git a/test cases/common/187 bothlibraries/libfile.c b/test cases/common/184 bothlibraries/libfile.c
index 085ef3b..085ef3b 100644
--- a/test cases/common/187 bothlibraries/libfile.c
+++ b/test cases/common/184 bothlibraries/libfile.c
diff --git a/test cases/common/187 bothlibraries/main.c b/test cases/common/184 bothlibraries/main.c
index 03a8e02..03a8e02 100644
--- a/test cases/common/187 bothlibraries/main.c
+++ b/test cases/common/184 bothlibraries/main.c
diff --git a/test cases/common/187 bothlibraries/meson.build b/test cases/common/184 bothlibraries/meson.build
index 3a13d62..3a13d62 100644
--- a/test cases/common/187 bothlibraries/meson.build
+++ b/test cases/common/184 bothlibraries/meson.build
diff --git a/test cases/common/187 bothlibraries/mylib.h b/test cases/common/184 bothlibraries/mylib.h
index 1038a01..1038a01 100644
--- a/test cases/common/187 bothlibraries/mylib.h
+++ b/test cases/common/184 bothlibraries/mylib.h
diff --git a/test cases/common/188 escape and unicode/file.c.in b/test cases/common/185 escape and unicode/file.c.in
index 413ed42..413ed42 100644
--- a/test cases/common/188 escape and unicode/file.c.in
+++ b/test cases/common/185 escape and unicode/file.c.in
diff --git a/test cases/common/188 escape and unicode/file.py b/test cases/common/185 escape and unicode/file.py
index af67a09..af67a09 100644
--- a/test cases/common/188 escape and unicode/file.py
+++ b/test cases/common/185 escape and unicode/file.py
diff --git a/test cases/common/188 escape and unicode/find.py b/test cases/common/185 escape and unicode/find.py
index 34a3eb8..34a3eb8 100644
--- a/test cases/common/188 escape and unicode/find.py
+++ b/test cases/common/185 escape and unicode/find.py
diff --git a/test cases/common/188 escape and unicode/fun.c b/test cases/common/185 escape and unicode/fun.c
index 8eeb8ea..8eeb8ea 100644
--- a/test cases/common/188 escape and unicode/fun.c
+++ b/test cases/common/185 escape and unicode/fun.c
diff --git a/test cases/common/188 escape and unicode/main.c b/test cases/common/185 escape and unicode/main.c
index 0bcde16..0bcde16 100644
--- a/test cases/common/188 escape and unicode/main.c
+++ b/test cases/common/185 escape and unicode/main.c
diff --git a/test cases/common/188 escape and unicode/meson.build b/test cases/common/185 escape and unicode/meson.build
index 65377b6..65377b6 100644
--- a/test cases/common/188 escape and unicode/meson.build
+++ b/test cases/common/185 escape and unicode/meson.build
diff --git a/test cases/common/189 has link arg/meson.build b/test cases/common/186 has link arg/meson.build
index e166101..e166101 100644
--- a/test cases/common/189 has link arg/meson.build
+++ b/test cases/common/186 has link arg/meson.build
diff --git a/test cases/common/190 same target name flat layout/foo.c b/test cases/common/187 same target name flat layout/foo.c
index ed42789..ed42789 100644
--- a/test cases/common/190 same target name flat layout/foo.c
+++ b/test cases/common/187 same target name flat layout/foo.c
diff --git a/test cases/common/190 same target name flat layout/main.c b/test cases/common/187 same target name flat layout/main.c
index 6f02aeb..6f02aeb 100644
--- a/test cases/common/190 same target name flat layout/main.c
+++ b/test cases/common/187 same target name flat layout/main.c
diff --git a/test cases/common/190 same target name flat layout/meson.build b/test cases/common/187 same target name flat layout/meson.build
index a3c95fa..a3c95fa 100644
--- a/test cases/common/190 same target name flat layout/meson.build
+++ b/test cases/common/187 same target name flat layout/meson.build
diff --git a/test cases/common/190 same target name flat layout/subdir/foo.c b/test cases/common/187 same target name flat layout/subdir/foo.c
index f334292..f334292 100644
--- a/test cases/common/190 same target name flat layout/subdir/foo.c
+++ b/test cases/common/187 same target name flat layout/subdir/foo.c
diff --git a/test cases/common/190 same target name flat layout/subdir/meson.build b/test cases/common/187 same target name flat layout/subdir/meson.build
index 223a5ef..223a5ef 100644
--- a/test cases/common/190 same target name flat layout/subdir/meson.build
+++ b/test cases/common/187 same target name flat layout/subdir/meson.build
diff --git a/test cases/common/191 find override/meson.build b/test cases/common/188 find override/meson.build
index 3b8af80..3b8af80 100644
--- a/test cases/common/191 find override/meson.build
+++ b/test cases/common/188 find override/meson.build
diff --git a/test cases/common/191 find override/otherdir/main.c b/test cases/common/188 find override/otherdir/main.c
index 2cef67c..2cef67c 100644
--- a/test cases/common/191 find override/otherdir/main.c
+++ b/test cases/common/188 find override/otherdir/main.c
diff --git a/test cases/common/191 find override/otherdir/main2.c b/test cases/common/188 find override/otherdir/main2.c
index 6d71688..6d71688 100644
--- a/test cases/common/191 find override/otherdir/main2.c
+++ b/test cases/common/188 find override/otherdir/main2.c
diff --git a/test cases/common/191 find override/otherdir/meson.build b/test cases/common/188 find override/otherdir/meson.build
index dc41f5b..dc41f5b 100644
--- a/test cases/common/191 find override/otherdir/meson.build
+++ b/test cases/common/188 find override/otherdir/meson.build
diff --git a/test cases/common/191 find override/otherdir/source.desc b/test cases/common/188 find override/otherdir/source.desc
index 8b19c9c..8b19c9c 100644
--- a/test cases/common/191 find override/otherdir/source.desc
+++ b/test cases/common/188 find override/otherdir/source.desc
diff --git a/test cases/common/191 find override/otherdir/source2.desc b/test cases/common/188 find override/otherdir/source2.desc
index 965f868..965f868 100644
--- a/test cases/common/191 find override/otherdir/source2.desc
+++ b/test cases/common/188 find override/otherdir/source2.desc
diff --git a/test cases/common/191 find override/subdir/converter.py b/test cases/common/188 find override/subdir/converter.py
index ee2ff85..ee2ff85 100755
--- a/test cases/common/191 find override/subdir/converter.py
+++ b/test cases/common/188 find override/subdir/converter.py
diff --git a/test cases/common/191 find override/subdir/gencodegen.py.in b/test cases/common/188 find override/subdir/gencodegen.py.in
index 57d9c40..57d9c40 100755
--- a/test cases/common/191 find override/subdir/gencodegen.py.in
+++ b/test cases/common/188 find override/subdir/gencodegen.py.in
diff --git a/test cases/common/191 find override/subdir/meson.build b/test cases/common/188 find override/subdir/meson.build
index e5de34d..e5de34d 100644
--- a/test cases/common/191 find override/subdir/meson.build
+++ b/test cases/common/188 find override/subdir/meson.build
diff --git a/test cases/common/192 partial dependency/declare_dependency/headers/foo.c b/test cases/common/189 partial dependency/declare_dependency/headers/foo.c
index 215112c..215112c 100644
--- a/test cases/common/192 partial dependency/declare_dependency/headers/foo.c
+++ b/test cases/common/189 partial dependency/declare_dependency/headers/foo.c
diff --git a/test cases/common/192 partial dependency/declare_dependency/headers/foo.h b/test cases/common/189 partial dependency/declare_dependency/headers/foo.h
index 28c81c9..28c81c9 100644
--- a/test cases/common/192 partial dependency/declare_dependency/headers/foo.h
+++ b/test cases/common/189 partial dependency/declare_dependency/headers/foo.h
diff --git a/test cases/common/192 partial dependency/declare_dependency/main.c b/test cases/common/189 partial dependency/declare_dependency/main.c
index e9ed032..e9ed032 100644
--- a/test cases/common/192 partial dependency/declare_dependency/main.c
+++ b/test cases/common/189 partial dependency/declare_dependency/main.c
diff --git a/test cases/common/192 partial dependency/declare_dependency/meson.build b/test cases/common/189 partial dependency/declare_dependency/meson.build
index 86e2608..86e2608 100644
--- a/test cases/common/192 partial dependency/declare_dependency/meson.build
+++ b/test cases/common/189 partial dependency/declare_dependency/meson.build
diff --git a/test cases/common/192 partial dependency/declare_dependency/other.c b/test cases/common/189 partial dependency/declare_dependency/other.c
index b1e199e..b1e199e 100644
--- a/test cases/common/192 partial dependency/declare_dependency/other.c
+++ b/test cases/common/189 partial dependency/declare_dependency/other.c
diff --git a/test cases/common/192 partial dependency/meson.build b/test cases/common/189 partial dependency/meson.build
index e908487..e908487 100644
--- a/test cases/common/192 partial dependency/meson.build
+++ b/test cases/common/189 partial dependency/meson.build
diff --git a/test cases/common/21 includedir/include/func.h b/test cases/common/19 includedir/include/func.h
index 29ebd0b..29ebd0b 100644
--- a/test cases/common/21 includedir/include/func.h
+++ b/test cases/common/19 includedir/include/func.h
diff --git a/test cases/common/21 includedir/meson.build b/test cases/common/19 includedir/meson.build
index 17eec0e..17eec0e 100644
--- a/test cases/common/21 includedir/meson.build
+++ b/test cases/common/19 includedir/meson.build
diff --git a/test cases/common/21 includedir/src/func.c b/test cases/common/19 includedir/src/func.c
index 193edbb..193edbb 100644
--- a/test cases/common/21 includedir/src/func.c
+++ b/test cases/common/19 includedir/src/func.c
diff --git a/test cases/common/21 includedir/src/meson.build b/test cases/common/19 includedir/src/meson.build
index 87bd224..87bd224 100644
--- a/test cases/common/21 includedir/src/meson.build
+++ b/test cases/common/19 includedir/src/meson.build
diff --git a/test cases/common/21 includedir/src/prog.c b/test cases/common/19 includedir/src/prog.c
index c26b9b3..c26b9b3 100644
--- a/test cases/common/21 includedir/src/prog.c
+++ b/test cases/common/19 includedir/src/prog.c
diff --git a/test cases/common/193 openmp/main.c b/test cases/common/190 openmp/main.c
index cc81f48..cc81f48 100644
--- a/test cases/common/193 openmp/main.c
+++ b/test cases/common/190 openmp/main.c
diff --git a/test cases/common/193 openmp/main.cpp b/test cases/common/190 openmp/main.cpp
index b12be3f..b12be3f 100644
--- a/test cases/common/193 openmp/main.cpp
+++ b/test cases/common/190 openmp/main.cpp
diff --git a/test cases/common/193 openmp/main.f90 b/test cases/common/190 openmp/main.f90
index c062d86..c062d86 100644
--- a/test cases/common/193 openmp/main.f90
+++ b/test cases/common/190 openmp/main.f90
diff --git a/test cases/common/193 openmp/meson.build b/test cases/common/190 openmp/meson.build
index a05ca59..eb270ab 100644
--- a/test cases/common/193 openmp/meson.build
+++ b/test cases/common/190 openmp/meson.build
@@ -38,3 +38,6 @@ if add_languages('fortran', required : false)
test('OpenMP Fortran', execpp, env : env)
endif
+
+# Check we can apply a version constraint
+dependency('openmp', version: '>=@0@'.format(openmp.version()))
diff --git a/test cases/common/194 same target name/file.c b/test cases/common/191 same target name/file.c
index 6f1c172..6f1c172 100644
--- a/test cases/common/194 same target name/file.c
+++ b/test cases/common/191 same target name/file.c
diff --git a/test cases/common/194 same target name/meson.build b/test cases/common/191 same target name/meson.build
index 4e585d5..4e585d5 100644
--- a/test cases/common/194 same target name/meson.build
+++ b/test cases/common/191 same target name/meson.build
diff --git a/test cases/common/194 same target name/sub/file2.c b/test cases/common/191 same target name/sub/file2.c
index a5e453d..a5e453d 100644
--- a/test cases/common/194 same target name/sub/file2.c
+++ b/test cases/common/191 same target name/sub/file2.c
diff --git a/test cases/common/194 same target name/sub/meson.build b/test cases/common/191 same target name/sub/meson.build
index 610a4a3..610a4a3 100644
--- a/test cases/common/194 same target name/sub/meson.build
+++ b/test cases/common/191 same target name/sub/meson.build
diff --git a/test cases/common/195 test depends/gen.py b/test cases/common/192 test depends/gen.py
index ee4ed98..ee4ed98 100755
--- a/test cases/common/195 test depends/gen.py
+++ b/test cases/common/192 test depends/gen.py
diff --git a/test cases/common/195 test depends/main.c b/test cases/common/192 test depends/main.c
index 78f2de1..78f2de1 100644
--- a/test cases/common/195 test depends/main.c
+++ b/test cases/common/192 test depends/main.c
diff --git a/test cases/common/195 test depends/meson.build b/test cases/common/192 test depends/meson.build
index 888c451..888c451 100644
--- a/test cases/common/195 test depends/meson.build
+++ b/test cases/common/192 test depends/meson.build
diff --git a/test cases/common/195 test depends/test.py b/test cases/common/192 test depends/test.py
index 5b9f65c..5b9f65c 100755
--- a/test cases/common/195 test depends/test.py
+++ b/test cases/common/192 test depends/test.py
diff --git a/test cases/common/196 args flattening/meson.build b/test cases/common/193 args flattening/meson.build
index 6da2e8f..6da2e8f 100644
--- a/test cases/common/196 args flattening/meson.build
+++ b/test cases/common/193 args flattening/meson.build
diff --git a/test cases/common/197 dict/meson.build b/test cases/common/194 dict/meson.build
index 41eea31..41eea31 100644
--- a/test cases/common/197 dict/meson.build
+++ b/test cases/common/194 dict/meson.build
diff --git a/test cases/common/197 dict/prog.c b/test cases/common/194 dict/prog.c
index bf0999d..bf0999d 100644
--- a/test cases/common/197 dict/prog.c
+++ b/test cases/common/194 dict/prog.c
diff --git a/test cases/common/198 check header/meson.build b/test cases/common/195 check header/meson.build
index 7b343d7..f2f7fa5 100644
--- a/test cases/common/198 check header/meson.build
+++ b/test cases/common/195 check header/meson.build
@@ -33,8 +33,8 @@ foreach comp : [meson.get_compiler('c'), meson.get_compiler('cpp')]
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80005
# https://github.com/mesonbuild/meson/issues/1458
if host_system == 'linux'
- assert(comp.check_header('linux/if.h', prefix : fallback),
- 'Could not find <linux/if.h>')
+ assert(comp.check_header('linux/socket.h', prefix : fallback),
+ 'Could not find <linux/socket.h>')
if comp.has_header('intrin.h', prefix : fallback)
assert(not comp.check_header('intrin.h'),
'intrin.h should not be usable on linux')
diff --git a/test cases/common/198 check header/ouagadougou.h b/test cases/common/195 check header/ouagadougou.h
index 2f76c49..2f76c49 100644
--- a/test cases/common/198 check header/ouagadougou.h
+++ b/test cases/common/195 check header/ouagadougou.h
diff --git a/test cases/common/199 install_mode/config.h.in b/test cases/common/196 install_mode/config.h.in
index 14a1558..14a1558 100644
--- a/test cases/common/199 install_mode/config.h.in
+++ b/test cases/common/196 install_mode/config.h.in
diff --git a/test cases/common/199 install_mode/data_source.txt b/test cases/common/196 install_mode/data_source.txt
index 0c23cc0..0c23cc0 100644
--- a/test cases/common/199 install_mode/data_source.txt
+++ b/test cases/common/196 install_mode/data_source.txt
diff --git a/test cases/common/199 install_mode/foo.1 b/test cases/common/196 install_mode/foo.1
index 647c097..647c097 100644
--- a/test cases/common/199 install_mode/foo.1
+++ b/test cases/common/196 install_mode/foo.1
diff --git a/test cases/common/199 install_mode/installed_files.txt b/test cases/common/196 install_mode/installed_files.txt
index 00fb231..724d954 100644
--- a/test cases/common/199 install_mode/installed_files.txt
+++ b/test cases/common/196 install_mode/installed_files.txt
@@ -5,4 +5,5 @@ usr/include/rootdir.h
usr/libtest/libstat.a
usr/share/man/man1/foo.1.gz
usr/share/sub1/second.dat
+usr/share/sub2/stub
usr/subdir/data.dat
diff --git a/test cases/common/199 install_mode/meson.build b/test cases/common/196 install_mode/meson.build
index d06371f..18a2948 100644
--- a/test cases/common/199 install_mode/meson.build
+++ b/test cases/common/196 install_mode/meson.build
@@ -11,6 +11,9 @@ install_subdir('sub1',
install_dir : 'share',
install_mode : ['rwxr-x--t', 'root'])
+install_subdir('sub2',
+ install_dir : 'share')
+
# test install_mode in configure_file
conf = configuration_data()
conf.set('var', 'mystring')
diff --git a/test cases/common/199 install_mode/rootdir.h b/test cases/common/196 install_mode/rootdir.h
index 72fb132..72fb132 100644
--- a/test cases/common/199 install_mode/rootdir.h
+++ b/test cases/common/196 install_mode/rootdir.h
diff --git a/test cases/common/199 install_mode/runscript.sh b/test cases/common/196 install_mode/runscript.sh
index 8bc5ca6..8bc5ca6 100644
--- a/test cases/common/199 install_mode/runscript.sh
+++ b/test cases/common/196 install_mode/runscript.sh
diff --git a/test cases/common/199 install_mode/stat.c b/test cases/common/196 install_mode/stat.c
index fa76a65..fa76a65 100644
--- a/test cases/common/199 install_mode/stat.c
+++ b/test cases/common/196 install_mode/stat.c
diff --git a/test cases/common/199 install_mode/sub1/second.dat b/test cases/common/196 install_mode/sub1/second.dat
index 48857a8..48857a8 100644
--- a/test cases/common/199 install_mode/sub1/second.dat
+++ b/test cases/common/196 install_mode/sub1/second.dat
diff --git a/test cases/common/60 install script/no-installed-files b/test cases/common/196 install_mode/sub2/stub
index e69de29..e69de29 100644
--- a/test cases/common/60 install script/no-installed-files
+++ b/test cases/common/196 install_mode/sub2/stub
diff --git a/test cases/common/199 install_mode/trivial.c b/test cases/common/196 install_mode/trivial.c
index 24ac454..24ac454 100644
--- a/test cases/common/199 install_mode/trivial.c
+++ b/test cases/common/196 install_mode/trivial.c
diff --git a/test cases/common/200 subproject array version/meson.build b/test cases/common/197 subproject array version/meson.build
index 0870bc4..0870bc4 100644
--- a/test cases/common/200 subproject array version/meson.build
+++ b/test cases/common/197 subproject array version/meson.build
diff --git a/test cases/common/200 subproject array version/subprojects/foo/meson.build b/test cases/common/197 subproject array version/subprojects/foo/meson.build
index f4ff535..f4ff535 100644
--- a/test cases/common/200 subproject array version/subprojects/foo/meson.build
+++ b/test cases/common/197 subproject array version/subprojects/foo/meson.build
diff --git a/test cases/common/201 feature option/meson.build b/test cases/common/198 feature option/meson.build
index ef3fa22..ef3fa22 100644
--- a/test cases/common/201 feature option/meson.build
+++ b/test cases/common/198 feature option/meson.build
diff --git a/test cases/common/201 feature option/meson_options.txt b/test cases/common/198 feature option/meson_options.txt
index 063a35f..063a35f 100644
--- a/test cases/common/201 feature option/meson_options.txt
+++ b/test cases/common/198 feature option/meson_options.txt
diff --git a/test cases/common/202 feature option disabled/meson.build b/test cases/common/199 feature option disabled/meson.build
index 1a83187..1a83187 100644
--- a/test cases/common/202 feature option disabled/meson.build
+++ b/test cases/common/199 feature option disabled/meson.build
diff --git a/test cases/common/202 feature option disabled/meson_options.txt b/test cases/common/199 feature option disabled/meson_options.txt
index 063a35f..063a35f 100644
--- a/test cases/common/202 feature option disabled/meson_options.txt
+++ b/test cases/common/199 feature option disabled/meson_options.txt
diff --git a/test cases/common/22 header in file list/header.h b/test cases/common/20 header in file list/header.h
index 354499a..354499a 100644
--- a/test cases/common/22 header in file list/header.h
+++ b/test cases/common/20 header in file list/header.h
diff --git a/test cases/common/22 header in file list/meson.build b/test cases/common/20 header in file list/meson.build
index 79eec8d..79eec8d 100644
--- a/test cases/common/22 header in file list/meson.build
+++ b/test cases/common/20 header in file list/meson.build
diff --git a/test cases/common/22 header in file list/prog.c b/test cases/common/20 header in file list/prog.c
index fbedab8..fbedab8 100644
--- a/test cases/common/22 header in file list/prog.c
+++ b/test cases/common/20 header in file list/prog.c
diff --git a/test cases/common/203 static threads/lib1.c b/test cases/common/200 static threads/lib1.c
index 1aa786c..1aa786c 100644
--- a/test cases/common/203 static threads/lib1.c
+++ b/test cases/common/200 static threads/lib1.c
diff --git a/test cases/common/203 static threads/lib2.c b/test cases/common/200 static threads/lib2.c
index e988814..e988814 100644
--- a/test cases/common/203 static threads/lib2.c
+++ b/test cases/common/200 static threads/lib2.c
diff --git a/test cases/common/203 static threads/meson.build b/test cases/common/200 static threads/meson.build
index 4279200..4279200 100644
--- a/test cases/common/203 static threads/meson.build
+++ b/test cases/common/200 static threads/meson.build
diff --git a/test cases/common/203 static threads/prog.c b/test cases/common/200 static threads/prog.c
index 14a7c76..14a7c76 100644
--- a/test cases/common/203 static threads/prog.c
+++ b/test cases/common/200 static threads/prog.c
diff --git a/test cases/common/205 generator in subdir/com/mesonbuild/genprog.py b/test cases/common/201 generator in subdir/com/mesonbuild/genprog.py
index 1e10998..1e10998 100644
--- a/test cases/common/205 generator in subdir/com/mesonbuild/genprog.py
+++ b/test cases/common/201 generator in subdir/com/mesonbuild/genprog.py
diff --git a/test cases/common/205 generator in subdir/com/mesonbuild/meson.build b/test cases/common/201 generator in subdir/com/mesonbuild/meson.build
index 4808743..4808743 100644
--- a/test cases/common/205 generator in subdir/com/mesonbuild/meson.build
+++ b/test cases/common/201 generator in subdir/com/mesonbuild/meson.build
diff --git a/test cases/common/205 generator in subdir/com/mesonbuild/subbie.inp b/test cases/common/201 generator in subdir/com/mesonbuild/subbie.inp
index df0f4e9..df0f4e9 100644
--- a/test cases/common/205 generator in subdir/com/mesonbuild/subbie.inp
+++ b/test cases/common/201 generator in subdir/com/mesonbuild/subbie.inp
diff --git a/test cases/common/205 generator in subdir/com/mesonbuild/testprog.c b/test cases/common/201 generator in subdir/com/mesonbuild/testprog.c
index 58867ad..58867ad 100644
--- a/test cases/common/205 generator in subdir/com/mesonbuild/testprog.c
+++ b/test cases/common/201 generator in subdir/com/mesonbuild/testprog.c
diff --git a/test cases/common/205 generator in subdir/meson.build b/test cases/common/201 generator in subdir/meson.build
index 9b8eb7c..9b8eb7c 100644
--- a/test cases/common/205 generator in subdir/meson.build
+++ b/test cases/common/201 generator in subdir/meson.build
diff --git a/test cases/common/206 subproject with features/meson.build b/test cases/common/206 subproject with features/meson.build
new file mode 100644
index 0000000..5bdfefb
--- /dev/null
+++ b/test cases/common/206 subproject with features/meson.build
@@ -0,0 +1,17 @@
+project('proj', 'c')
+
+auto_subproj = subproject('sub', required: get_option('use-subproject'))
+assert(auto_subproj.found(), 'Subproject should always be buildable and thus found')
+
+auto_dep = dependency('', fallback: ['sub', 'libSub'], required: true)
+assert(auto_dep.found() == true, 'Subproject is required and foundable, dependency should be found.')
+
+disabled_subproj = subproject('disabled_sub', required: get_option('disabled-subproject'))
+assert(disabled_subproj.found() == false, 'Disabled subproject should be NOT found')
+
+disabled_dep = dependency('', fallback: ['disabled_sub', 'libSub'], required: false)
+assert(disabled_dep.found() == false, 'Subprojetc was disabled, it should never be built.')
+nothing = executable('nothing', 'nothing.c', dependencies: [disabled_dep])
+
+subproj_with_missing_dep = subproject('auto_sub_with_missing_dep', required: get_option('auto-sub-with-missing-dep'))
+assert(subproj_with_missing_dep.found() == false, 'Subproject with required=auto and missing dependency should be NOT found')
diff --git a/test cases/common/206 subproject with features/meson_options.txt b/test cases/common/206 subproject with features/meson_options.txt
new file mode 100644
index 0000000..a46e5fb
--- /dev/null
+++ b/test cases/common/206 subproject with features/meson_options.txt
@@ -0,0 +1,3 @@
+option('use-subproject', type : 'feature', value : 'auto')
+option('disabled-subproject', type : 'feature', value : 'disabled')
+option('auto-sub-with-missing-dep', type : 'feature', value : 'auto')
diff --git a/test cases/common/206 subproject with features/nothing.c b/test cases/common/206 subproject with features/nothing.c
new file mode 100644
index 0000000..77750c2
--- /dev/null
+++ b/test cases/common/206 subproject with features/nothing.c
@@ -0,0 +1,4 @@
+int main(int argc, char const *argv[])
+{
+ return 0;
+} \ No newline at end of file
diff --git a/test cases/common/206 subproject with features/subprojects/auto_sub_with_missing_dep/meson.build b/test cases/common/206 subproject with features/subprojects/auto_sub_with_missing_dep/meson.build
new file mode 100644
index 0000000..fa6b011
--- /dev/null
+++ b/test cases/common/206 subproject with features/subprojects/auto_sub_with_missing_dep/meson.build
@@ -0,0 +1,3 @@
+project('sub', 'c')
+
+dependency('no_way_this_exists', required: true) \ No newline at end of file
diff --git a/test cases/common/206 subproject with features/subprojects/disabled_sub/lib/meson.build b/test cases/common/206 subproject with features/subprojects/disabled_sub/lib/meson.build
new file mode 100644
index 0000000..933001a
--- /dev/null
+++ b/test cases/common/206 subproject with features/subprojects/disabled_sub/lib/meson.build
@@ -0,0 +1,3 @@
+lib = static_library('sub', 'sub.c')
+
+libSub = declare_dependency(include_directories: include_directories('.'), link_with: lib) \ No newline at end of file
diff --git a/test cases/common/206 subproject with features/subprojects/disabled_sub/lib/sub.c b/test cases/common/206 subproject with features/subprojects/disabled_sub/lib/sub.c
new file mode 100644
index 0000000..068a5b8
--- /dev/null
+++ b/test cases/common/206 subproject with features/subprojects/disabled_sub/lib/sub.c
@@ -0,0 +1,5 @@
+#include "sub.h"
+
+int sub() {
+ return 0;
+}
diff --git a/test cases/common/206 subproject with features/subprojects/disabled_sub/lib/sub.h b/test cases/common/206 subproject with features/subprojects/disabled_sub/lib/sub.h
new file mode 100644
index 0000000..f1ab0e1
--- /dev/null
+++ b/test cases/common/206 subproject with features/subprojects/disabled_sub/lib/sub.h
@@ -0,0 +1,6 @@
+#ifndef SUB_H
+#define SUB_H
+
+int sub();
+
+#endif
diff --git a/test cases/common/206 subproject with features/subprojects/disabled_sub/meson.build b/test cases/common/206 subproject with features/subprojects/disabled_sub/meson.build
new file mode 100644
index 0000000..65fef03
--- /dev/null
+++ b/test cases/common/206 subproject with features/subprojects/disabled_sub/meson.build
@@ -0,0 +1,3 @@
+project('disabled_sub', 'c')
+
+subdir('lib') \ No newline at end of file
diff --git a/test cases/common/206 subproject with features/subprojects/sub/lib/meson.build b/test cases/common/206 subproject with features/subprojects/sub/lib/meson.build
new file mode 100644
index 0000000..731d22b
--- /dev/null
+++ b/test cases/common/206 subproject with features/subprojects/sub/lib/meson.build
@@ -0,0 +1,2 @@
+lib = static_library('sub', 'sub.c')
+libSub = declare_dependency(include_directories: include_directories('.'), link_with: lib)
diff --git a/test cases/common/206 subproject with features/subprojects/sub/lib/sub.c b/test cases/common/206 subproject with features/subprojects/sub/lib/sub.c
new file mode 100644
index 0000000..ed78306
--- /dev/null
+++ b/test cases/common/206 subproject with features/subprojects/sub/lib/sub.c
@@ -0,0 +1,5 @@
+#include "sub.h"
+
+int sub() {
+ return 0;
+}
diff --git a/test cases/common/206 subproject with features/subprojects/sub/lib/sub.h b/test cases/common/206 subproject with features/subprojects/sub/lib/sub.h
new file mode 100644
index 0000000..f1ab0e1
--- /dev/null
+++ b/test cases/common/206 subproject with features/subprojects/sub/lib/sub.h
@@ -0,0 +1,6 @@
+#ifndef SUB_H
+#define SUB_H
+
+int sub();
+
+#endif
diff --git a/test cases/common/206 subproject with features/subprojects/sub/meson.build b/test cases/common/206 subproject with features/subprojects/sub/meson.build
new file mode 100644
index 0000000..31882ac
--- /dev/null
+++ b/test cases/common/206 subproject with features/subprojects/sub/meson.build
@@ -0,0 +1,3 @@
+project('sub', 'c')
+
+subdir('lib') \ No newline at end of file
diff --git a/test cases/common/23 global arg/meson.build b/test cases/common/21 global arg/meson.build
index d7fd428..699dae6 100644
--- a/test cases/common/23 global arg/meson.build
+++ b/test cases/common/21 global arg/meson.build
@@ -3,9 +3,18 @@ project('global arg test', 'cpp', 'c')
add_global_arguments('-DMYTHING', language : 'c')
add_global_arguments('-DMYCPPTHING', language : 'cpp')
+add_global_arguments('-DGLOBAL_NATIVE', language : 'c', native : true)
+add_global_arguments('-DGLOBAL_CROSS', language : 'c', native : false)
+
+if meson.is_cross_build()
+ c_args = ['-DARG_CROSS']
+else
+ c_args = ['-DARG_NATIVE']
+endif
+
add_global_arguments('-DMYCANDCPPTHING', language: ['c', 'cpp'])
-exe1 = executable('prog', 'prog.c')
+exe1 = executable('prog', 'prog.c', c_args : c_args)
exe2 = executable('prog2', 'prog.cc')
test('prog1', exe1)
diff --git a/test cases/common/21 global arg/prog.c b/test cases/common/21 global arg/prog.c
new file mode 100644
index 0000000..fb014c7
--- /dev/null
+++ b/test cases/common/21 global arg/prog.c
@@ -0,0 +1,51 @@
+#ifndef MYTHING
+#error "Global argument not set"
+#endif
+
+#ifdef MYCPPTHING
+#error "Wrong global argument set"
+#endif
+
+#ifndef MYCANDCPPTHING
+#error "Global argument not set"
+#endif
+
+#ifdef GLOBAL_NATIVE
+ #ifndef ARG_NATIVE
+ #error "Global is native but arg_native is not set."
+ #endif
+
+ #ifdef GLOBAL_CROSS
+ #error "Both global native and global cross set."
+ #endif
+#else
+ #ifndef GLOBAL_CROSS
+ #error "Neither global_cross nor glogal_native is set."
+ #endif
+
+ #ifndef ARG_CROSS
+ #error "Global is cross but arg_cross is not set."
+ #endif
+
+ #ifdef ARG_NATIVE
+ #error "Global is cross but arg_native is set."
+ #endif
+#endif
+
+#ifdef GLOBAL_CROSS
+ #ifndef ARG_CROSS
+ #error "Global is cross but arg_cross is not set."
+ #endif
+#else
+ #ifdef ARG_CROSS
+ #error "Global is cross but arg_native is set."
+ #endif
+
+ #ifdef ARG_CROSS
+ #error "Global is native but arg cross is set."
+ #endif
+#endif
+
+int main(int argc, char **argv) {
+ return 0;
+}
diff --git a/test cases/common/23 global arg/prog.cc b/test cases/common/21 global arg/prog.cc
index 0ffd85e..0ffd85e 100644
--- a/test cases/common/23 global arg/prog.cc
+++ b/test cases/common/21 global arg/prog.cc
diff --git a/test cases/common/24 target arg/func.c b/test cases/common/22 target arg/func.c
index 9b3fe5d..9b3fe5d 100644
--- a/test cases/common/24 target arg/func.c
+++ b/test cases/common/22 target arg/func.c
diff --git a/test cases/common/24 target arg/func2.c b/test cases/common/22 target arg/func2.c
index d3e91a5..d3e91a5 100644
--- a/test cases/common/24 target arg/func2.c
+++ b/test cases/common/22 target arg/func2.c
diff --git a/test cases/common/24 target arg/meson.build b/test cases/common/22 target arg/meson.build
index 11ac006..11ac006 100644
--- a/test cases/common/24 target arg/meson.build
+++ b/test cases/common/22 target arg/meson.build
diff --git a/test cases/common/24 target arg/prog.cc b/test cases/common/22 target arg/prog.cc
index d1893ba..d1893ba 100644
--- a/test cases/common/24 target arg/prog.cc
+++ b/test cases/common/22 target arg/prog.cc
diff --git a/test cases/common/24 target arg/prog2.cc b/test cases/common/22 target arg/prog2.cc
index ef2fc4b..ef2fc4b 100644
--- a/test cases/common/24 target arg/prog2.cc
+++ b/test cases/common/22 target arg/prog2.cc
diff --git a/test cases/common/23 global arg/prog.c b/test cases/common/23 global arg/prog.c
deleted file mode 100644
index ace5a0a..0000000
--- a/test cases/common/23 global arg/prog.c
+++ /dev/null
@@ -1,15 +0,0 @@
-#ifndef MYTHING
-#error "Global argument not set"
-#endif
-
-#ifdef MYCPPTHING
-#error "Wrong global argument set"
-#endif
-
-#ifndef MYCANDCPPTHING
-#error "Global argument not set"
-#endif
-
-int main(int argc, char **argv) {
- return 0;
-}
diff --git a/test cases/common/25 object extraction/lib.c b/test cases/common/23 object extraction/lib.c
index 652f4eb..652f4eb 100644
--- a/test cases/common/25 object extraction/lib.c
+++ b/test cases/common/23 object extraction/lib.c
diff --git a/test cases/common/25 object extraction/lib2.c b/test cases/common/23 object extraction/lib2.c
index c30dde2..c30dde2 100644
--- a/test cases/common/25 object extraction/lib2.c
+++ b/test cases/common/23 object extraction/lib2.c
diff --git a/test cases/common/25 object extraction/main.c b/test cases/common/23 object extraction/main.c
index 394f139..394f139 100644
--- a/test cases/common/25 object extraction/main.c
+++ b/test cases/common/23 object extraction/main.c
diff --git a/test cases/common/25 object extraction/meson.build b/test cases/common/23 object extraction/meson.build
index d99ec84..d99ec84 100644
--- a/test cases/common/25 object extraction/meson.build
+++ b/test cases/common/23 object extraction/meson.build
diff --git a/test cases/common/25 object extraction/src/lib.c b/test cases/common/23 object extraction/src/lib.c
index 652f4eb..652f4eb 100644
--- a/test cases/common/25 object extraction/src/lib.c
+++ b/test cases/common/23 object extraction/src/lib.c
diff --git a/test cases/common/26 endian/meson.build b/test cases/common/24 endian/meson.build
index 80186fe..80186fe 100644
--- a/test cases/common/26 endian/meson.build
+++ b/test cases/common/24 endian/meson.build
diff --git a/test cases/common/26 endian/prog.c b/test cases/common/24 endian/prog.c
index b2a10d0..b2a10d0 100644
--- a/test cases/common/26 endian/prog.c
+++ b/test cases/common/24 endian/prog.c
diff --git a/test cases/common/27 library versions/installed_files.txt b/test cases/common/25 library versions/installed_files.txt
index e10d1dd..e10d1dd 100644
--- a/test cases/common/27 library versions/installed_files.txt
+++ b/test cases/common/25 library versions/installed_files.txt
diff --git a/test cases/common/27 library versions/lib.c b/test cases/common/25 library versions/lib.c
index 67b6f4d..67b6f4d 100644
--- a/test cases/common/27 library versions/lib.c
+++ b/test cases/common/25 library versions/lib.c
diff --git a/test cases/common/27 library versions/meson.build b/test cases/common/25 library versions/meson.build
index 2e2bef7..2e2bef7 100644
--- a/test cases/common/27 library versions/meson.build
+++ b/test cases/common/25 library versions/meson.build
diff --git a/test cases/common/27 library versions/subdir/meson.build b/test cases/common/25 library versions/subdir/meson.build
index a83fdb5..a83fdb5 100644
--- a/test cases/common/27 library versions/subdir/meson.build
+++ b/test cases/common/25 library versions/subdir/meson.build
diff --git a/test cases/common/28 config subdir/include/config.h.in b/test cases/common/26 config subdir/include/config.h.in
index 4c3c62d..4c3c62d 100644
--- a/test cases/common/28 config subdir/include/config.h.in
+++ b/test cases/common/26 config subdir/include/config.h.in
diff --git a/test cases/common/28 config subdir/include/meson.build b/test cases/common/26 config subdir/include/meson.build
index f14111a..f14111a 100644
--- a/test cases/common/28 config subdir/include/meson.build
+++ b/test cases/common/26 config subdir/include/meson.build
diff --git a/test cases/common/28 config subdir/meson.build b/test cases/common/26 config subdir/meson.build
index 25f53db..25f53db 100644
--- a/test cases/common/28 config subdir/meson.build
+++ b/test cases/common/26 config subdir/meson.build
diff --git a/test cases/common/28 config subdir/src/meson.build b/test cases/common/26 config subdir/src/meson.build
index 97598a4..97598a4 100644
--- a/test cases/common/28 config subdir/src/meson.build
+++ b/test cases/common/26 config subdir/src/meson.build
diff --git a/test cases/common/28 config subdir/src/prog.c b/test cases/common/26 config subdir/src/prog.c
index 4c03c20..4c03c20 100644
--- a/test cases/common/28 config subdir/src/prog.c
+++ b/test cases/common/26 config subdir/src/prog.c
diff --git a/test cases/common/29 pipeline/input_src.dat b/test cases/common/27 pipeline/input_src.dat
index 7412372..7412372 100644
--- a/test cases/common/29 pipeline/input_src.dat
+++ b/test cases/common/27 pipeline/input_src.dat
diff --git a/test cases/common/29 pipeline/meson.build b/test cases/common/27 pipeline/meson.build
index 200a6d8..200a6d8 100644
--- a/test cases/common/29 pipeline/meson.build
+++ b/test cases/common/27 pipeline/meson.build
diff --git a/test cases/common/29 pipeline/prog.c b/test cases/common/27 pipeline/prog.c
index 175a90d..175a90d 100644
--- a/test cases/common/29 pipeline/prog.c
+++ b/test cases/common/27 pipeline/prog.c
diff --git a/test cases/common/29 pipeline/srcgen.c b/test cases/common/27 pipeline/srcgen.c
index ceb9ecc..ceb9ecc 100644
--- a/test cases/common/29 pipeline/srcgen.c
+++ b/test cases/common/27 pipeline/srcgen.c
diff --git a/test cases/common/30 pipeline/meson.build b/test cases/common/28 pipeline/meson.build
index 0a430bd..0a430bd 100644
--- a/test cases/common/30 pipeline/meson.build
+++ b/test cases/common/28 pipeline/meson.build
diff --git a/test cases/common/30 pipeline/src/input_src.dat b/test cases/common/28 pipeline/src/input_src.dat
index 354499a..354499a 100644
--- a/test cases/common/30 pipeline/src/input_src.dat
+++ b/test cases/common/28 pipeline/src/input_src.dat
diff --git a/test cases/common/30 pipeline/src/meson.build b/test cases/common/28 pipeline/src/meson.build
index 4e9ac11..4e9ac11 100644
--- a/test cases/common/30 pipeline/src/meson.build
+++ b/test cases/common/28 pipeline/src/meson.build
diff --git a/test cases/common/30 pipeline/src/prog.c b/test cases/common/28 pipeline/src/prog.c
index 29396b9..29396b9 100644
--- a/test cases/common/30 pipeline/src/prog.c
+++ b/test cases/common/28 pipeline/src/prog.c
diff --git a/test cases/common/30 pipeline/src/srcgen.c b/test cases/common/28 pipeline/src/srcgen.c
index 26761d2..26761d2 100644
--- a/test cases/common/30 pipeline/src/srcgen.c
+++ b/test cases/common/28 pipeline/src/srcgen.c
diff --git a/test cases/common/31 find program/meson.build b/test cases/common/29 find program/meson.build
index ba5386d..ba5386d 100644
--- a/test cases/common/31 find program/meson.build
+++ b/test cases/common/29 find program/meson.build
diff --git a/test cases/common/31 find program/source.in b/test cases/common/29 find program/source.in
index 5c2fa9b..5c2fa9b 100644
--- a/test cases/common/31 find program/source.in
+++ b/test cases/common/29 find program/source.in
diff --git a/test cases/common/32 multiline string/meson.build b/test cases/common/30 multiline string/meson.build
index 262cb15..262cb15 100644
--- a/test cases/common/32 multiline string/meson.build
+++ b/test cases/common/30 multiline string/meson.build
diff --git a/test cases/common/33 try compile/invalid.c b/test cases/common/31 try compile/invalid.c
index b623bf8..b623bf8 100644
--- a/test cases/common/33 try compile/invalid.c
+++ b/test cases/common/31 try compile/invalid.c
diff --git a/test cases/common/33 try compile/meson.build b/test cases/common/31 try compile/meson.build
index 09ca395..09ca395 100644
--- a/test cases/common/33 try compile/meson.build
+++ b/test cases/common/31 try compile/meson.build
diff --git a/test cases/common/33 try compile/valid.c b/test cases/common/31 try compile/valid.c
index 3757f5a..3757f5a 100644
--- a/test cases/common/33 try compile/valid.c
+++ b/test cases/common/31 try compile/valid.c
diff --git a/test cases/common/34 compiler id/meson.build b/test cases/common/32 compiler id/meson.build
index 2b5c445..2b5c445 100644
--- a/test cases/common/34 compiler id/meson.build
+++ b/test cases/common/32 compiler id/meson.build
diff --git a/test cases/common/35 sizeof/config.h.in b/test cases/common/33 sizeof/config.h.in
index a442e8a..a442e8a 100644
--- a/test cases/common/35 sizeof/config.h.in
+++ b/test cases/common/33 sizeof/config.h.in
diff --git a/test cases/common/35 sizeof/meson.build b/test cases/common/33 sizeof/meson.build
index 9de5b78..9de5b78 100644
--- a/test cases/common/35 sizeof/meson.build
+++ b/test cases/common/33 sizeof/meson.build
diff --git a/test cases/common/35 sizeof/prog.c.in b/test cases/common/33 sizeof/prog.c.in
index 85b1229..85b1229 100644
--- a/test cases/common/35 sizeof/prog.c.in
+++ b/test cases/common/33 sizeof/prog.c.in
diff --git a/test cases/common/36 define10/config.h.in b/test cases/common/34 define10/config.h.in
index dc77346..dc77346 100644
--- a/test cases/common/36 define10/config.h.in
+++ b/test cases/common/34 define10/config.h.in
diff --git a/test cases/common/36 define10/meson.build b/test cases/common/34 define10/meson.build
index a28e7e4..a28e7e4 100644
--- a/test cases/common/36 define10/meson.build
+++ b/test cases/common/34 define10/meson.build
diff --git a/test cases/common/36 define10/prog.c b/test cases/common/34 define10/prog.c
index 10e94f1..10e94f1 100644
--- a/test cases/common/36 define10/prog.c
+++ b/test cases/common/34 define10/prog.c
diff --git a/test cases/common/37 has header/meson.build b/test cases/common/35 has header/meson.build
index b53849c..b53849c 100644
--- a/test cases/common/37 has header/meson.build
+++ b/test cases/common/35 has header/meson.build
diff --git a/test cases/common/37 has header/ouagadougou.h b/test cases/common/35 has header/ouagadougou.h
index 2f76c49..2f76c49 100644
--- a/test cases/common/37 has header/ouagadougou.h
+++ b/test cases/common/35 has header/ouagadougou.h
diff --git a/test cases/common/38 run program/get-version.py b/test cases/common/36 run program/get-version.py
index a22d559..a22d559 100644
--- a/test cases/common/38 run program/get-version.py
+++ b/test cases/common/36 run program/get-version.py
diff --git a/test cases/common/38 run program/meson.build b/test cases/common/36 run program/meson.build
index a05cea3..a05cea3 100644
--- a/test cases/common/38 run program/meson.build
+++ b/test cases/common/36 run program/meson.build
diff --git a/test cases/common/38 run program/scripts/hello.bat b/test cases/common/36 run program/scripts/hello.bat
index cbc346b..cbc346b 100644
--- a/test cases/common/38 run program/scripts/hello.bat
+++ b/test cases/common/36 run program/scripts/hello.bat
diff --git a/test cases/common/38 run program/scripts/hello.sh b/test cases/common/36 run program/scripts/hello.sh
index 2a22daa..2a22daa 100755
--- a/test cases/common/38 run program/scripts/hello.sh
+++ b/test cases/common/36 run program/scripts/hello.sh
diff --git a/test cases/common/39 tryrun/error.c b/test cases/common/37 tryrun/error.c
index 80eeb5d..80eeb5d 100644
--- a/test cases/common/39 tryrun/error.c
+++ b/test cases/common/37 tryrun/error.c
diff --git a/test cases/common/39 tryrun/meson.build b/test cases/common/37 tryrun/meson.build
index c64446f..c64446f 100644
--- a/test cases/common/39 tryrun/meson.build
+++ b/test cases/common/37 tryrun/meson.build
diff --git a/test cases/common/39 tryrun/no_compile.c b/test cases/common/37 tryrun/no_compile.c
index 86b67ac..86b67ac 100644
--- a/test cases/common/39 tryrun/no_compile.c
+++ b/test cases/common/37 tryrun/no_compile.c
diff --git a/test cases/common/39 tryrun/ok.c b/test cases/common/37 tryrun/ok.c
index 4111c74..4111c74 100644
--- a/test cases/common/39 tryrun/ok.c
+++ b/test cases/common/37 tryrun/ok.c
diff --git a/test cases/common/40 logic ops/meson.build b/test cases/common/38 logic ops/meson.build
index 897054e..897054e 100644
--- a/test cases/common/40 logic ops/meson.build
+++ b/test cases/common/38 logic ops/meson.build
diff --git a/test cases/common/42 string operations/meson.build b/test cases/common/39 string operations/meson.build
index 6596142..6596142 100644
--- a/test cases/common/42 string operations/meson.build
+++ b/test cases/common/39 string operations/meson.build
diff --git a/test cases/common/43 has function/meson.build b/test cases/common/40 has function/meson.build
index eb30acd..eb30acd 100644
--- a/test cases/common/43 has function/meson.build
+++ b/test cases/common/40 has function/meson.build
diff --git a/test cases/common/41 elif/meson.build b/test cases/common/41 elif/meson.build
deleted file mode 100644
index d37df00..0000000
--- a/test cases/common/41 elif/meson.build
+++ /dev/null
@@ -1,28 +0,0 @@
-project('elseif', 'c')
-
-t = true
-f = false
-
-if true
- message('Ok.')
-elif true
- error('Error')
-else
- error('Error')
-endif
-
-if f
- error('Error.')
-elif t
- message('Ok')
-else
- error('Error')
-endif
-
-if f
- error('Error.')
-elif false
- error('Error')
-else
- message('Ok')
-endif
diff --git a/test cases/common/44 has member/meson.build b/test cases/common/41 has member/meson.build
index 4e61956..4e61956 100644
--- a/test cases/common/44 has member/meson.build
+++ b/test cases/common/41 has member/meson.build
diff --git a/test cases/common/45 alignment/meson.build b/test cases/common/42 alignment/meson.build
index a9bd65b..a9bd65b 100644
--- a/test cases/common/45 alignment/meson.build
+++ b/test cases/common/42 alignment/meson.build
diff --git a/test cases/common/46 library chain/installed_files.txt b/test cases/common/43 library chain/installed_files.txt
index c7dab9f..c7dab9f 100644
--- a/test cases/common/46 library chain/installed_files.txt
+++ b/test cases/common/43 library chain/installed_files.txt
diff --git a/test cases/common/46 library chain/main.c b/test cases/common/43 library chain/main.c
index 7b015b7..7b015b7 100644
--- a/test cases/common/46 library chain/main.c
+++ b/test cases/common/43 library chain/main.c
diff --git a/test cases/common/46 library chain/meson.build b/test cases/common/43 library chain/meson.build
index 77528d7..77528d7 100644
--- a/test cases/common/46 library chain/meson.build
+++ b/test cases/common/43 library chain/meson.build
diff --git a/test cases/common/46 library chain/subdir/lib1.c b/test cases/common/43 library chain/subdir/lib1.c
index 499ef82..499ef82 100644
--- a/test cases/common/46 library chain/subdir/lib1.c
+++ b/test cases/common/43 library chain/subdir/lib1.c
diff --git a/test cases/common/46 library chain/subdir/meson.build b/test cases/common/43 library chain/subdir/meson.build
index ab71bda..ab71bda 100644
--- a/test cases/common/46 library chain/subdir/meson.build
+++ b/test cases/common/43 library chain/subdir/meson.build
diff --git a/test cases/common/46 library chain/subdir/subdir2/lib2.c b/test cases/common/43 library chain/subdir/subdir2/lib2.c
index 34fadf2..34fadf2 100644
--- a/test cases/common/46 library chain/subdir/subdir2/lib2.c
+++ b/test cases/common/43 library chain/subdir/subdir2/lib2.c
diff --git a/test cases/common/46 library chain/subdir/subdir2/meson.build b/test cases/common/43 library chain/subdir/subdir2/meson.build
index befd94d..befd94d 100644
--- a/test cases/common/46 library chain/subdir/subdir2/meson.build
+++ b/test cases/common/43 library chain/subdir/subdir2/meson.build
diff --git a/test cases/common/46 library chain/subdir/subdir3/lib3.c b/test cases/common/43 library chain/subdir/subdir3/lib3.c
index 7bd88af..7bd88af 100644
--- a/test cases/common/46 library chain/subdir/subdir3/lib3.c
+++ b/test cases/common/43 library chain/subdir/subdir3/lib3.c
diff --git a/test cases/common/46 library chain/subdir/subdir3/meson.build b/test cases/common/43 library chain/subdir/subdir3/meson.build
index 7bd249a..7bd249a 100644
--- a/test cases/common/46 library chain/subdir/subdir3/meson.build
+++ b/test cases/common/43 library chain/subdir/subdir3/meson.build
diff --git a/test cases/common/47 options/meson.build b/test cases/common/44 options/meson.build
index f177aa4..f177aa4 100644
--- a/test cases/common/47 options/meson.build
+++ b/test cases/common/44 options/meson.build
diff --git a/test cases/common/47 options/meson_options.txt b/test cases/common/44 options/meson_options.txt
index 4e1c8d8..4e1c8d8 100644
--- a/test cases/common/47 options/meson_options.txt
+++ b/test cases/common/44 options/meson_options.txt
diff --git a/test cases/common/48 test args/cmd_args.c b/test cases/common/45 test args/cmd_args.c
index 545b795..545b795 100644
--- a/test cases/common/48 test args/cmd_args.c
+++ b/test cases/common/45 test args/cmd_args.c
diff --git a/test cases/common/48 test args/copyfile.py b/test cases/common/45 test args/copyfile.py
index ff42ac3..ff42ac3 100644
--- a/test cases/common/48 test args/copyfile.py
+++ b/test cases/common/45 test args/copyfile.py
diff --git a/test cases/common/48 test args/env2vars.c b/test cases/common/45 test args/env2vars.c
index 19250a8..19250a8 100644
--- a/test cases/common/48 test args/env2vars.c
+++ b/test cases/common/45 test args/env2vars.c
diff --git a/test cases/common/48 test args/envvars.c b/test cases/common/45 test args/envvars.c
index 627e413..627e413 100644
--- a/test cases/common/48 test args/envvars.c
+++ b/test cases/common/45 test args/envvars.c
diff --git a/test cases/common/48 test args/meson.build b/test cases/common/45 test args/meson.build
index 81d3491..81d3491 100644
--- a/test cases/common/48 test args/meson.build
+++ b/test cases/common/45 test args/meson.build
diff --git a/test cases/common/48 test args/tester.c b/test cases/common/45 test args/tester.c
index 419277e..419277e 100644
--- a/test cases/common/48 test args/tester.c
+++ b/test cases/common/45 test args/tester.c
diff --git a/test cases/common/48 test args/tester.py b/test cases/common/45 test args/tester.py
index 0b4010a..0b4010a 100755
--- a/test cases/common/48 test args/tester.py
+++ b/test cases/common/45 test args/tester.py
diff --git a/test cases/common/48 test args/testfile.txt b/test cases/common/45 test args/testfile.txt
index 12f00e9..12f00e9 100644
--- a/test cases/common/48 test args/testfile.txt
+++ b/test cases/common/45 test args/testfile.txt
diff --git a/test cases/common/49 subproject/installed_files.txt b/test cases/common/46 subproject/installed_files.txt
index dc09fb7..dc09fb7 100644
--- a/test cases/common/49 subproject/installed_files.txt
+++ b/test cases/common/46 subproject/installed_files.txt
diff --git a/test cases/common/49 subproject/meson.build b/test cases/common/46 subproject/meson.build
index c6ec116..c6ec116 100644
--- a/test cases/common/49 subproject/meson.build
+++ b/test cases/common/46 subproject/meson.build
diff --git a/test cases/common/49 subproject/subprojects/sublib/include/subdefs.h b/test cases/common/46 subproject/subprojects/sublib/include/subdefs.h
index 681c7b8..681c7b8 100644
--- a/test cases/common/49 subproject/subprojects/sublib/include/subdefs.h
+++ b/test cases/common/46 subproject/subprojects/sublib/include/subdefs.h
diff --git a/test cases/common/49 subproject/subprojects/sublib/meson.build b/test cases/common/46 subproject/subprojects/sublib/meson.build
index acaf1bf..acaf1bf 100644
--- a/test cases/common/49 subproject/subprojects/sublib/meson.build
+++ b/test cases/common/46 subproject/subprojects/sublib/meson.build
diff --git a/test cases/common/49 subproject/subprojects/sublib/simpletest.c b/test cases/common/46 subproject/subprojects/sublib/simpletest.c
index 3801a40..3801a40 100644
--- a/test cases/common/49 subproject/subprojects/sublib/simpletest.c
+++ b/test cases/common/46 subproject/subprojects/sublib/simpletest.c
diff --git a/test cases/common/49 subproject/subprojects/sublib/sublib.c b/test cases/common/46 subproject/subprojects/sublib/sublib.c
index c13326b..c13326b 100644
--- a/test cases/common/49 subproject/subprojects/sublib/sublib.c
+++ b/test cases/common/46 subproject/subprojects/sublib/sublib.c
diff --git a/test cases/common/49 subproject/user.c b/test cases/common/46 subproject/user.c
index cfde532..cfde532 100644
--- a/test cases/common/49 subproject/user.c
+++ b/test cases/common/46 subproject/user.c
diff --git a/test cases/common/50 subproject options/meson.build b/test cases/common/47 subproject options/meson.build
index d4598b6..d4598b6 100644
--- a/test cases/common/50 subproject options/meson.build
+++ b/test cases/common/47 subproject options/meson.build
diff --git a/test cases/common/50 subproject options/meson_options.txt b/test cases/common/47 subproject options/meson_options.txt
index c295ddd..c295ddd 100644
--- a/test cases/common/50 subproject options/meson_options.txt
+++ b/test cases/common/47 subproject options/meson_options.txt
diff --git a/test cases/common/50 subproject options/subprojects/subproject/meson.build b/test cases/common/47 subproject options/subprojects/subproject/meson.build
index 5000b86..5000b86 100644
--- a/test cases/common/50 subproject options/subprojects/subproject/meson.build
+++ b/test cases/common/47 subproject options/subprojects/subproject/meson.build
diff --git a/test cases/common/50 subproject options/subprojects/subproject/meson_options.txt b/test cases/common/47 subproject options/subprojects/subproject/meson_options.txt
index ac78533..ac78533 100644
--- a/test cases/common/50 subproject options/subprojects/subproject/meson_options.txt
+++ b/test cases/common/47 subproject options/subprojects/subproject/meson_options.txt
diff --git a/test cases/common/51 pkgconfig-gen/dependencies/exposed.c b/test cases/common/48 pkgconfig-gen/dependencies/exposed.c
index 005202e..005202e 100644
--- a/test cases/common/51 pkgconfig-gen/dependencies/exposed.c
+++ b/test cases/common/48 pkgconfig-gen/dependencies/exposed.c
diff --git a/test cases/common/51 pkgconfig-gen/dependencies/internal.c b/test cases/common/48 pkgconfig-gen/dependencies/internal.c
index 1a41b11..1a41b11 100644
--- a/test cases/common/51 pkgconfig-gen/dependencies/internal.c
+++ b/test cases/common/48 pkgconfig-gen/dependencies/internal.c
diff --git a/test cases/common/51 pkgconfig-gen/dependencies/meson.build b/test cases/common/48 pkgconfig-gen/dependencies/meson.build
index 047e7e7..047e7e7 100644
--- a/test cases/common/51 pkgconfig-gen/dependencies/meson.build
+++ b/test cases/common/48 pkgconfig-gen/dependencies/meson.build
diff --git a/test cases/common/51 pkgconfig-gen/installed_files.txt b/test cases/common/48 pkgconfig-gen/installed_files.txt
index 3c44d28..3c44d28 100644
--- a/test cases/common/51 pkgconfig-gen/installed_files.txt
+++ b/test cases/common/48 pkgconfig-gen/installed_files.txt
diff --git a/test cases/common/51 pkgconfig-gen/meson.build b/test cases/common/48 pkgconfig-gen/meson.build
index 7e6c670..7e6c670 100644
--- a/test cases/common/51 pkgconfig-gen/meson.build
+++ b/test cases/common/48 pkgconfig-gen/meson.build
diff --git a/test cases/common/51 pkgconfig-gen/simple.c b/test cases/common/48 pkgconfig-gen/simple.c
index e8a6d83..e8a6d83 100644
--- a/test cases/common/51 pkgconfig-gen/simple.c
+++ b/test cases/common/48 pkgconfig-gen/simple.c
diff --git a/test cases/common/51 pkgconfig-gen/simple.h b/test cases/common/48 pkgconfig-gen/simple.h
index bb52e6d..bb52e6d 100644
--- a/test cases/common/51 pkgconfig-gen/simple.h
+++ b/test cases/common/48 pkgconfig-gen/simple.h
diff --git a/test cases/common/52 custom install dirs/datafile.cat b/test cases/common/49 custom install dirs/datafile.cat
index 53d81fc..53d81fc 100644
--- a/test cases/common/52 custom install dirs/datafile.cat
+++ b/test cases/common/49 custom install dirs/datafile.cat
diff --git a/test cases/common/52 custom install dirs/installed_files.txt b/test cases/common/49 custom install dirs/installed_files.txt
index 0cc533a..0cc533a 100644
--- a/test cases/common/52 custom install dirs/installed_files.txt
+++ b/test cases/common/49 custom install dirs/installed_files.txt
diff --git a/test cases/common/52 custom install dirs/meson.build b/test cases/common/49 custom install dirs/meson.build
index 494ff0e..494ff0e 100644
--- a/test cases/common/52 custom install dirs/meson.build
+++ b/test cases/common/49 custom install dirs/meson.build
diff --git a/test cases/common/52 custom install dirs/prog.1 b/test cases/common/49 custom install dirs/prog.1
index 08ef7da..08ef7da 100644
--- a/test cases/common/52 custom install dirs/prog.1
+++ b/test cases/common/49 custom install dirs/prog.1
diff --git a/test cases/common/52 custom install dirs/prog.c b/test cases/common/49 custom install dirs/prog.c
index 0f0061d..0f0061d 100644
--- a/test cases/common/52 custom install dirs/prog.c
+++ b/test cases/common/49 custom install dirs/prog.c
diff --git a/test cases/common/52 custom install dirs/sample.h b/test cases/common/49 custom install dirs/sample.h
index dc030da..dc030da 100644
--- a/test cases/common/52 custom install dirs/sample.h
+++ b/test cases/common/49 custom install dirs/sample.h
diff --git a/test cases/common/52 custom install dirs/subdir/datafile.dog b/test cases/common/49 custom install dirs/subdir/datafile.dog
index 7a5bcb7..7a5bcb7 100644
--- a/test cases/common/52 custom install dirs/subdir/datafile.dog
+++ b/test cases/common/49 custom install dirs/subdir/datafile.dog
diff --git a/test cases/common/53 subproject subproject/meson.build b/test cases/common/50 subproject subproject/meson.build
index f7df361..f7df361 100644
--- a/test cases/common/53 subproject subproject/meson.build
+++ b/test cases/common/50 subproject subproject/meson.build
diff --git a/test cases/common/53 subproject subproject/prog.c b/test cases/common/50 subproject subproject/prog.c
index 394f139..394f139 100644
--- a/test cases/common/53 subproject subproject/prog.c
+++ b/test cases/common/50 subproject subproject/prog.c
diff --git a/test cases/common/53 subproject subproject/subprojects/a/a.c b/test cases/common/50 subproject subproject/subprojects/a/a.c
index 7ac3e5e..7ac3e5e 100644
--- a/test cases/common/53 subproject subproject/subprojects/a/a.c
+++ b/test cases/common/50 subproject subproject/subprojects/a/a.c
diff --git a/test cases/common/53 subproject subproject/subprojects/a/meson.build b/test cases/common/50 subproject subproject/subprojects/a/meson.build
index f0dfc44..f0dfc44 100644
--- a/test cases/common/53 subproject subproject/subprojects/a/meson.build
+++ b/test cases/common/50 subproject subproject/subprojects/a/meson.build
diff --git a/test cases/common/53 subproject subproject/subprojects/b/b.c b/test cases/common/50 subproject subproject/subprojects/b/b.c
index a95651b..a95651b 100644
--- a/test cases/common/53 subproject subproject/subprojects/b/b.c
+++ b/test cases/common/50 subproject subproject/subprojects/b/b.c
diff --git a/test cases/common/53 subproject subproject/subprojects/b/meson.build b/test cases/common/50 subproject subproject/subprojects/b/meson.build
index e7af606..e7af606 100644
--- a/test cases/common/53 subproject subproject/subprojects/b/meson.build
+++ b/test cases/common/50 subproject subproject/subprojects/b/meson.build
diff --git a/test cases/common/54 same file name/d1/file.c b/test cases/common/51 same file name/d1/file.c
index 8084d73..8084d73 100644
--- a/test cases/common/54 same file name/d1/file.c
+++ b/test cases/common/51 same file name/d1/file.c
diff --git a/test cases/common/54 same file name/d2/file.c b/test cases/common/51 same file name/d2/file.c
index d1444a2..d1444a2 100644
--- a/test cases/common/54 same file name/d2/file.c
+++ b/test cases/common/51 same file name/d2/file.c
diff --git a/test cases/common/54 same file name/meson.build b/test cases/common/51 same file name/meson.build
index 3f351af..3f351af 100644
--- a/test cases/common/54 same file name/meson.build
+++ b/test cases/common/51 same file name/meson.build
diff --git a/test cases/common/54 same file name/prog.c b/test cases/common/51 same file name/prog.c
index 3441288..3441288 100644
--- a/test cases/common/54 same file name/prog.c
+++ b/test cases/common/51 same file name/prog.c
diff --git a/test cases/common/55 file grabber/a.c b/test cases/common/52 file grabber/a.c
index bee8ad7..bee8ad7 100644
--- a/test cases/common/55 file grabber/a.c
+++ b/test cases/common/52 file grabber/a.c
diff --git a/test cases/common/55 file grabber/b.c b/test cases/common/52 file grabber/b.c
index 0fdd162..0fdd162 100644
--- a/test cases/common/55 file grabber/b.c
+++ b/test cases/common/52 file grabber/b.c
diff --git a/test cases/common/55 file grabber/c.c b/test cases/common/52 file grabber/c.c
index 63f951c..63f951c 100644
--- a/test cases/common/55 file grabber/c.c
+++ b/test cases/common/52 file grabber/c.c
diff --git a/test cases/common/55 file grabber/grabber.bat b/test cases/common/52 file grabber/grabber.bat
index 8660314..8660314 100644
--- a/test cases/common/55 file grabber/grabber.bat
+++ b/test cases/common/52 file grabber/grabber.bat
diff --git a/test cases/common/55 file grabber/grabber.sh b/test cases/common/52 file grabber/grabber.sh
index 5e8f4b9..5e8f4b9 100755
--- a/test cases/common/55 file grabber/grabber.sh
+++ b/test cases/common/52 file grabber/grabber.sh
diff --git a/test cases/common/55 file grabber/grabber2.bat b/test cases/common/52 file grabber/grabber2.bat
index d1a3f98..d1a3f98 100644
--- a/test cases/common/55 file grabber/grabber2.bat
+++ b/test cases/common/52 file grabber/grabber2.bat
diff --git a/test cases/common/55 file grabber/meson.build b/test cases/common/52 file grabber/meson.build
index e332c0b..e332c0b 100644
--- a/test cases/common/55 file grabber/meson.build
+++ b/test cases/common/52 file grabber/meson.build
diff --git a/test cases/common/55 file grabber/prog.c b/test cases/common/52 file grabber/prog.c
index 3524f60..3524f60 100644
--- a/test cases/common/55 file grabber/prog.c
+++ b/test cases/common/52 file grabber/prog.c
diff --git a/test cases/common/55 file grabber/subdir/meson.build b/test cases/common/52 file grabber/subdir/meson.build
index 230d6f7..230d6f7 100644
--- a/test cases/common/55 file grabber/subdir/meson.build
+++ b/test cases/common/52 file grabber/subdir/meson.build
diff --git a/test cases/common/55 file grabber/subdir/suba.c b/test cases/common/52 file grabber/subdir/suba.c
index bee8ad7..bee8ad7 100644
--- a/test cases/common/55 file grabber/subdir/suba.c
+++ b/test cases/common/52 file grabber/subdir/suba.c
diff --git a/test cases/common/55 file grabber/subdir/subb.c b/test cases/common/52 file grabber/subdir/subb.c
index 0fdd162..0fdd162 100644
--- a/test cases/common/55 file grabber/subdir/subb.c
+++ b/test cases/common/52 file grabber/subdir/subb.c
diff --git a/test cases/common/55 file grabber/subdir/subc.c b/test cases/common/52 file grabber/subdir/subc.c
index 63f951c..63f951c 100644
--- a/test cases/common/55 file grabber/subdir/subc.c
+++ b/test cases/common/52 file grabber/subdir/subc.c
diff --git a/test cases/common/55 file grabber/subdir/subprog.c b/test cases/common/52 file grabber/subdir/subprog.c
index 3524f60..3524f60 100644
--- a/test cases/common/55 file grabber/subdir/subprog.c
+++ b/test cases/common/52 file grabber/subdir/subprog.c
diff --git a/test cases/common/56 custom target/data_source.txt b/test cases/common/53 custom target/data_source.txt
index 0c23cc0..0c23cc0 100644
--- a/test cases/common/56 custom target/data_source.txt
+++ b/test cases/common/53 custom target/data_source.txt
diff --git a/test cases/common/56 custom target/depfile/dep.py b/test cases/common/53 custom target/depfile/dep.py
index aff325b..aff325b 100755
--- a/test cases/common/56 custom target/depfile/dep.py
+++ b/test cases/common/53 custom target/depfile/dep.py
diff --git a/test cases/common/56 custom target/depfile/meson.build b/test cases/common/53 custom target/depfile/meson.build
index 46bca74..46bca74 100644
--- a/test cases/common/56 custom target/depfile/meson.build
+++ b/test cases/common/53 custom target/depfile/meson.build
diff --git a/test cases/common/56 custom target/installed_files.txt b/test cases/common/53 custom target/installed_files.txt
index d90a6b0..d90a6b0 100644
--- a/test cases/common/56 custom target/installed_files.txt
+++ b/test cases/common/53 custom target/installed_files.txt
diff --git a/test cases/common/56 custom target/meson.build b/test cases/common/53 custom target/meson.build
index 2e6f69c..2e6f69c 100644
--- a/test cases/common/56 custom target/meson.build
+++ b/test cases/common/53 custom target/meson.build
diff --git a/test cases/common/56 custom target/my_compiler.py b/test cases/common/53 custom target/my_compiler.py
index f46d23a..f46d23a 100755
--- a/test cases/common/56 custom target/my_compiler.py
+++ b/test cases/common/53 custom target/my_compiler.py
diff --git a/test cases/common/57 custom target chain/data_source.txt b/test cases/common/54 custom target chain/data_source.txt
index 0c23cc0..0c23cc0 100644
--- a/test cases/common/57 custom target chain/data_source.txt
+++ b/test cases/common/54 custom target chain/data_source.txt
diff --git a/test cases/common/57 custom target chain/installed_files.txt b/test cases/common/54 custom target chain/installed_files.txt
index 7feb072..7feb072 100644
--- a/test cases/common/57 custom target chain/installed_files.txt
+++ b/test cases/common/54 custom target chain/installed_files.txt
diff --git a/test cases/common/57 custom target chain/meson.build b/test cases/common/54 custom target chain/meson.build
index 138f795..138f795 100644
--- a/test cases/common/57 custom target chain/meson.build
+++ b/test cases/common/54 custom target chain/meson.build
diff --git a/test cases/common/57 custom target chain/my_compiler.py b/test cases/common/54 custom target chain/my_compiler.py
index 9cf4425..9cf4425 100755
--- a/test cases/common/57 custom target chain/my_compiler.py
+++ b/test cases/common/54 custom target chain/my_compiler.py
diff --git a/test cases/common/57 custom target chain/my_compiler2.py b/test cases/common/54 custom target chain/my_compiler2.py
index 0191f3f..0191f3f 100755
--- a/test cases/common/57 custom target chain/my_compiler2.py
+++ b/test cases/common/54 custom target chain/my_compiler2.py
diff --git a/test cases/common/57 custom target chain/usetarget/meson.build b/test cases/common/54 custom target chain/usetarget/meson.build
index 9aece8c..9aece8c 100644
--- a/test cases/common/57 custom target chain/usetarget/meson.build
+++ b/test cases/common/54 custom target chain/usetarget/meson.build
diff --git a/test cases/common/57 custom target chain/usetarget/myexe.c b/test cases/common/54 custom target chain/usetarget/myexe.c
index f9874fd..f9874fd 100644
--- a/test cases/common/57 custom target chain/usetarget/myexe.c
+++ b/test cases/common/54 custom target chain/usetarget/myexe.c
diff --git a/test cases/common/57 custom target chain/usetarget/subcomp.py b/test cases/common/54 custom target chain/usetarget/subcomp.py
index b5f6eb0..b5f6eb0 100755
--- a/test cases/common/57 custom target chain/usetarget/subcomp.py
+++ b/test cases/common/54 custom target chain/usetarget/subcomp.py
diff --git a/test cases/common/58 run target/check_exists.py b/test cases/common/55 run target/check_exists.py
index b6fc967..b6fc967 100755
--- a/test cases/common/58 run target/check_exists.py
+++ b/test cases/common/55 run target/check_exists.py
diff --git a/test cases/common/58 run target/configure.in b/test cases/common/55 run target/configure.in
index 0d42d04..0d42d04 100755
--- a/test cases/common/58 run target/configure.in
+++ b/test cases/common/55 run target/configure.in
diff --git a/test cases/common/58 run target/converter.py b/test cases/common/55 run target/converter.py
index 8dd31fe..8dd31fe 100644
--- a/test cases/common/58 run target/converter.py
+++ b/test cases/common/55 run target/converter.py
diff --git a/test cases/common/58 run target/fakeburner.py b/test cases/common/55 run target/fakeburner.py
index da3d0ac..da3d0ac 100755
--- a/test cases/common/58 run target/fakeburner.py
+++ b/test cases/common/55 run target/fakeburner.py
diff --git a/test cases/common/58 run target/helloprinter.c b/test cases/common/55 run target/helloprinter.c
index 4a6e0ac..4a6e0ac 100644
--- a/test cases/common/58 run target/helloprinter.c
+++ b/test cases/common/55 run target/helloprinter.c
diff --git a/test cases/common/58 run target/meson.build b/test cases/common/55 run target/meson.build
index 93a4ad0..93a4ad0 100644
--- a/test cases/common/58 run target/meson.build
+++ b/test cases/common/55 run target/meson.build
diff --git a/test cases/common/58 run target/scripts/script.sh b/test cases/common/55 run target/scripts/script.sh
index 0adf263..0adf263 100755
--- a/test cases/common/58 run target/scripts/script.sh
+++ b/test cases/common/55 run target/scripts/script.sh
diff --git a/test cases/common/59 object generator/meson.build b/test cases/common/56 object generator/meson.build
index e20da6f..e20da6f 100644
--- a/test cases/common/59 object generator/meson.build
+++ b/test cases/common/56 object generator/meson.build
diff --git a/test cases/common/59 object generator/obj_generator.py b/test cases/common/56 object generator/obj_generator.py
index a33872a..a33872a 100755
--- a/test cases/common/59 object generator/obj_generator.py
+++ b/test cases/common/56 object generator/obj_generator.py
diff --git a/test cases/common/59 object generator/prog.c b/test cases/common/56 object generator/prog.c
index 60459d6..60459d6 100644
--- a/test cases/common/59 object generator/prog.c
+++ b/test cases/common/56 object generator/prog.c
diff --git a/test cases/common/59 object generator/source.c b/test cases/common/56 object generator/source.c
index 7779b33..7779b33 100644
--- a/test cases/common/59 object generator/source.c
+++ b/test cases/common/56 object generator/source.c
diff --git a/test cases/common/59 object generator/source2.c b/test cases/common/56 object generator/source2.c
index 29aad40..29aad40 100644
--- a/test cases/common/59 object generator/source2.c
+++ b/test cases/common/56 object generator/source2.c
diff --git a/test cases/common/59 object generator/source3.c b/test cases/common/56 object generator/source3.c
index 1580f1e..1580f1e 100644
--- a/test cases/common/59 object generator/source3.c
+++ b/test cases/common/56 object generator/source3.c
diff --git a/test cases/common/60 install script/installed_files.txt b/test cases/common/57 install script/installed_files.txt
index 94c1fed..94c1fed 100644
--- a/test cases/common/60 install script/installed_files.txt
+++ b/test cases/common/57 install script/installed_files.txt
diff --git a/test cases/common/60 install script/meson.build b/test cases/common/57 install script/meson.build
index 6351518..6351518 100644
--- a/test cases/common/60 install script/meson.build
+++ b/test cases/common/57 install script/meson.build
diff --git a/test cases/common/60 install script/myinstall.py b/test cases/common/57 install script/myinstall.py
index 812561e..812561e 100644
--- a/test cases/common/60 install script/myinstall.py
+++ b/test cases/common/57 install script/myinstall.py
diff --git a/test cases/common/64 custom header generator/somefile.txt b/test cases/common/57 install script/no-installed-files
index e69de29..e69de29 100644
--- a/test cases/common/64 custom header generator/somefile.txt
+++ b/test cases/common/57 install script/no-installed-files
diff --git a/test cases/common/60 install script/prog.c b/test cases/common/57 install script/prog.c
index 06bc6b1..06bc6b1 100644
--- a/test cases/common/60 install script/prog.c
+++ b/test cases/common/57 install script/prog.c
diff --git a/test cases/common/60 install script/src/meson.build b/test cases/common/57 install script/src/meson.build
index b23574a..b23574a 100644
--- a/test cases/common/60 install script/src/meson.build
+++ b/test cases/common/57 install script/src/meson.build
diff --git a/test cases/common/60 install script/src/myinstall.py b/test cases/common/57 install script/src/myinstall.py
index 3b7ce37..3b7ce37 100644
--- a/test cases/common/60 install script/src/myinstall.py
+++ b/test cases/common/57 install script/src/myinstall.py
diff --git a/test cases/common/61 custom target source output/generator.py b/test cases/common/58 custom target source output/generator.py
index 3464b0a..3464b0a 100755
--- a/test cases/common/61 custom target source output/generator.py
+++ b/test cases/common/58 custom target source output/generator.py
diff --git a/test cases/common/61 custom target source output/main.c b/test cases/common/58 custom target source output/main.c
index 2813c39..2813c39 100644
--- a/test cases/common/61 custom target source output/main.c
+++ b/test cases/common/58 custom target source output/main.c
diff --git a/test cases/common/61 custom target source output/meson.build b/test cases/common/58 custom target source output/meson.build
index f9d039d..f9d039d 100644
--- a/test cases/common/61 custom target source output/meson.build
+++ b/test cases/common/58 custom target source output/meson.build
diff --git a/test cases/common/62 exe static shared/meson.build b/test cases/common/59 exe static shared/meson.build
index 2888882..2888882 100644
--- a/test cases/common/62 exe static shared/meson.build
+++ b/test cases/common/59 exe static shared/meson.build
diff --git a/test cases/common/62 exe static shared/prog.c b/test cases/common/59 exe static shared/prog.c
index 26603b6..26603b6 100644
--- a/test cases/common/62 exe static shared/prog.c
+++ b/test cases/common/59 exe static shared/prog.c
diff --git a/test cases/common/62 exe static shared/shlib2.c b/test cases/common/59 exe static shared/shlib2.c
index 12bc913..12bc913 100644
--- a/test cases/common/62 exe static shared/shlib2.c
+++ b/test cases/common/59 exe static shared/shlib2.c
diff --git a/test cases/common/62 exe static shared/stat.c b/test cases/common/59 exe static shared/stat.c
index 680ed92..680ed92 100644
--- a/test cases/common/62 exe static shared/stat.c
+++ b/test cases/common/59 exe static shared/stat.c
diff --git a/test cases/common/62 exe static shared/stat2.c b/test cases/common/59 exe static shared/stat2.c
index 4ae3775..4ae3775 100644
--- a/test cases/common/62 exe static shared/stat2.c
+++ b/test cases/common/59 exe static shared/stat2.c
diff --git a/test cases/common/62 exe static shared/subdir/exports.h b/test cases/common/59 exe static shared/subdir/exports.h
index c89ccb2..c89ccb2 100644
--- a/test cases/common/62 exe static shared/subdir/exports.h
+++ b/test cases/common/59 exe static shared/subdir/exports.h
diff --git a/test cases/common/62 exe static shared/subdir/meson.build b/test cases/common/59 exe static shared/subdir/meson.build
index 2b7393b..2b7393b 100644
--- a/test cases/common/62 exe static shared/subdir/meson.build
+++ b/test cases/common/59 exe static shared/subdir/meson.build
diff --git a/test cases/common/62 exe static shared/subdir/shlib.c b/test cases/common/59 exe static shared/subdir/shlib.c
index 002c83f..002c83f 100644
--- a/test cases/common/62 exe static shared/subdir/shlib.c
+++ b/test cases/common/59 exe static shared/subdir/shlib.c
diff --git a/test cases/common/63 array methods/meson.build b/test cases/common/60 array methods/meson.build
index cdda41d..cdda41d 100644
--- a/test cases/common/63 array methods/meson.build
+++ b/test cases/common/60 array methods/meson.build
diff --git a/test cases/common/64 custom header generator/input.def b/test cases/common/61 custom header generator/input.def
index 573541a..573541a 100644
--- a/test cases/common/64 custom header generator/input.def
+++ b/test cases/common/61 custom header generator/input.def
diff --git a/test cases/common/64 custom header generator/makeheader.py b/test cases/common/61 custom header generator/makeheader.py
index f156834..f156834 100644
--- a/test cases/common/64 custom header generator/makeheader.py
+++ b/test cases/common/61 custom header generator/makeheader.py
diff --git a/test cases/common/64 custom header generator/meson.build b/test cases/common/61 custom header generator/meson.build
index d43915a..d43915a 100644
--- a/test cases/common/64 custom header generator/meson.build
+++ b/test cases/common/61 custom header generator/meson.build
diff --git a/test cases/common/64 custom header generator/prog.c b/test cases/common/61 custom header generator/prog.c
index 184973a..184973a 100644
--- a/test cases/common/64 custom header generator/prog.c
+++ b/test cases/common/61 custom header generator/prog.c
diff --git a/test cases/common/66 install subdir/sub2/dircheck/excluded-three.dat b/test cases/common/61 custom header generator/somefile.txt
index e69de29..e69de29 100644
--- a/test cases/common/66 install subdir/sub2/dircheck/excluded-three.dat
+++ b/test cases/common/61 custom header generator/somefile.txt
diff --git a/test cases/common/65 multiple generators/data2.dat b/test cases/common/62 multiple generators/data2.dat
index 0cfbf08..0cfbf08 100644
--- a/test cases/common/65 multiple generators/data2.dat
+++ b/test cases/common/62 multiple generators/data2.dat
diff --git a/test cases/common/65 multiple generators/main.cpp b/test cases/common/62 multiple generators/main.cpp
index 5277063..5277063 100644
--- a/test cases/common/65 multiple generators/main.cpp
+++ b/test cases/common/62 multiple generators/main.cpp
diff --git a/test cases/common/65 multiple generators/meson.build b/test cases/common/62 multiple generators/meson.build
index 66f7fa9..66f7fa9 100644
--- a/test cases/common/65 multiple generators/meson.build
+++ b/test cases/common/62 multiple generators/meson.build
diff --git a/test cases/common/65 multiple generators/mygen.py b/test cases/common/62 multiple generators/mygen.py
index 99dc331..99dc331 100755
--- a/test cases/common/65 multiple generators/mygen.py
+++ b/test cases/common/62 multiple generators/mygen.py
diff --git a/test cases/common/65 multiple generators/subdir/data.dat b/test cases/common/62 multiple generators/subdir/data.dat
index d00491f..d00491f 100644
--- a/test cases/common/65 multiple generators/subdir/data.dat
+++ b/test cases/common/62 multiple generators/subdir/data.dat
diff --git a/test cases/common/65 multiple generators/subdir/meson.build b/test cases/common/62 multiple generators/subdir/meson.build
index 2456ecb..2456ecb 100644
--- a/test cases/common/65 multiple generators/subdir/meson.build
+++ b/test cases/common/62 multiple generators/subdir/meson.build
diff --git a/test cases/common/66 install subdir/installed_files.txt b/test cases/common/63 install subdir/installed_files.txt
index 3f561d5..3f561d5 100644
--- a/test cases/common/66 install subdir/installed_files.txt
+++ b/test cases/common/63 install subdir/installed_files.txt
diff --git a/test cases/common/66 install subdir/meson.build b/test cases/common/63 install subdir/meson.build
index 6f92efd..6f92efd 100644
--- a/test cases/common/66 install subdir/meson.build
+++ b/test cases/common/63 install subdir/meson.build
diff --git a/test cases/common/66 install subdir/nested_elided/sub/dircheck/nineth.dat b/test cases/common/63 install subdir/nested_elided/sub/dircheck/nineth.dat
index c4eaca7..c4eaca7 100644
--- a/test cases/common/66 install subdir/nested_elided/sub/dircheck/nineth.dat
+++ b/test cases/common/63 install subdir/nested_elided/sub/dircheck/nineth.dat
diff --git a/test cases/common/66 install subdir/nested_elided/sub/eighth.dat b/test cases/common/63 install subdir/nested_elided/sub/eighth.dat
index fa9b7b7..fa9b7b7 100644
--- a/test cases/common/66 install subdir/nested_elided/sub/eighth.dat
+++ b/test cases/common/63 install subdir/nested_elided/sub/eighth.dat
diff --git a/test cases/common/66 install subdir/sub/sub1/third.dat b/test cases/common/63 install subdir/sub/sub1/third.dat
index 5ccbc43..5ccbc43 100644
--- a/test cases/common/66 install subdir/sub/sub1/third.dat
+++ b/test cases/common/63 install subdir/sub/sub1/third.dat
diff --git a/test cases/common/66 install subdir/sub1/second.dat b/test cases/common/63 install subdir/sub1/second.dat
index 48857a8..48857a8 100644
--- a/test cases/common/66 install subdir/sub1/second.dat
+++ b/test cases/common/63 install subdir/sub1/second.dat
diff --git a/test cases/common/66 install subdir/sub2/excluded-three.dat b/test cases/common/63 install subdir/sub2/dircheck/excluded-three.dat
index e69de29..e69de29 100644
--- a/test cases/common/66 install subdir/sub2/excluded-three.dat
+++ b/test cases/common/63 install subdir/sub2/dircheck/excluded-three.dat
diff --git a/test cases/common/66 install subdir/sub2/excluded/two.dat b/test cases/common/63 install subdir/sub2/excluded-three.dat
index e69de29..e69de29 100644
--- a/test cases/common/66 install subdir/sub2/excluded/two.dat
+++ b/test cases/common/63 install subdir/sub2/excluded-three.dat
diff --git a/test cases/common/66 install subdir/sub2/one.dat b/test cases/common/63 install subdir/sub2/excluded/two.dat
index e69de29..e69de29 100644
--- a/test cases/common/66 install subdir/sub2/one.dat
+++ b/test cases/common/63 install subdir/sub2/excluded/two.dat
diff --git a/test cases/common/93 private include/stlib/foo1.def b/test cases/common/63 install subdir/sub2/one.dat
index e69de29..e69de29 100644
--- a/test cases/common/93 private include/stlib/foo1.def
+++ b/test cases/common/63 install subdir/sub2/one.dat
diff --git a/test cases/common/66 install subdir/sub_elided/dircheck/fifth.dat b/test cases/common/63 install subdir/sub_elided/dircheck/fifth.dat
index b6ca009..b6ca009 100644
--- a/test cases/common/66 install subdir/sub_elided/dircheck/fifth.dat
+++ b/test cases/common/63 install subdir/sub_elided/dircheck/fifth.dat
diff --git a/test cases/common/66 install subdir/sub_elided/fourth.dat b/test cases/common/63 install subdir/sub_elided/fourth.dat
index ca5f26a..ca5f26a 100644
--- a/test cases/common/66 install subdir/sub_elided/fourth.dat
+++ b/test cases/common/63 install subdir/sub_elided/fourth.dat
diff --git a/test cases/common/66 install subdir/subdir/meson.build b/test cases/common/63 install subdir/subdir/meson.build
index 0f81cdb..0f81cdb 100644
--- a/test cases/common/66 install subdir/subdir/meson.build
+++ b/test cases/common/63 install subdir/subdir/meson.build
diff --git a/test cases/common/66 install subdir/subdir/sub1/data1.dat b/test cases/common/63 install subdir/subdir/sub1/data1.dat
index d83c370..d83c370 100644
--- a/test cases/common/66 install subdir/subdir/sub1/data1.dat
+++ b/test cases/common/63 install subdir/subdir/sub1/data1.dat
diff --git a/test cases/common/66 install subdir/subdir/sub1/sub2/data2.dat b/test cases/common/63 install subdir/subdir/sub1/sub2/data2.dat
index 8ce1392..8ce1392 100644
--- a/test cases/common/66 install subdir/subdir/sub1/sub2/data2.dat
+++ b/test cases/common/63 install subdir/subdir/sub1/sub2/data2.dat
diff --git a/test cases/common/66 install subdir/subdir/sub_elided/dircheck/seventh.dat b/test cases/common/63 install subdir/subdir/sub_elided/dircheck/seventh.dat
index ea0b8dc..ea0b8dc 100644
--- a/test cases/common/66 install subdir/subdir/sub_elided/dircheck/seventh.dat
+++ b/test cases/common/63 install subdir/subdir/sub_elided/dircheck/seventh.dat
diff --git a/test cases/common/66 install subdir/subdir/sub_elided/sixth.dat b/test cases/common/63 install subdir/subdir/sub_elided/sixth.dat
index 140f075..140f075 100644
--- a/test cases/common/66 install subdir/subdir/sub_elided/sixth.dat
+++ b/test cases/common/63 install subdir/subdir/sub_elided/sixth.dat
diff --git a/test cases/common/67 foreach/installed_files.txt b/test cases/common/64 foreach/installed_files.txt
index 2930ff0..2930ff0 100644
--- a/test cases/common/67 foreach/installed_files.txt
+++ b/test cases/common/64 foreach/installed_files.txt
diff --git a/test cases/common/67 foreach/meson.build b/test cases/common/64 foreach/meson.build
index e633de8..e633de8 100644
--- a/test cases/common/67 foreach/meson.build
+++ b/test cases/common/64 foreach/meson.build
diff --git a/test cases/common/67 foreach/prog1.c b/test cases/common/64 foreach/prog1.c
index a5ef0f1..a5ef0f1 100644
--- a/test cases/common/67 foreach/prog1.c
+++ b/test cases/common/64 foreach/prog1.c
diff --git a/test cases/common/67 foreach/prog2.c b/test cases/common/64 foreach/prog2.c
index b9fddbe..b9fddbe 100644
--- a/test cases/common/67 foreach/prog2.c
+++ b/test cases/common/64 foreach/prog2.c
diff --git a/test cases/common/67 foreach/prog3.c b/test cases/common/64 foreach/prog3.c
index 5657396..5657396 100644
--- a/test cases/common/67 foreach/prog3.c
+++ b/test cases/common/64 foreach/prog3.c
diff --git a/test cases/common/68 number arithmetic/meson.build b/test cases/common/65 number arithmetic/meson.build
index e31d7e4..e31d7e4 100644
--- a/test cases/common/68 number arithmetic/meson.build
+++ b/test cases/common/65 number arithmetic/meson.build
diff --git a/test cases/common/69 string arithmetic/meson.build b/test cases/common/66 string arithmetic/meson.build
index 59567de..59567de 100644
--- a/test cases/common/69 string arithmetic/meson.build
+++ b/test cases/common/66 string arithmetic/meson.build
diff --git a/test cases/common/70 array arithmetic/meson.build b/test cases/common/67 array arithmetic/meson.build
index 8b8785a..8b8785a 100644
--- a/test cases/common/70 array arithmetic/meson.build
+++ b/test cases/common/67 array arithmetic/meson.build
diff --git a/test cases/common/71 arithmetic bidmas/meson.build b/test cases/common/68 arithmetic bidmas/meson.build
index c7334b4..c7334b4 100644
--- a/test cases/common/71 arithmetic bidmas/meson.build
+++ b/test cases/common/68 arithmetic bidmas/meson.build
diff --git a/test cases/common/72 build always/main.c b/test cases/common/69 build always/main.c
index f8d9ac9..f8d9ac9 100644
--- a/test cases/common/72 build always/main.c
+++ b/test cases/common/69 build always/main.c
diff --git a/test cases/common/72 build always/meson.build b/test cases/common/69 build always/meson.build
index f720c89..f720c89 100644
--- a/test cases/common/72 build always/meson.build
+++ b/test cases/common/69 build always/meson.build
diff --git a/test cases/common/72 build always/version.c.in b/test cases/common/69 build always/version.c.in
index 619e517..619e517 100644
--- a/test cases/common/72 build always/version.c.in
+++ b/test cases/common/69 build always/version.c.in
diff --git a/test cases/common/72 build always/version.h b/test cases/common/69 build always/version.h
index d3fe5c6..d3fe5c6 100644
--- a/test cases/common/72 build always/version.h
+++ b/test cases/common/69 build always/version.h
diff --git a/test cases/common/72 build always/version_gen.py b/test cases/common/69 build always/version_gen.py
index fbe2df9..fbe2df9 100755
--- a/test cases/common/72 build always/version_gen.py
+++ b/test cases/common/69 build always/version_gen.py
diff --git a/test cases/common/73 vcstag/meson.build b/test cases/common/70 vcstag/meson.build
index 7e5983a..7e5983a 100644
--- a/test cases/common/73 vcstag/meson.build
+++ b/test cases/common/70 vcstag/meson.build
diff --git a/test cases/common/73 vcstag/tagprog.c b/test cases/common/70 vcstag/tagprog.c
index 34146b4..34146b4 100644
--- a/test cases/common/73 vcstag/tagprog.c
+++ b/test cases/common/70 vcstag/tagprog.c
diff --git a/test cases/common/73 vcstag/vcstag.c.in b/test cases/common/70 vcstag/vcstag.c.in
index 09192d9..09192d9 100644
--- a/test cases/common/73 vcstag/vcstag.c.in
+++ b/test cases/common/70 vcstag/vcstag.c.in
diff --git a/test cases/common/74 modules/meson.build b/test cases/common/71 modules/meson.build
index e9750cd..e9750cd 100644
--- a/test cases/common/74 modules/meson.build
+++ b/test cases/common/71 modules/meson.build
diff --git a/test cases/common/75 should fail/failing.c b/test cases/common/72 should fail/failing.c
index adada8d..adada8d 100644
--- a/test cases/common/75 should fail/failing.c
+++ b/test cases/common/72 should fail/failing.c
diff --git a/test cases/common/75 should fail/meson.build b/test cases/common/72 should fail/meson.build
index dffbbb3..dffbbb3 100644
--- a/test cases/common/75 should fail/meson.build
+++ b/test cases/common/72 should fail/meson.build
diff --git a/test cases/common/76 configure file in custom target/inc/confdata.in b/test cases/common/73 configure file in custom target/inc/confdata.in
index e44cdea..e44cdea 100644
--- a/test cases/common/76 configure file in custom target/inc/confdata.in
+++ b/test cases/common/73 configure file in custom target/inc/confdata.in
diff --git a/test cases/common/76 configure file in custom target/inc/meson.build b/test cases/common/73 configure file in custom target/inc/meson.build
index 05d2dcb..05d2dcb 100644
--- a/test cases/common/76 configure file in custom target/inc/meson.build
+++ b/test cases/common/73 configure file in custom target/inc/meson.build
diff --git a/test cases/common/76 configure file in custom target/meson.build b/test cases/common/73 configure file in custom target/meson.build
index 0a850a1..0a850a1 100644
--- a/test cases/common/76 configure file in custom target/meson.build
+++ b/test cases/common/73 configure file in custom target/meson.build
diff --git a/test cases/common/76 configure file in custom target/src/meson.build b/test cases/common/73 configure file in custom target/src/meson.build
index e0ab9eb..e0ab9eb 100644
--- a/test cases/common/76 configure file in custom target/src/meson.build
+++ b/test cases/common/73 configure file in custom target/src/meson.build
diff --git a/test cases/common/76 configure file in custom target/src/mycompiler.py b/test cases/common/73 configure file in custom target/src/mycompiler.py
index b00c862..b00c862 100644
--- a/test cases/common/76 configure file in custom target/src/mycompiler.py
+++ b/test cases/common/73 configure file in custom target/src/mycompiler.py
diff --git a/test cases/common/77 external test program/meson.build b/test cases/common/74 external test program/meson.build
index d18ddcd..d18ddcd 100644
--- a/test cases/common/77 external test program/meson.build
+++ b/test cases/common/74 external test program/meson.build
diff --git a/test cases/common/77 external test program/mytest.py b/test cases/common/74 external test program/mytest.py
index 9947773..9947773 100755
--- a/test cases/common/77 external test program/mytest.py
+++ b/test cases/common/74 external test program/mytest.py
diff --git a/test cases/common/78 ctarget dependency/gen1.py b/test cases/common/75 ctarget dependency/gen1.py
index 0fa6ea1..0fa6ea1 100755
--- a/test cases/common/78 ctarget dependency/gen1.py
+++ b/test cases/common/75 ctarget dependency/gen1.py
diff --git a/test cases/common/78 ctarget dependency/gen2.py b/test cases/common/75 ctarget dependency/gen2.py
index b087b02..b087b02 100755
--- a/test cases/common/78 ctarget dependency/gen2.py
+++ b/test cases/common/75 ctarget dependency/gen2.py
diff --git a/test cases/common/78 ctarget dependency/input.dat b/test cases/common/75 ctarget dependency/input.dat
index 7af91e2..7af91e2 100644
--- a/test cases/common/78 ctarget dependency/input.dat
+++ b/test cases/common/75 ctarget dependency/input.dat
diff --git a/test cases/common/78 ctarget dependency/meson.build b/test cases/common/75 ctarget dependency/meson.build
index cd11951..cd11951 100644
--- a/test cases/common/78 ctarget dependency/meson.build
+++ b/test cases/common/75 ctarget dependency/meson.build
diff --git a/test cases/common/79 shared subproject/a.c b/test cases/common/76 shared subproject/a.c
index 6ed96fa..6ed96fa 100644
--- a/test cases/common/79 shared subproject/a.c
+++ b/test cases/common/76 shared subproject/a.c
diff --git a/test cases/common/79 shared subproject/meson.build b/test cases/common/76 shared subproject/meson.build
index 6803d51..6803d51 100644
--- a/test cases/common/79 shared subproject/meson.build
+++ b/test cases/common/76 shared subproject/meson.build
diff --git a/test cases/common/79 shared subproject/subprojects/B/b.c b/test cases/common/76 shared subproject/subprojects/B/b.c
index a1f3a51..a1f3a51 100644
--- a/test cases/common/79 shared subproject/subprojects/B/b.c
+++ b/test cases/common/76 shared subproject/subprojects/B/b.c
diff --git a/test cases/common/79 shared subproject/subprojects/B/meson.build b/test cases/common/76 shared subproject/subprojects/B/meson.build
index 280c60c..280c60c 100644
--- a/test cases/common/79 shared subproject/subprojects/B/meson.build
+++ b/test cases/common/76 shared subproject/subprojects/B/meson.build
diff --git a/test cases/common/79 shared subproject/subprojects/C/c.c b/test cases/common/76 shared subproject/subprojects/C/c.c
index eebfb9f..eebfb9f 100644
--- a/test cases/common/79 shared subproject/subprojects/C/c.c
+++ b/test cases/common/76 shared subproject/subprojects/C/c.c
diff --git a/test cases/common/79 shared subproject/subprojects/C/meson.build b/test cases/common/76 shared subproject/subprojects/C/meson.build
index abf0b1e..abf0b1e 100644
--- a/test cases/common/79 shared subproject/subprojects/C/meson.build
+++ b/test cases/common/76 shared subproject/subprojects/C/meson.build
diff --git a/test cases/common/80 shared subproject 2/a.c b/test cases/common/77 shared subproject 2/a.c
index 6ed96fa..6ed96fa 100644
--- a/test cases/common/80 shared subproject 2/a.c
+++ b/test cases/common/77 shared subproject 2/a.c
diff --git a/test cases/common/80 shared subproject 2/meson.build b/test cases/common/77 shared subproject 2/meson.build
index 0647325..0647325 100644
--- a/test cases/common/80 shared subproject 2/meson.build
+++ b/test cases/common/77 shared subproject 2/meson.build
diff --git a/test cases/common/80 shared subproject 2/subprojects/B/b.c b/test cases/common/77 shared subproject 2/subprojects/B/b.c
index 4c94ee9..4c94ee9 100644
--- a/test cases/common/80 shared subproject 2/subprojects/B/b.c
+++ b/test cases/common/77 shared subproject 2/subprojects/B/b.c
diff --git a/test cases/common/80 shared subproject 2/subprojects/B/meson.build b/test cases/common/77 shared subproject 2/subprojects/B/meson.build
index 280c60c..280c60c 100644
--- a/test cases/common/80 shared subproject 2/subprojects/B/meson.build
+++ b/test cases/common/77 shared subproject 2/subprojects/B/meson.build
diff --git a/test cases/common/80 shared subproject 2/subprojects/C/c.c b/test cases/common/77 shared subproject 2/subprojects/C/c.c
index eebfb9f..eebfb9f 100644
--- a/test cases/common/80 shared subproject 2/subprojects/C/c.c
+++ b/test cases/common/77 shared subproject 2/subprojects/C/c.c
diff --git a/test cases/common/80 shared subproject 2/subprojects/C/meson.build b/test cases/common/77 shared subproject 2/subprojects/C/meson.build
index abf0b1e..abf0b1e 100644
--- a/test cases/common/80 shared subproject 2/subprojects/C/meson.build
+++ b/test cases/common/77 shared subproject 2/subprojects/C/meson.build
diff --git a/test cases/common/81 file object/lib.c b/test cases/common/78 file object/lib.c
index 6f1c172..6f1c172 100644
--- a/test cases/common/81 file object/lib.c
+++ b/test cases/common/78 file object/lib.c
diff --git a/test cases/common/81 file object/meson.build b/test cases/common/78 file object/meson.build
index c3ecb7b..c3ecb7b 100644
--- a/test cases/common/81 file object/meson.build
+++ b/test cases/common/78 file object/meson.build
diff --git a/test cases/common/81 file object/prog.c b/test cases/common/78 file object/prog.c
index 884d678..884d678 100644
--- a/test cases/common/81 file object/prog.c
+++ b/test cases/common/78 file object/prog.c
diff --git a/test cases/common/81 file object/subdir1/lib.c b/test cases/common/78 file object/subdir1/lib.c
index bc1e7b0..bc1e7b0 100644
--- a/test cases/common/81 file object/subdir1/lib.c
+++ b/test cases/common/78 file object/subdir1/lib.c
diff --git a/test cases/common/81 file object/subdir1/meson.build b/test cases/common/78 file object/subdir1/meson.build
index f5066f0..f5066f0 100644
--- a/test cases/common/81 file object/subdir1/meson.build
+++ b/test cases/common/78 file object/subdir1/meson.build
diff --git a/test cases/common/81 file object/subdir1/prog.c b/test cases/common/78 file object/subdir1/prog.c
index 37ccf72..37ccf72 100644
--- a/test cases/common/81 file object/subdir1/prog.c
+++ b/test cases/common/78 file object/subdir1/prog.c
diff --git a/test cases/common/81 file object/subdir2/lib.c b/test cases/common/78 file object/subdir2/lib.c
index cfef4d0..cfef4d0 100644
--- a/test cases/common/81 file object/subdir2/lib.c
+++ b/test cases/common/78 file object/subdir2/lib.c
diff --git a/test cases/common/81 file object/subdir2/meson.build b/test cases/common/78 file object/subdir2/meson.build
index 5886510..5886510 100644
--- a/test cases/common/81 file object/subdir2/meson.build
+++ b/test cases/common/78 file object/subdir2/meson.build
diff --git a/test cases/common/81 file object/subdir2/prog.c b/test cases/common/78 file object/subdir2/prog.c
index 3a90b0a..3a90b0a 100644
--- a/test cases/common/81 file object/subdir2/prog.c
+++ b/test cases/common/78 file object/subdir2/prog.c
diff --git a/test cases/common/82 custom subproject dir/a.c b/test cases/common/79 custom subproject dir/a.c
index 6ed96fa..6ed96fa 100644
--- a/test cases/common/82 custom subproject dir/a.c
+++ b/test cases/common/79 custom subproject dir/a.c
diff --git a/test cases/common/82 custom subproject dir/custom_subproject_dir/B/b.c b/test cases/common/79 custom subproject dir/custom_subproject_dir/B/b.c
index 4c94ee9..4c94ee9 100644
--- a/test cases/common/82 custom subproject dir/custom_subproject_dir/B/b.c
+++ b/test cases/common/79 custom subproject dir/custom_subproject_dir/B/b.c
diff --git a/test cases/common/82 custom subproject dir/custom_subproject_dir/B/meson.build b/test cases/common/79 custom subproject dir/custom_subproject_dir/B/meson.build
index 280c60c..280c60c 100644
--- a/test cases/common/82 custom subproject dir/custom_subproject_dir/B/meson.build
+++ b/test cases/common/79 custom subproject dir/custom_subproject_dir/B/meson.build
diff --git a/test cases/common/82 custom subproject dir/custom_subproject_dir/C/c.c b/test cases/common/79 custom subproject dir/custom_subproject_dir/C/c.c
index eebfb9f..eebfb9f 100644
--- a/test cases/common/82 custom subproject dir/custom_subproject_dir/C/c.c
+++ b/test cases/common/79 custom subproject dir/custom_subproject_dir/C/c.c
diff --git a/test cases/common/82 custom subproject dir/custom_subproject_dir/C/meson.build b/test cases/common/79 custom subproject dir/custom_subproject_dir/C/meson.build
index abf0b1e..abf0b1e 100644
--- a/test cases/common/82 custom subproject dir/custom_subproject_dir/C/meson.build
+++ b/test cases/common/79 custom subproject dir/custom_subproject_dir/C/meson.build
diff --git a/test cases/common/82 custom subproject dir/meson.build b/test cases/common/79 custom subproject dir/meson.build
index d9ba649..d9ba649 100644
--- a/test cases/common/82 custom subproject dir/meson.build
+++ b/test cases/common/79 custom subproject dir/meson.build
diff --git a/test cases/common/83 has type/meson.build b/test cases/common/80 has type/meson.build
index de8dbc8..de8dbc8 100644
--- a/test cases/common/83 has type/meson.build
+++ b/test cases/common/80 has type/meson.build
diff --git a/test cases/common/84 extract from nested subdir/meson.build b/test cases/common/81 extract from nested subdir/meson.build
index 3a42806..3a42806 100644
--- a/test cases/common/84 extract from nested subdir/meson.build
+++ b/test cases/common/81 extract from nested subdir/meson.build
diff --git a/test cases/common/84 extract from nested subdir/src/first/lib_first.c b/test cases/common/81 extract from nested subdir/src/first/lib_first.c
index 3004906..3004906 100644
--- a/test cases/common/84 extract from nested subdir/src/first/lib_first.c
+++ b/test cases/common/81 extract from nested subdir/src/first/lib_first.c
diff --git a/test cases/common/84 extract from nested subdir/src/first/meson.build b/test cases/common/81 extract from nested subdir/src/first/meson.build
index b97aef4..b97aef4 100644
--- a/test cases/common/84 extract from nested subdir/src/first/meson.build
+++ b/test cases/common/81 extract from nested subdir/src/first/meson.build
diff --git a/test cases/common/84 extract from nested subdir/src/meson.build b/test cases/common/81 extract from nested subdir/src/meson.build
index 3f5ec32..3f5ec32 100644
--- a/test cases/common/84 extract from nested subdir/src/meson.build
+++ b/test cases/common/81 extract from nested subdir/src/meson.build
diff --git a/test cases/common/84 extract from nested subdir/tst/first/exe_first.c b/test cases/common/81 extract from nested subdir/tst/first/exe_first.c
index f6c1f74..f6c1f74 100644
--- a/test cases/common/84 extract from nested subdir/tst/first/exe_first.c
+++ b/test cases/common/81 extract from nested subdir/tst/first/exe_first.c
diff --git a/test cases/common/84 extract from nested subdir/tst/first/meson.build b/test cases/common/81 extract from nested subdir/tst/first/meson.build
index a6fa7da..a6fa7da 100644
--- a/test cases/common/84 extract from nested subdir/tst/first/meson.build
+++ b/test cases/common/81 extract from nested subdir/tst/first/meson.build
diff --git a/test cases/common/84 extract from nested subdir/tst/meson.build b/test cases/common/81 extract from nested subdir/tst/meson.build
index 3f5ec32..3f5ec32 100644
--- a/test cases/common/84 extract from nested subdir/tst/meson.build
+++ b/test cases/common/81 extract from nested subdir/tst/meson.build
diff --git a/test cases/common/85 internal dependency/meson.build b/test cases/common/82 internal dependency/meson.build
index 6faedb0..6faedb0 100644
--- a/test cases/common/85 internal dependency/meson.build
+++ b/test cases/common/82 internal dependency/meson.build
diff --git a/test cases/common/85 internal dependency/proj1/include/proj1.h b/test cases/common/82 internal dependency/proj1/include/proj1.h
index ded6f75..ded6f75 100644
--- a/test cases/common/85 internal dependency/proj1/include/proj1.h
+++ b/test cases/common/82 internal dependency/proj1/include/proj1.h
diff --git a/test cases/common/85 internal dependency/proj1/meson.build b/test cases/common/82 internal dependency/proj1/meson.build
index 422021e..422021e 100644
--- a/test cases/common/85 internal dependency/proj1/meson.build
+++ b/test cases/common/82 internal dependency/proj1/meson.build
diff --git a/test cases/common/85 internal dependency/proj1/proj1f1.c b/test cases/common/82 internal dependency/proj1/proj1f1.c
index 9077f4f..9077f4f 100644
--- a/test cases/common/85 internal dependency/proj1/proj1f1.c
+++ b/test cases/common/82 internal dependency/proj1/proj1f1.c
diff --git a/test cases/common/85 internal dependency/proj1/proj1f2.c b/test cases/common/82 internal dependency/proj1/proj1f2.c
index 374ee4e..374ee4e 100644
--- a/test cases/common/85 internal dependency/proj1/proj1f2.c
+++ b/test cases/common/82 internal dependency/proj1/proj1f2.c
diff --git a/test cases/common/85 internal dependency/proj1/proj1f3.c b/test cases/common/82 internal dependency/proj1/proj1f3.c
index 8c8fca4..8c8fca4 100644
--- a/test cases/common/85 internal dependency/proj1/proj1f3.c
+++ b/test cases/common/82 internal dependency/proj1/proj1f3.c
diff --git a/test cases/common/85 internal dependency/src/main.c b/test cases/common/82 internal dependency/src/main.c
index 7d50b05..7d50b05 100644
--- a/test cases/common/85 internal dependency/src/main.c
+++ b/test cases/common/82 internal dependency/src/main.c
diff --git a/test cases/common/85 internal dependency/src/meson.build b/test cases/common/82 internal dependency/src/meson.build
index 89f99ab..89f99ab 100644
--- a/test cases/common/85 internal dependency/src/meson.build
+++ b/test cases/common/82 internal dependency/src/meson.build
diff --git a/test cases/common/86 same basename/exe1.c b/test cases/common/83 same basename/exe1.c
index 175a90d..175a90d 100644
--- a/test cases/common/86 same basename/exe1.c
+++ b/test cases/common/83 same basename/exe1.c
diff --git a/test cases/common/86 same basename/exe2.c b/test cases/common/83 same basename/exe2.c
index 56b04cc..56b04cc 100644
--- a/test cases/common/86 same basename/exe2.c
+++ b/test cases/common/83 same basename/exe2.c
diff --git a/test cases/common/86 same basename/lib.c b/test cases/common/83 same basename/lib.c
index 6fd432e..6fd432e 100644
--- a/test cases/common/86 same basename/lib.c
+++ b/test cases/common/83 same basename/lib.c
diff --git a/test cases/common/86 same basename/meson.build b/test cases/common/83 same basename/meson.build
index 856c536..856c536 100644
--- a/test cases/common/86 same basename/meson.build
+++ b/test cases/common/83 same basename/meson.build
diff --git a/test cases/common/86 same basename/sharedsub/meson.build b/test cases/common/83 same basename/sharedsub/meson.build
index 29654a9..29654a9 100644
--- a/test cases/common/86 same basename/sharedsub/meson.build
+++ b/test cases/common/83 same basename/sharedsub/meson.build
diff --git a/test cases/common/86 same basename/staticsub/meson.build b/test cases/common/83 same basename/staticsub/meson.build
index 5e5242e..5e5242e 100644
--- a/test cases/common/86 same basename/staticsub/meson.build
+++ b/test cases/common/83 same basename/staticsub/meson.build
diff --git a/test cases/common/87 declare dep/entity/entity.h b/test cases/common/84 declare dep/entity/entity.h
index c695b14..c695b14 100644
--- a/test cases/common/87 declare dep/entity/entity.h
+++ b/test cases/common/84 declare dep/entity/entity.h
diff --git a/test cases/common/87 declare dep/entity/entity1.c b/test cases/common/84 declare dep/entity/entity1.c
index 204eb8b..204eb8b 100644
--- a/test cases/common/87 declare dep/entity/entity1.c
+++ b/test cases/common/84 declare dep/entity/entity1.c
diff --git a/test cases/common/87 declare dep/entity/entity2.c b/test cases/common/84 declare dep/entity/entity2.c
index f34f546..f34f546 100644
--- a/test cases/common/87 declare dep/entity/entity2.c
+++ b/test cases/common/84 declare dep/entity/entity2.c
diff --git a/test cases/common/87 declare dep/entity/meson.build b/test cases/common/84 declare dep/entity/meson.build
index 3bfe13c..3bfe13c 100644
--- a/test cases/common/87 declare dep/entity/meson.build
+++ b/test cases/common/84 declare dep/entity/meson.build
diff --git a/test cases/common/87 declare dep/main.c b/test cases/common/84 declare dep/main.c
index 4ad9d2a..4ad9d2a 100644
--- a/test cases/common/87 declare dep/main.c
+++ b/test cases/common/84 declare dep/main.c
diff --git a/test cases/common/87 declare dep/meson.build b/test cases/common/84 declare dep/meson.build
index e427def..e427def 100644
--- a/test cases/common/87 declare dep/meson.build
+++ b/test cases/common/84 declare dep/meson.build
diff --git a/test cases/common/88 extract all/extractor.h b/test cases/common/85 extract all/extractor.h
index d0917a1..d0917a1 100644
--- a/test cases/common/88 extract all/extractor.h
+++ b/test cases/common/85 extract all/extractor.h
diff --git a/test cases/common/88 extract all/four.c b/test cases/common/85 extract all/four.c
index 5ca6696..5ca6696 100644
--- a/test cases/common/88 extract all/four.c
+++ b/test cases/common/85 extract all/four.c
diff --git a/test cases/common/88 extract all/meson.build b/test cases/common/85 extract all/meson.build
index 4f08a4f..4f08a4f 100644
--- a/test cases/common/88 extract all/meson.build
+++ b/test cases/common/85 extract all/meson.build
diff --git a/test cases/common/88 extract all/one.c b/test cases/common/85 extract all/one.c
index cfb0157..cfb0157 100644
--- a/test cases/common/88 extract all/one.c
+++ b/test cases/common/85 extract all/one.c
diff --git a/test cases/common/88 extract all/prog.c b/test cases/common/85 extract all/prog.c
index 57a4c64..57a4c64 100644
--- a/test cases/common/88 extract all/prog.c
+++ b/test cases/common/85 extract all/prog.c
diff --git a/test cases/common/88 extract all/three.c b/test cases/common/85 extract all/three.c
index c410046..c410046 100644
--- a/test cases/common/88 extract all/three.c
+++ b/test cases/common/85 extract all/three.c
diff --git a/test cases/common/88 extract all/two.c b/test cases/common/85 extract all/two.c
index 3ece512..3ece512 100644
--- a/test cases/common/88 extract all/two.c
+++ b/test cases/common/85 extract all/two.c
diff --git a/test cases/common/89 add language/meson.build b/test cases/common/86 add language/meson.build
index d9bc0fa..d9bc0fa 100644
--- a/test cases/common/89 add language/meson.build
+++ b/test cases/common/86 add language/meson.build
diff --git a/test cases/common/89 add language/prog.c b/test cases/common/86 add language/prog.c
index 9b5685f..9b5685f 100644
--- a/test cases/common/89 add language/prog.c
+++ b/test cases/common/86 add language/prog.c
diff --git a/test cases/common/89 add language/prog.cc b/test cases/common/86 add language/prog.cc
index 03647dd..03647dd 100644
--- a/test cases/common/89 add language/prog.cc
+++ b/test cases/common/86 add language/prog.cc
diff --git a/test cases/common/90 identical target name in subproject/bar.c b/test cases/common/87 identical target name in subproject/bar.c
index 864869b..864869b 100644
--- a/test cases/common/90 identical target name in subproject/bar.c
+++ b/test cases/common/87 identical target name in subproject/bar.c
diff --git a/test cases/common/90 identical target name in subproject/meson.build b/test cases/common/87 identical target name in subproject/meson.build
index e804d3c..e804d3c 100644
--- a/test cases/common/90 identical target name in subproject/meson.build
+++ b/test cases/common/87 identical target name in subproject/meson.build
diff --git a/test cases/common/90 identical target name in subproject/subprojects/foo/bar.c b/test cases/common/87 identical target name in subproject/subprojects/foo/bar.c
index 106005e..106005e 100644
--- a/test cases/common/90 identical target name in subproject/subprojects/foo/bar.c
+++ b/test cases/common/87 identical target name in subproject/subprojects/foo/bar.c
diff --git a/test cases/common/90 identical target name in subproject/subprojects/foo/meson.build b/test cases/common/87 identical target name in subproject/subprojects/foo/meson.build
index 3f22337..3f22337 100644
--- a/test cases/common/90 identical target name in subproject/subprojects/foo/meson.build
+++ b/test cases/common/87 identical target name in subproject/subprojects/foo/meson.build
diff --git a/test cases/common/91 plusassign/meson.build b/test cases/common/88 plusassign/meson.build
index ac477e7..ac477e7 100644
--- a/test cases/common/91 plusassign/meson.build
+++ b/test cases/common/88 plusassign/meson.build
diff --git a/test cases/common/92 skip subdir/meson.build b/test cases/common/89 skip subdir/meson.build
index 30ede0e..30ede0e 100644
--- a/test cases/common/92 skip subdir/meson.build
+++ b/test cases/common/89 skip subdir/meson.build
diff --git a/test cases/common/92 skip subdir/subdir1/meson.build b/test cases/common/89 skip subdir/subdir1/meson.build
index 51cb003..51cb003 100644
--- a/test cases/common/92 skip subdir/subdir1/meson.build
+++ b/test cases/common/89 skip subdir/subdir1/meson.build
diff --git a/test cases/common/92 skip subdir/subdir1/subdir2/meson.build b/test cases/common/89 skip subdir/subdir1/subdir2/meson.build
index e37cad6..e37cad6 100644
--- a/test cases/common/92 skip subdir/subdir1/subdir2/meson.build
+++ b/test cases/common/89 skip subdir/subdir1/subdir2/meson.build
diff --git a/test cases/common/93 private include/meson.build b/test cases/common/90 private include/meson.build
index 2485fbf..2485fbf 100644
--- a/test cases/common/93 private include/meson.build
+++ b/test cases/common/90 private include/meson.build
diff --git a/test cases/common/93 private include/stlib/compiler.py b/test cases/common/90 private include/stlib/compiler.py
index 98dbe46..98dbe46 100755
--- a/test cases/common/93 private include/stlib/compiler.py
+++ b/test cases/common/90 private include/stlib/compiler.py
diff --git a/test cases/common/93 private include/stlib/foo2.def b/test cases/common/90 private include/stlib/foo1.def
index e69de29..e69de29 100644
--- a/test cases/common/93 private include/stlib/foo2.def
+++ b/test cases/common/90 private include/stlib/foo1.def
diff --git a/test cases/unit/40 rpath order/subprojects/sub1/lib.c b/test cases/common/90 private include/stlib/foo2.def
index e69de29..e69de29 100644
--- a/test cases/unit/40 rpath order/subprojects/sub1/lib.c
+++ b/test cases/common/90 private include/stlib/foo2.def
diff --git a/test cases/common/93 private include/stlib/meson.build b/test cases/common/90 private include/stlib/meson.build
index 8d70650..8d70650 100644
--- a/test cases/common/93 private include/stlib/meson.build
+++ b/test cases/common/90 private include/stlib/meson.build
diff --git a/test cases/common/93 private include/user/libuser.c b/test cases/common/90 private include/user/libuser.c
index a74a973..a74a973 100644
--- a/test cases/common/93 private include/user/libuser.c
+++ b/test cases/common/90 private include/user/libuser.c
diff --git a/test cases/common/93 private include/user/meson.build b/test cases/common/90 private include/user/meson.build
index ab88b1d..ab88b1d 100644
--- a/test cases/common/93 private include/user/meson.build
+++ b/test cases/common/90 private include/user/meson.build
diff --git a/test cases/common/94 default options/meson.build b/test cases/common/91 default options/meson.build
index 9f45df0..9f45df0 100644
--- a/test cases/common/94 default options/meson.build
+++ b/test cases/common/91 default options/meson.build
diff --git a/test cases/common/95 dep fallback/gensrc.py b/test cases/common/92 dep fallback/gensrc.py
index ff42ac3..ff42ac3 100644
--- a/test cases/common/95 dep fallback/gensrc.py
+++ b/test cases/common/92 dep fallback/gensrc.py
diff --git a/test cases/common/95 dep fallback/meson.build b/test cases/common/92 dep fallback/meson.build
index a96520e..a96520e 100644
--- a/test cases/common/95 dep fallback/meson.build
+++ b/test cases/common/92 dep fallback/meson.build
diff --git a/test cases/common/95 dep fallback/subprojects/boblib/bob.c b/test cases/common/92 dep fallback/subprojects/boblib/bob.c
index ae0f394..ae0f394 100644
--- a/test cases/common/95 dep fallback/subprojects/boblib/bob.c
+++ b/test cases/common/92 dep fallback/subprojects/boblib/bob.c
diff --git a/test cases/common/95 dep fallback/subprojects/boblib/bob.h b/test cases/common/92 dep fallback/subprojects/boblib/bob.h
index f874ae7..f874ae7 100644
--- a/test cases/common/95 dep fallback/subprojects/boblib/bob.h
+++ b/test cases/common/92 dep fallback/subprojects/boblib/bob.h
diff --git a/test cases/common/95 dep fallback/subprojects/boblib/genbob.py b/test cases/common/92 dep fallback/subprojects/boblib/genbob.py
index 34af779..34af779 100644
--- a/test cases/common/95 dep fallback/subprojects/boblib/genbob.py
+++ b/test cases/common/92 dep fallback/subprojects/boblib/genbob.py
diff --git a/test cases/common/95 dep fallback/subprojects/boblib/meson.build b/test cases/common/92 dep fallback/subprojects/boblib/meson.build
index bb250e4..bb250e4 100644
--- a/test cases/common/95 dep fallback/subprojects/boblib/meson.build
+++ b/test cases/common/92 dep fallback/subprojects/boblib/meson.build
diff --git a/test cases/common/95 dep fallback/subprojects/dummylib/meson.build b/test cases/common/92 dep fallback/subprojects/dummylib/meson.build
index 3ad33e7..3ad33e7 100644
--- a/test cases/common/95 dep fallback/subprojects/dummylib/meson.build
+++ b/test cases/common/92 dep fallback/subprojects/dummylib/meson.build
diff --git a/test cases/common/95 dep fallback/tester.c b/test cases/common/92 dep fallback/tester.c
index e6651d9..e6651d9 100644
--- a/test cases/common/95 dep fallback/tester.c
+++ b/test cases/common/92 dep fallback/tester.c
diff --git a/test cases/common/96 default library/ef.cpp b/test cases/common/93 default library/ef.cpp
index 34784f8..34784f8 100644
--- a/test cases/common/96 default library/ef.cpp
+++ b/test cases/common/93 default library/ef.cpp
diff --git a/test cases/common/96 default library/ef.h b/test cases/common/93 default library/ef.h
index 21704b5..21704b5 100644
--- a/test cases/common/96 default library/ef.h
+++ b/test cases/common/93 default library/ef.h
diff --git a/test cases/common/96 default library/eftest.cpp b/test cases/common/93 default library/eftest.cpp
index 4d4412d..4d4412d 100644
--- a/test cases/common/96 default library/eftest.cpp
+++ b/test cases/common/93 default library/eftest.cpp
diff --git a/test cases/common/96 default library/meson.build b/test cases/common/93 default library/meson.build
index 903cfe4..903cfe4 100644
--- a/test cases/common/96 default library/meson.build
+++ b/test cases/common/93 default library/meson.build
diff --git a/test cases/common/97 selfbuilt custom/data.dat b/test cases/common/94 selfbuilt custom/data.dat
index 83fd1d9..83fd1d9 100644
--- a/test cases/common/97 selfbuilt custom/data.dat
+++ b/test cases/common/94 selfbuilt custom/data.dat
diff --git a/test cases/common/97 selfbuilt custom/mainprog.cpp b/test cases/common/94 selfbuilt custom/mainprog.cpp
index dcf9d20..dcf9d20 100644
--- a/test cases/common/97 selfbuilt custom/mainprog.cpp
+++ b/test cases/common/94 selfbuilt custom/mainprog.cpp
diff --git a/test cases/common/97 selfbuilt custom/meson.build b/test cases/common/94 selfbuilt custom/meson.build
index e5da27e..e5da27e 100644
--- a/test cases/common/97 selfbuilt custom/meson.build
+++ b/test cases/common/94 selfbuilt custom/meson.build
diff --git a/test cases/common/97 selfbuilt custom/tool.cpp b/test cases/common/94 selfbuilt custom/tool.cpp
index 6a28dd8..6a28dd8 100644
--- a/test cases/common/97 selfbuilt custom/tool.cpp
+++ b/test cases/common/94 selfbuilt custom/tool.cpp
diff --git a/test cases/common/98 gen extra/meson.build b/test cases/common/95 gen extra/meson.build
index cbbdceb..cbbdceb 100644
--- a/test cases/common/98 gen extra/meson.build
+++ b/test cases/common/95 gen extra/meson.build
diff --git a/test cases/common/98 gen extra/name.dat b/test cases/common/95 gen extra/name.dat
index caf5b1c..caf5b1c 100644
--- a/test cases/common/98 gen extra/name.dat
+++ b/test cases/common/95 gen extra/name.dat
diff --git a/test cases/common/98 gen extra/name.l b/test cases/common/95 gen extra/name.l
index 3adda4f..3adda4f 100644
--- a/test cases/common/98 gen extra/name.l
+++ b/test cases/common/95 gen extra/name.l
diff --git a/test cases/common/98 gen extra/plain.c b/test cases/common/95 gen extra/plain.c
index 3845aee..3845aee 100644
--- a/test cases/common/98 gen extra/plain.c
+++ b/test cases/common/95 gen extra/plain.c
diff --git a/test cases/common/98 gen extra/srcgen.py b/test cases/common/95 gen extra/srcgen.py
index 8988cd9..8988cd9 100755
--- a/test cases/common/98 gen extra/srcgen.py
+++ b/test cases/common/95 gen extra/srcgen.py
diff --git a/test cases/common/98 gen extra/srcgen2.py b/test cases/common/95 gen extra/srcgen2.py
index 9cdf12d..9cdf12d 100644
--- a/test cases/common/98 gen extra/srcgen2.py
+++ b/test cases/common/95 gen extra/srcgen2.py
diff --git a/test cases/common/98 gen extra/srcgen3.py b/test cases/common/95 gen extra/srcgen3.py
index b737114..b737114 100644
--- a/test cases/common/98 gen extra/srcgen3.py
+++ b/test cases/common/95 gen extra/srcgen3.py
diff --git a/test cases/common/98 gen extra/upper.c b/test cases/common/95 gen extra/upper.c
index 44f8ad7..44f8ad7 100644
--- a/test cases/common/98 gen extra/upper.c
+++ b/test cases/common/95 gen extra/upper.c
diff --git a/test cases/common/99 benchmark/delayer.c b/test cases/common/96 benchmark/delayer.c
index cfcedad..cfcedad 100644
--- a/test cases/common/99 benchmark/delayer.c
+++ b/test cases/common/96 benchmark/delayer.c
diff --git a/test cases/common/99 benchmark/meson.build b/test cases/common/96 benchmark/meson.build
index 9d583d2..9d583d2 100644
--- a/test cases/common/99 benchmark/meson.build
+++ b/test cases/common/96 benchmark/meson.build
diff --git a/test cases/common/100 test workdir/meson.build b/test cases/common/97 test workdir/meson.build
index 1323a17..1323a17 100644
--- a/test cases/common/100 test workdir/meson.build
+++ b/test cases/common/97 test workdir/meson.build
diff --git a/test cases/common/100 test workdir/opener.c b/test cases/common/97 test workdir/opener.c
index 43c53ce..43c53ce 100644
--- a/test cases/common/100 test workdir/opener.c
+++ b/test cases/common/97 test workdir/opener.c
diff --git a/test cases/common/101 suites/exe1.c b/test cases/common/98 suites/exe1.c
index 23894c0..23894c0 100644
--- a/test cases/common/101 suites/exe1.c
+++ b/test cases/common/98 suites/exe1.c
diff --git a/test cases/common/101 suites/exe2.c b/test cases/common/98 suites/exe2.c
index ec88e20..ec88e20 100644
--- a/test cases/common/101 suites/exe2.c
+++ b/test cases/common/98 suites/exe2.c
diff --git a/test cases/common/101 suites/meson.build b/test cases/common/98 suites/meson.build
index 057e059..057e059 100644
--- a/test cases/common/101 suites/meson.build
+++ b/test cases/common/98 suites/meson.build
diff --git a/test cases/common/101 suites/subprojects/sub/meson.build b/test cases/common/98 suites/subprojects/sub/meson.build
index 697d95f..697d95f 100644
--- a/test cases/common/101 suites/subprojects/sub/meson.build
+++ b/test cases/common/98 suites/subprojects/sub/meson.build
diff --git a/test cases/common/101 suites/subprojects/sub/sub1.c b/test cases/common/98 suites/subprojects/sub/sub1.c
index 3409e48..3409e48 100644
--- a/test cases/common/101 suites/subprojects/sub/sub1.c
+++ b/test cases/common/98 suites/subprojects/sub/sub1.c
diff --git a/test cases/common/101 suites/subprojects/sub/sub2.c b/test cases/common/98 suites/subprojects/sub/sub2.c
index 1a64a2a..1a64a2a 100644
--- a/test cases/common/101 suites/subprojects/sub/sub2.c
+++ b/test cases/common/98 suites/subprojects/sub/sub2.c
diff --git a/test cases/common/102 threads/meson.build b/test cases/common/99 threads/meson.build
index 1fbb15a..1fbb15a 100644
--- a/test cases/common/102 threads/meson.build
+++ b/test cases/common/99 threads/meson.build
diff --git a/test cases/common/102 threads/threadprog.c b/test cases/common/99 threads/threadprog.c
index 47a5d18..47a5d18 100644
--- a/test cases/common/102 threads/threadprog.c
+++ b/test cases/common/99 threads/threadprog.c
diff --git a/test cases/common/102 threads/threadprog.cpp b/test cases/common/99 threads/threadprog.cpp
index 6fd747f..6fd747f 100644
--- a/test cases/common/102 threads/threadprog.cpp
+++ b/test cases/common/99 threads/threadprog.cpp
diff --git a/test cases/d/10 d cpp/cppmain.cpp b/test cases/d/10 d cpp/cppmain.cpp
index aeddf56..ff90e3f 100644
--- a/test cases/d/10 d cpp/cppmain.cpp
+++ b/test cases/d/10 d cpp/cppmain.cpp
@@ -1,6 +1,18 @@
+extern "C" int rt_init();
+extern "C" int rt_term();
extern void print_hello(int i);
int main(int, char**) {
+ // initialize D runtime
+ if (!rt_init())
+ return 1;
+
print_hello(1);
+
+ // terminate D runtime, each initialize call
+ // must be paired with a terminate call.
+ if (!rt_term())
+ return 1;
+
return 0;
}
diff --git a/test cases/d/3 shared library/installed_files.txt b/test cases/d/3 shared library/installed_files.txt
index d6a4dad..6658947 100644
--- a/test cases/d/3 shared library/installed_files.txt
+++ b/test cases/d/3 shared library/installed_files.txt
@@ -1,2 +1,4 @@
usr/bin/app_d?exe
-usr/lib/libstuff.so
+?msvc:usr/bin/stuff.dll
+?msvc:usr/lib/stuff.lib
+?gcc:usr/lib/libstuff.so
diff --git a/test cases/d/3 shared library/libstuff.d b/test cases/d/3 shared library/libstuff.d
index 676a643..8205490 100644
--- a/test cases/d/3 shared library/libstuff.d
+++ b/test cases/d/3 shared library/libstuff.d
@@ -1,9 +1,14 @@
-
import std.stdio;
import std.string : format;
-int printLibraryString (string str)
+export int printLibraryString (string str)
{
writeln ("Library says: %s".format (str));
return 4;
}
+
+version (Windows)
+{
+ import core.sys.windows.dll;
+ mixin SimpleDllMain;
+}
diff --git a/test cases/d/3 shared library/libstuff.di b/test cases/d/3 shared library/libstuff.di
new file mode 100644
index 0000000..b6454b1
--- /dev/null
+++ b/test cases/d/3 shared library/libstuff.di
@@ -0,0 +1,3 @@
+module libstuff;
+
+int printLibraryString (string str);
diff --git a/test cases/d/3 shared library/meson.build b/test cases/d/3 shared library/meson.build
index 4616242..64f972b 100644
--- a/test cases/d/3 shared library/meson.build
+++ b/test cases/d/3 shared library/meson.build
@@ -11,11 +11,13 @@ ldyn = shared_library('stuff', 'libstuff.d', install : true)
ed = executable('app_d', 'app.d', link_with : ldyn, install : true)
test('linktest_dyn', ed)
-# test D attributes for pkg-config
-pkgc = import('pkgconfig')
-pkgc.generate(name: 'test',
- libraries: ldyn,
- subdirs: 'd/stuff',
- description: 'A test of D attributes to pkgconfig.generate.',
- d_module_versions: ['Use_Static']
-)
+if host_machine.system() != 'windows'
+ # test D attributes for pkg-config
+ pkgc = import('pkgconfig')
+ pkgc.generate(name: 'test',
+ libraries: ldyn,
+ subdirs: 'd/stuff',
+ description: 'A test of D attributes to pkgconfig.generate.',
+ d_module_versions: ['Use_Static']
+ )
+endif
diff --git a/test cases/d/4 library versions/installed_files.txt b/test cases/d/4 library versions/installed_files.txt
index b997e53..2cf8d4b 100644
--- a/test cases/d/4 library versions/installed_files.txt
+++ b/test cases/d/4 library versions/installed_files.txt
@@ -1,9 +1,17 @@
-usr/lib/libsome.so
-usr/lib/libsome.so.0
-usr/lib/libsome.so.1.2.3
-usr/lib/libnoversion.so
-usr/lib/libonlyversion.so
-usr/lib/libonlyversion.so.1
-usr/lib/libonlyversion.so.1.4.5
-usr/lib/libonlysoversion.so
-usr/lib/libonlysoversion.so.5
+?gcc:usr/lib/libsome.so
+?gcc:usr/lib/libsome.so.0
+?gcc:usr/lib/libsome.so.1.2.3
+?gcc:usr/lib/libnoversion.so
+?gcc:usr/lib/libonlyversion.so
+?gcc:usr/lib/libonlyversion.so.1
+?gcc:usr/lib/libonlyversion.so.1.4.5
+?gcc:usr/lib/libonlysoversion.so
+?gcc:usr/lib/libonlysoversion.so.5
+?msvc:usr/bin/noversion.dll
+?msvc:usr/bin/onlysoversion-5.dll
+?msvc:usr/bin/onlyversion-1.dll
+?msvc:usr/bin/some-0.dll
+?msvc:usr/lib/noversion.lib
+?msvc:usr/lib/onlysoversion.lib
+?msvc:usr/lib/onlyversion.lib
+?msvc:usr/lib/some.lib
diff --git a/test cases/d/4 library versions/lib.d b/test cases/d/4 library versions/lib.d
index 94df91e..f1e177d 100644
--- a/test cases/d/4 library versions/lib.d
+++ b/test cases/d/4 library versions/lib.d
@@ -3,8 +3,14 @@ import std.stdio;
import std.string : format;
@safe
-int printLibraryString (string str)
+export int printLibraryString (string str)
{
writeln ("Library says: %s".format (str));
return 4;
}
+
+version (Windows)
+{
+ import core.sys.windows.dll;
+ mixin SimpleDllMain;
+}
diff --git a/test cases/d/5 mixed/installed_files.txt b/test cases/d/5 mixed/installed_files.txt
index 9e7fccc..5f3f4e2 100644
--- a/test cases/d/5 mixed/installed_files.txt
+++ b/test cases/d/5 mixed/installed_files.txt
@@ -1,4 +1,6 @@
usr/bin/appdc_d?exe
-usr/lib/libstuff.so
usr/bin/appdc_s?exe
usr/lib/libstuff.a
+?gcc:usr/lib/libstuff.so
+?msvc:usr/bin/stuff.dll
+?msvc:usr/lib/stuff.lib
diff --git a/test cases/d/7 multilib/installed_files.txt b/test cases/d/7 multilib/installed_files.txt
index fc6be16..473479f 100644
--- a/test cases/d/7 multilib/installed_files.txt
+++ b/test cases/d/7 multilib/installed_files.txt
@@ -1,7 +1,11 @@
usr/bin/app_d?exe
-usr/lib/libsay1.so
-usr/lib/libsay1.so.0
-usr/lib/libsay1.so.1.2.3
-usr/lib/libsay2.so
-usr/lib/libsay2.so.1
-usr/lib/libsay2.so.1.2.4
+?gcc:usr/lib/libsay1.so
+?gcc:usr/lib/libsay1.so.0
+?gcc:usr/lib/libsay1.so.1.2.3
+?gcc:usr/lib/libsay2.so
+?gcc:usr/lib/libsay2.so.1
+?gcc:usr/lib/libsay2.so.1.2.4
+?msvc:usr/bin/say1-0.dll
+?msvc:usr/bin/say2-1.dll
+?msvc:usr/lib/say1.lib
+?msvc:usr/lib/say2.lib
diff --git a/test cases/d/7 multilib/say1.d b/test cases/d/7 multilib/say1.d
index 07127d3..605fd23 100644
--- a/test cases/d/7 multilib/say1.d
+++ b/test cases/d/7 multilib/say1.d
@@ -2,8 +2,14 @@
import std.stdio;
import std.string : format;
-int sayHello1 (string str)
+export int sayHello1 (string str)
{
writeln ("Hello %s from library 1.".format (str));
return 4;
}
+
+version (Windows)
+{
+ import core.sys.windows.dll;
+ mixin SimpleDllMain;
+}
diff --git a/test cases/d/7 multilib/say1.di b/test cases/d/7 multilib/say1.di
new file mode 100644
index 0000000..8a9ff02
--- /dev/null
+++ b/test cases/d/7 multilib/say1.di
@@ -0,0 +1 @@
+int sayHello1 (string str);
diff --git a/test cases/d/7 multilib/say2.d b/test cases/d/7 multilib/say2.d
index f77d0d2..7270ebd 100644
--- a/test cases/d/7 multilib/say2.d
+++ b/test cases/d/7 multilib/say2.d
@@ -2,8 +2,14 @@
import std.stdio;
import std.string : format;
-int sayHello2 (string str)
+export int sayHello2 (string str)
{
writeln ("Hello %s from library 2.".format (str));
return 8;
}
+
+version (Windows)
+{
+ import core.sys.windows.dll;
+ mixin SimpleDllMain;
+}
diff --git a/test cases/d/7 multilib/say2.di b/test cases/d/7 multilib/say2.di
new file mode 100644
index 0000000..da712f0
--- /dev/null
+++ b/test cases/d/7 multilib/say2.di
@@ -0,0 +1 @@
+int sayHello2 (string str);
diff --git a/test cases/failing/81 framework dependency with version/meson.build b/test cases/failing/81 framework dependency with version/meson.build
new file mode 100644
index 0000000..714ad3b
--- /dev/null
+++ b/test cases/failing/81 framework dependency with version/meson.build
@@ -0,0 +1,4 @@
+project('framework dependency with version')
+# do individual frameworks have a meaningful version to test? And multiple frameworks might be listed...
+# otherwise we're not on OSX and this will definitely fail
+dep = dependency('appleframeworks', modules: 'foundation', version: '>0')
diff --git a/test cases/failing/82 gl dependency with version/meson.build b/test cases/failing/82 gl dependency with version/meson.build
new file mode 100644
index 0000000..3014d43
--- /dev/null
+++ b/test cases/failing/82 gl dependency with version/meson.build
@@ -0,0 +1,9 @@
+project('gl dependency with version', 'c')
+
+host_system = host_machine.system()
+if host_system != 'windows' and host_system != 'darwin'
+ error('Test only fails on Windows and OSX')
+endif
+
+# gl dependency found via system method doesn't have a meaningful version to check
+dep = dependency('gl', method: 'system', version: '>0')
diff --git a/test cases/failing/83 threads dependency with version/meson.build b/test cases/failing/83 threads dependency with version/meson.build
new file mode 100644
index 0000000..6023fae
--- /dev/null
+++ b/test cases/failing/83 threads dependency with version/meson.build
@@ -0,0 +1,3 @@
+project('threads dependency with version', 'c')
+# threads dependency doesn't have a meaningful version to check
+dep = dependency('threads', version: '>0')
diff --git a/test cases/failing/84 gtest dependency with version/meson.build b/test cases/failing/84 gtest dependency with version/meson.build
new file mode 100644
index 0000000..5115f27
--- /dev/null
+++ b/test cases/failing/84 gtest dependency with version/meson.build
@@ -0,0 +1,3 @@
+project('gtest dependency with version', ['c', 'cpp'])
+# discovering gtest version is not yet implemented
+dep = dependency('gtest', version: '>0')
diff --git a/test cases/frameworks/1 boost/meson.build b/test cases/frameworks/1 boost/meson.build
index 9399598..d1e1da4 100644
--- a/test cases/frameworks/1 boost/meson.build
+++ b/test cases/frameworks/1 boost/meson.build
@@ -33,3 +33,6 @@ test('Boost nomod', nomodexe)
test('Boost extralib test', extralibexe)
subdir('partial_dep')
+
+# check we can apply a version constraint
+dependency('boost', version: '>=@0@'.format(dep.version()))
diff --git a/test cases/frameworks/15 llvm/meson.build b/test cases/frameworks/15 llvm/meson.build
index b5505eb..e05fddd 100644
--- a/test cases/frameworks/15 llvm/meson.build
+++ b/test cases/frameworks/15 llvm/meson.build
@@ -41,3 +41,6 @@ foreach static : [true, false]
)
endif
endforeach
+
+# Check we can apply a version constraint
+dependency('llvm', version: '>=@0@'.format(d.version()))
diff --git a/test cases/frameworks/16 sdl2/meson.build b/test cases/frameworks/16 sdl2/meson.build
index 1bbf09f..fd90e36 100644
--- a/test cases/frameworks/16 sdl2/meson.build
+++ b/test cases/frameworks/16 sdl2/meson.build
@@ -15,3 +15,7 @@ configdep = dependency('sdl2', method : 'sdlconfig')
# And the modern method name
configdep = dependency('sdl2', method : 'config-tool')
+
+# Check we can apply a version constraint
+dependency('sdl2', version: '>=@0@'.format(sdl2_dep.version()), method: 'pkg-config')
+dependency('sdl2', version: '>=@0@'.format(sdl2_dep.version()), method: 'config-tool')
diff --git a/test cases/frameworks/17 mpi/meson.build b/test cases/frameworks/17 mpi/meson.build
index f3eacac..1085d40 100644
--- a/test cases/frameworks/17 mpi/meson.build
+++ b/test cases/frameworks/17 mpi/meson.build
@@ -42,3 +42,6 @@ if uburesult.returncode() != 0 and add_languages('fortran', required : false)
test('MPI Fortran', exef)
endif
+
+# Check we can apply a version constraint
+dependency('mpi', version: '>=@0@'.format(mpic.version()))
diff --git a/test cases/frameworks/18 vulkan/meson.build b/test cases/frameworks/18 vulkan/meson.build
index e98854e..5cfe89f 100644
--- a/test cases/frameworks/18 vulkan/meson.build
+++ b/test cases/frameworks/18 vulkan/meson.build
@@ -8,3 +8,6 @@ endif
e = executable('vulkanprog', 'vulkanprog.c', dependencies : vulkan_dep)
test('vulkantest', e)
+
+# Check we can apply a version constraint
+dependency('vulkan', version: '>=@0@'.format(vulkan_dep.version()))
diff --git a/test cases/frameworks/19 pcap/meson.build b/test cases/frameworks/19 pcap/meson.build
index eb6fc2c..051e49e 100644
--- a/test cases/frameworks/19 pcap/meson.build
+++ b/test cases/frameworks/19 pcap/meson.build
@@ -16,3 +16,7 @@ test('pcaptest', e)
# Ensure discovery via the configuration tools work also
pcap_dep = dependency('pcap', version : '>=1.0', method : 'pcap-config')
pcap_dep = dependency('pcap', version : '>=1.0', method : 'config-tool')
+
+# Check we can apply a version constraint
+dependency('pcap', version: '>=@0@'.format(pcap_dep.version()), method: 'pkg-config', required: false)
+dependency('pcap', version: '>=@0@'.format(pcap_dep.version()), method: 'config-tool')
diff --git a/test cases/frameworks/20 cups/meson.build b/test cases/frameworks/20 cups/meson.build
index 9040de6..d50c4a8 100644
--- a/test cases/frameworks/20 cups/meson.build
+++ b/test cases/frameworks/20 cups/meson.build
@@ -14,3 +14,7 @@ test('cupstest', e)
# options
dep = dependency('cups', version : '>=1.4', method : 'cups-config')
dep = dependency('cups', version : '>=1.4', method : 'config-tool')
+
+# check we can apply a version constraint
+dependency('cups', version: '>=@0@'.format(dep.version()), method: 'pkg-config', required: false)
+dependency('cups', version: '>=@0@'.format(dep.version()), method: 'config-tool')
diff --git a/test cases/frameworks/21 libwmf/meson.build b/test cases/frameworks/21 libwmf/meson.build
index 1fdce2e..ab0ebf6 100644
--- a/test cases/frameworks/21 libwmf/meson.build
+++ b/test cases/frameworks/21 libwmf/meson.build
@@ -17,3 +17,7 @@ test('libwmftest', e)
dependency('libwmf', method : 'config-tool')
dependency('libwmf', method : 'libwmf-config')
+
+# Check we can apply a version constraint
+dependency('libwmf', version: '>=@0@'.format(libwmf_dep.version()), method: 'pkg-config', required: false)
+dependency('libwmf', version: '>=@0@'.format(libwmf_dep.version()), method: 'config-tool')
diff --git a/test cases/frameworks/4 qt/meson.build b/test cases/frameworks/4 qt/meson.build
index 16fe564..1d7ff4e 100644
--- a/test cases/frameworks/4 qt/meson.build
+++ b/test cases/frameworks/4 qt/meson.build
@@ -103,5 +103,9 @@ foreach qt : ['qt4', 'qt5']
if qt == 'qt5'
subdir('subfolder')
endif
+
+ # Check we can apply a version constraint
+ dependency(qt, modules: qt_modules, version: '>=@0@'.format(qtdep.version()), method : get_option('method'))
+
endif
endforeach
diff --git a/test cases/frameworks/9 wxwidgets/meson.build b/test cases/frameworks/9 wxwidgets/meson.build
index d815a2d..0c7ecaa 100644
--- a/test cases/frameworks/9 wxwidgets/meson.build
+++ b/test cases/frameworks/9 wxwidgets/meson.build
@@ -12,4 +12,8 @@ if wxd.found()
wx_stc = dependency('wxwidgets', version : '>=3.0.0', modules : ['std', 'stc'])
stc_exe = executable('wxstc', 'wxstc.cpp', dependencies : wx_stc)
test('wxstctest', stc_exe)
+
+ # Check we can apply a version constraint
+ dependency('wxwidgets', version: '>=@0@'.format(wxd.version()))
+
endif
diff --git a/test cases/osx/2 library versions/meson.build b/test cases/osx/2 library versions/meson.build
index 3061ed6..acd58a5 100644
--- a/test cases/osx/2 library versions/meson.build
+++ b/test cases/osx/2 library versions/meson.build
@@ -1,6 +1,12 @@
project('library versions', 'c')
+zlib_dep = dependency('zlib')
+
some = shared_library('some', 'lib.c',
+ # duplicate the rpath again, in order
+ # to test Meson's RPATH deduplication
+ build_rpath : zlib_dep.get_pkgconfig_variable('libdir'),
+ dependencies : zlib_dep,
version : '1.2.3',
soversion : '0',
install : true)
diff --git a/test cases/python3/2 extmodule/meson.build b/test cases/python3/2 extmodule/meson.build
index 0ecc813..4916a69 100644
--- a/test cases/python3/2 extmodule/meson.build
+++ b/test cases/python3/2 extmodule/meson.build
@@ -14,6 +14,10 @@ if py3_dep.found()
py3,
args : files('blaster.py'),
env : ['PYTHONPATH=' + pypathdir])
+
+ # Check we can apply a version constraint
+ dependency('python3', version: '>=@0@'.format(py3_dep.version()))
+
else
error('MESON_SKIP_TEST: Python3 libraries not found, skipping test.')
endif
diff --git a/test cases/unit/35 dist script/meson.build b/test cases/unit/35 dist script/meson.build
new file mode 100644
index 0000000..3415ec4
--- /dev/null
+++ b/test cases/unit/35 dist script/meson.build
@@ -0,0 +1,7 @@
+project('dist script', 'c',
+ version : '1.0.0')
+
+exe = executable('comparer', 'prog.c')
+test('compare', exe)
+
+meson.add_dist_script('replacer.py')
diff --git a/test cases/unit/35 dist script/prog.c b/test cases/unit/35 dist script/prog.c
new file mode 100644
index 0000000..1bb6b05
--- /dev/null
+++ b/test cases/unit/35 dist script/prog.c
@@ -0,0 +1,7 @@
+#include<string.h>
+
+#define REPLACEME "incorrect"
+
+int main(int argc, char **argv) {
+ return strcmp(REPLACEME, "correct");
+}
diff --git a/test cases/unit/35 dist script/replacer.py b/test cases/unit/35 dist script/replacer.py
new file mode 100755
index 0000000..92bcef0
--- /dev/null
+++ b/test cases/unit/35 dist script/replacer.py
@@ -0,0 +1,12 @@
+#!/usr/bin/env python3
+
+import os, sys
+import pathlib
+
+source_root = pathlib.Path(os.environ['MESON_DIST_ROOT'])
+
+modfile = source_root / 'prog.c'
+
+contents = modfile.read_text()
+contents = contents.replace('"incorrect"', '"correct"')
+modfile.write_text(contents)
diff --git a/test cases/unit/35 mixed command line args/meson.build b/test cases/unit/36 mixed command line args/meson.build
index af5cdc7..af5cdc7 100644
--- a/test cases/unit/35 mixed command line args/meson.build
+++ b/test cases/unit/36 mixed command line args/meson.build
diff --git a/test cases/unit/35 mixed command line args/meson_options.txt b/test cases/unit/36 mixed command line args/meson_options.txt
index 5a4bc22..5a4bc22 100644
--- a/test cases/unit/35 mixed command line args/meson_options.txt
+++ b/test cases/unit/36 mixed command line args/meson_options.txt
diff --git a/test cases/unit/36 pkgconfig format/meson.build b/test cases/unit/37 pkgconfig format/meson.build
index ea00f5d..ea00f5d 100644
--- a/test cases/unit/36 pkgconfig format/meson.build
+++ b/test cases/unit/37 pkgconfig format/meson.build
diff --git a/test cases/unit/36 pkgconfig format/somelib.c b/test cases/unit/37 pkgconfig format/somelib.c
index 0558024..0558024 100644
--- a/test cases/unit/36 pkgconfig format/somelib.c
+++ b/test cases/unit/37 pkgconfig format/somelib.c
diff --git a/test cases/unit/36 pkgconfig format/someret.c b/test cases/unit/37 pkgconfig format/someret.c
index 69f4299..69f4299 100644
--- a/test cases/unit/36 pkgconfig format/someret.c
+++ b/test cases/unit/37 pkgconfig format/someret.c
diff --git a/test cases/unit/38 external, internal library rpath/built library/meson.build b/test cases/unit/38 external, internal library rpath/built library/meson.build
deleted file mode 100644
index 2b422f4..0000000
--- a/test cases/unit/38 external, internal library rpath/built library/meson.build
+++ /dev/null
@@ -1,12 +0,0 @@
-project('built library', 'c')
-
-cc = meson.get_compiler('c')
-foo_system_dep = cc.find_library('foo_in_system')
-faa_pkg_dep = dependency('faa_pkg')
-
-l = shared_library('bar_built', 'bar.c',
- install: true,
- dependencies : [foo_system_dep, faa_pkg_dep])
-
-e = executable('prog', 'prog.c', link_with: l, install: true)
-test('testprog', e)
diff --git a/test cases/unit/38 external, internal library rpath/external library/meson.build b/test cases/unit/38 external, internal library rpath/external library/meson.build
deleted file mode 100644
index 6dcc97e..0000000
--- a/test cases/unit/38 external, internal library rpath/external library/meson.build
+++ /dev/null
@@ -1,9 +0,0 @@
-project('system library', 'c')
-
-shared_library('foo_in_system', 'foo.c', install : true)
-l = shared_library('faa_pkg', 'faa.c', install: true)
-
-pkg = import('pkgconfig')
-pkg.generate(name: 'faa_pkg',
- libraries: [l, '-framework', 'CoreFoundation', '-framework', 'CoreMedia'],
- description: 'FAA, a pkg-config test library')
diff --git a/test cases/unit/37 python extmodule/blaster.py b/test cases/unit/38 python extmodule/blaster.py
index 163b6d4..163b6d4 100755
--- a/test cases/unit/37 python extmodule/blaster.py
+++ b/test cases/unit/38 python extmodule/blaster.py
diff --git a/test cases/unit/37 python extmodule/ext/meson.build b/test cases/unit/38 python extmodule/ext/meson.build
index b13bb32..b13bb32 100644
--- a/test cases/unit/37 python extmodule/ext/meson.build
+++ b/test cases/unit/38 python extmodule/ext/meson.build
diff --git a/test cases/unit/37 python extmodule/ext/tachyon_module.c b/test cases/unit/38 python extmodule/ext/tachyon_module.c
index 68eda53..68eda53 100644
--- a/test cases/unit/37 python extmodule/ext/tachyon_module.c
+++ b/test cases/unit/38 python extmodule/ext/tachyon_module.c
diff --git a/test cases/unit/37 python extmodule/meson.build b/test cases/unit/38 python extmodule/meson.build
index 4798654..4798654 100644
--- a/test cases/unit/37 python extmodule/meson.build
+++ b/test cases/unit/38 python extmodule/meson.build
diff --git a/test cases/unit/37 python extmodule/meson_options.txt b/test cases/unit/38 python extmodule/meson_options.txt
index b8f645d..b8f645d 100644
--- a/test cases/unit/37 python extmodule/meson_options.txt
+++ b/test cases/unit/38 python extmodule/meson_options.txt
diff --git a/test cases/unit/38 external, internal library rpath/built library/bar.c b/test cases/unit/39 external, internal library rpath/built library/bar.c
index 4f5662e..4f5662e 100644
--- a/test cases/unit/38 external, internal library rpath/built library/bar.c
+++ b/test cases/unit/39 external, internal library rpath/built library/bar.c
diff --git a/test cases/unit/39 external, internal library rpath/built library/meson.build b/test cases/unit/39 external, internal library rpath/built library/meson.build
new file mode 100644
index 0000000..f633996
--- /dev/null
+++ b/test cases/unit/39 external, internal library rpath/built library/meson.build
@@ -0,0 +1,21 @@
+project('built library', 'c')
+
+cc = meson.get_compiler('c')
+
+if host_machine.system() != 'cygwin'
+ # bar_in_system has undefined symbols, but still must be found
+ bar_system_dep = cc.find_library('bar_in_system')
+endif
+
+foo_system_dep = cc.find_library('foo_in_system')
+
+faa_pkg_dep = dependency('faa_pkg')
+
+l = shared_library('bar_built', 'bar.c',
+ install: true,
+ dependencies : [foo_system_dep, faa_pkg_dep])
+
+if host_machine.system() == 'darwin'
+ e = executable('prog', 'prog.c', link_with: l, install: true)
+ test('testprog', e)
+endif
diff --git a/test cases/unit/38 external, internal library rpath/built library/meson_options.txt b/test cases/unit/39 external, internal library rpath/built library/meson_options.txt
index aa1d2ec..aa1d2ec 100644
--- a/test cases/unit/38 external, internal library rpath/built library/meson_options.txt
+++ b/test cases/unit/39 external, internal library rpath/built library/meson_options.txt
diff --git a/test cases/unit/38 external, internal library rpath/built library/prog.c b/test cases/unit/39 external, internal library rpath/built library/prog.c
index e3d4cf6..e3d4cf6 100644
--- a/test cases/unit/38 external, internal library rpath/built library/prog.c
+++ b/test cases/unit/39 external, internal library rpath/built library/prog.c
diff --git a/test cases/unit/39 external, internal library rpath/external library/bar.c b/test cases/unit/39 external, internal library rpath/external library/bar.c
new file mode 100644
index 0000000..c6f42d6
--- /dev/null
+++ b/test cases/unit/39 external, internal library rpath/external library/bar.c
@@ -0,0 +1,6 @@
+int some_undefined_func (void);
+
+int bar_system_value (void)
+{
+ return some_undefined_func ();
+}
diff --git a/test cases/unit/38 external, internal library rpath/external library/faa.c b/test cases/unit/39 external, internal library rpath/external library/faa.c
index 4733575..4733575 100644
--- a/test cases/unit/38 external, internal library rpath/external library/faa.c
+++ b/test cases/unit/39 external, internal library rpath/external library/faa.c
diff --git a/test cases/unit/38 external, internal library rpath/external library/foo.c b/test cases/unit/39 external, internal library rpath/external library/foo.c
index a34e4a8..a34e4a8 100644
--- a/test cases/unit/38 external, internal library rpath/external library/foo.c
+++ b/test cases/unit/39 external, internal library rpath/external library/foo.c
diff --git a/test cases/unit/39 external, internal library rpath/external library/meson.build b/test cases/unit/39 external, internal library rpath/external library/meson.build
new file mode 100644
index 0000000..3c311f5
--- /dev/null
+++ b/test cases/unit/39 external, internal library rpath/external library/meson.build
@@ -0,0 +1,22 @@
+project('system library', 'c', default_options : ['b_lundef=false'])
+
+shared_library('foo_in_system', 'foo.c', install : true)
+l = shared_library('faa_pkg', 'faa.c', install: true)
+
+if host_machine.system() == 'darwin'
+ frameworks = ['-framework', 'CoreFoundation', '-framework', 'CoreMedia']
+ allow_undef_args = ['-Wl,-undefined,dynamic_lookup']
+else
+ frameworks = []
+ allow_undef_args = []
+endif
+
+pkg = import('pkgconfig')
+pkg.generate(name: 'faa_pkg',
+ libraries: [l] + frameworks,
+ description: 'FAA, a pkg-config test library')
+
+# cygwin DLLs can't have undefined symbols
+if host_machine.system() != 'cygwin'
+ shared_library('bar_in_system', 'bar.c', install : true, link_args : allow_undef_args)
+endif
diff --git a/test cases/unit/39 featurenew subprojects/meson.build b/test cases/unit/40 featurenew subprojects/meson.build
index 27898cd..27898cd 100644
--- a/test cases/unit/39 featurenew subprojects/meson.build
+++ b/test cases/unit/40 featurenew subprojects/meson.build
diff --git a/test cases/unit/39 featurenew subprojects/subprojects/bar/meson.build b/test cases/unit/40 featurenew subprojects/subprojects/bar/meson.build
index 712a125..712a125 100644
--- a/test cases/unit/39 featurenew subprojects/subprojects/bar/meson.build
+++ b/test cases/unit/40 featurenew subprojects/subprojects/bar/meson.build
diff --git a/test cases/unit/39 featurenew subprojects/subprojects/foo/meson.build b/test cases/unit/40 featurenew subprojects/subprojects/foo/meson.build
index 0ef4472..0ef4472 100644
--- a/test cases/unit/39 featurenew subprojects/subprojects/foo/meson.build
+++ b/test cases/unit/40 featurenew subprojects/subprojects/foo/meson.build
diff --git a/test cases/unit/40 rpath order/meson.build b/test cases/unit/41 rpath order/meson.build
index a722894..a722894 100644
--- a/test cases/unit/40 rpath order/meson.build
+++ b/test cases/unit/41 rpath order/meson.build
diff --git a/test cases/unit/40 rpath order/myexe.c b/test cases/unit/41 rpath order/myexe.c
index 03b2213..03b2213 100644
--- a/test cases/unit/40 rpath order/myexe.c
+++ b/test cases/unit/41 rpath order/myexe.c
diff --git a/test cases/unit/40 rpath order/subprojects/sub2/lib.c b/test cases/unit/41 rpath order/subprojects/sub1/lib.c
index e69de29..e69de29 100644
--- a/test cases/unit/40 rpath order/subprojects/sub2/lib.c
+++ b/test cases/unit/41 rpath order/subprojects/sub1/lib.c
diff --git a/test cases/unit/40 rpath order/subprojects/sub1/meson.build b/test cases/unit/41 rpath order/subprojects/sub1/meson.build
index 4dd5d08..4dd5d08 100644
--- a/test cases/unit/40 rpath order/subprojects/sub1/meson.build
+++ b/test cases/unit/41 rpath order/subprojects/sub1/meson.build
diff --git a/test cases/unit/41 dep order/lib1.c b/test cases/unit/41 rpath order/subprojects/sub2/lib.c
index e69de29..e69de29 100644
--- a/test cases/unit/41 dep order/lib1.c
+++ b/test cases/unit/41 rpath order/subprojects/sub2/lib.c
diff --git a/test cases/unit/40 rpath order/subprojects/sub2/meson.build b/test cases/unit/41 rpath order/subprojects/sub2/meson.build
index bc3510d..bc3510d 100644
--- a/test cases/unit/40 rpath order/subprojects/sub2/meson.build
+++ b/test cases/unit/41 rpath order/subprojects/sub2/meson.build
diff --git a/test cases/unit/41 dep order/lib2.c b/test cases/unit/42 dep order/lib1.c
index e69de29..e69de29 100644
--- a/test cases/unit/41 dep order/lib2.c
+++ b/test cases/unit/42 dep order/lib1.c
diff --git a/test cases/windows/17 gui app/dummy.c b/test cases/unit/42 dep order/lib2.c
index e69de29..e69de29 100644
--- a/test cases/windows/17 gui app/dummy.c
+++ b/test cases/unit/42 dep order/lib2.c
diff --git a/test cases/unit/41 dep order/meson.build b/test cases/unit/42 dep order/meson.build
index 17cf9df..17cf9df 100644
--- a/test cases/unit/41 dep order/meson.build
+++ b/test cases/unit/42 dep order/meson.build
diff --git a/test cases/unit/41 dep order/myexe.c b/test cases/unit/42 dep order/myexe.c
index 8f4c045..8f4c045 100644
--- a/test cases/unit/41 dep order/myexe.c
+++ b/test cases/unit/42 dep order/myexe.c
diff --git a/test cases/unit/42 promote wrap/meson.build b/test cases/unit/43 promote wrap/meson.build
index 066cf36..066cf36 100644
--- a/test cases/unit/42 promote wrap/meson.build
+++ b/test cases/unit/43 promote wrap/meson.build
diff --git a/test cases/unit/42 promote wrap/subprojects/s1/meson.build b/test cases/unit/43 promote wrap/subprojects/s1/meson.build
index 3d1f5bc..3d1f5bc 100644
--- a/test cases/unit/42 promote wrap/subprojects/s1/meson.build
+++ b/test cases/unit/43 promote wrap/subprojects/s1/meson.build
diff --git a/test cases/unit/42 promote wrap/subprojects/s1/subprojects/ambiguous/meson.build b/test cases/unit/43 promote wrap/subprojects/s1/subprojects/ambiguous/meson.build
index 296adff..296adff 100644
--- a/test cases/unit/42 promote wrap/subprojects/s1/subprojects/ambiguous/meson.build
+++ b/test cases/unit/43 promote wrap/subprojects/s1/subprojects/ambiguous/meson.build
diff --git a/test cases/unit/42 promote wrap/subprojects/s2/meson.build b/test cases/unit/43 promote wrap/subprojects/s2/meson.build
index b5db634..b5db634 100644
--- a/test cases/unit/42 promote wrap/subprojects/s2/meson.build
+++ b/test cases/unit/43 promote wrap/subprojects/s2/meson.build
diff --git a/test cases/unit/42 promote wrap/subprojects/s2/subprojects/ambiguous.wrap b/test cases/unit/43 promote wrap/subprojects/s2/subprojects/ambiguous.wrap
index 09ba4e8..09ba4e8 100644
--- a/test cases/unit/42 promote wrap/subprojects/s2/subprojects/ambiguous.wrap
+++ b/test cases/unit/43 promote wrap/subprojects/s2/subprojects/ambiguous.wrap
diff --git a/test cases/windows/15 resource scripts with duplicate filenames/exe3/meson.build b/test cases/windows/15 resource scripts with duplicate filenames/exe3/meson.build
new file mode 100644
index 0000000..1b97435
--- /dev/null
+++ b/test cases/windows/15 resource scripts with duplicate filenames/exe3/meson.build
@@ -0,0 +1,5 @@
+dll_res = win.compile_resources('src_dll/version.rc')
+shared_library('lib3', 'src_dll/main.c', dll_res)
+
+exe_res = win.compile_resources('src_exe/version.rc')
+executable('exe3', 'src_exe/main.c', exe_res)
diff --git a/test cases/windows/15 resource scripts with duplicate filenames/exe3/src_dll/main.c b/test cases/windows/15 resource scripts with duplicate filenames/exe3/src_dll/main.c
new file mode 100644
index 0000000..673b5e4
--- /dev/null
+++ b/test cases/windows/15 resource scripts with duplicate filenames/exe3/src_dll/main.c
@@ -0,0 +1,6 @@
+#include <windows.h>
+
+BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
+{
+ return TRUE;
+}
diff --git a/test cases/windows/15 resource scripts with duplicate filenames/exe3/src_dll/version.rc b/test cases/windows/15 resource scripts with duplicate filenames/exe3/src_dll/version.rc
new file mode 100644
index 0000000..abdbaaa
--- /dev/null
+++ b/test cases/windows/15 resource scripts with duplicate filenames/exe3/src_dll/version.rc
@@ -0,0 +1,11 @@
+ #include <windows.h>
+
+VS_VERSION_INFO VERSIONINFO
+ FILEVERSION 1,0,0,0
+ PRODUCTVERSION 1,0,0,0
+ FILEFLAGSMASK VS_FFI_FILEFLAGSMASK
+ FILEFLAGS 0
+ FILEOS VOS__WINDOWS32
+ FILETYPE VFT_APP
+BEGIN
+END
diff --git a/test cases/windows/17 gui app/console_prog.c b/test cases/windows/15 resource scripts with duplicate filenames/exe3/src_exe/main.c
index 11b7fad..11b7fad 100644
--- a/test cases/windows/17 gui app/console_prog.c
+++ b/test cases/windows/15 resource scripts with duplicate filenames/exe3/src_exe/main.c
diff --git a/test cases/windows/15 resource scripts with duplicate filenames/exe3/src_exe/version.rc b/test cases/windows/15 resource scripts with duplicate filenames/exe3/src_exe/version.rc
new file mode 100644
index 0000000..abdbaaa
--- /dev/null
+++ b/test cases/windows/15 resource scripts with duplicate filenames/exe3/src_exe/version.rc
@@ -0,0 +1,11 @@
+ #include <windows.h>
+
+VS_VERSION_INFO VERSIONINFO
+ FILEVERSION 1,0,0,0
+ PRODUCTVERSION 1,0,0,0
+ FILEFLAGSMASK VS_FFI_FILEFLAGSMASK
+ FILEFLAGS 0
+ FILEOS VOS__WINDOWS32
+ FILETYPE VFT_APP
+BEGIN
+END
diff --git a/test cases/windows/15 resource scripts with duplicate filenames/exe4/meson.build b/test cases/windows/15 resource scripts with duplicate filenames/exe4/meson.build
new file mode 100644
index 0000000..2ae3a71
--- /dev/null
+++ b/test cases/windows/15 resource scripts with duplicate filenames/exe4/meson.build
@@ -0,0 +1,5 @@
+dll_res = win.compile_resources(files('src_dll/version.rc'))
+shared_library('lib4', 'src_dll/main.c', dll_res)
+
+exe_res = win.compile_resources(files('src_exe/version.rc'))
+executable('exe4', 'src_exe/main.c', exe_res)
diff --git a/test cases/windows/15 resource scripts with duplicate filenames/exe4/src_dll/main.c b/test cases/windows/15 resource scripts with duplicate filenames/exe4/src_dll/main.c
new file mode 100644
index 0000000..673b5e4
--- /dev/null
+++ b/test cases/windows/15 resource scripts with duplicate filenames/exe4/src_dll/main.c
@@ -0,0 +1,6 @@
+#include <windows.h>
+
+BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
+{
+ return TRUE;
+}
diff --git a/test cases/windows/15 resource scripts with duplicate filenames/exe4/src_dll/version.rc b/test cases/windows/15 resource scripts with duplicate filenames/exe4/src_dll/version.rc
new file mode 100644
index 0000000..abdbaaa
--- /dev/null
+++ b/test cases/windows/15 resource scripts with duplicate filenames/exe4/src_dll/version.rc
@@ -0,0 +1,11 @@
+ #include <windows.h>
+
+VS_VERSION_INFO VERSIONINFO
+ FILEVERSION 1,0,0,0
+ PRODUCTVERSION 1,0,0,0
+ FILEFLAGSMASK VS_FFI_FILEFLAGSMASK
+ FILEFLAGS 0
+ FILEOS VOS__WINDOWS32
+ FILETYPE VFT_APP
+BEGIN
+END
diff --git a/test cases/windows/15 resource scripts with duplicate filenames/exe4/src_exe/main.c b/test cases/windows/15 resource scripts with duplicate filenames/exe4/src_exe/main.c
new file mode 100644
index 0000000..11b7fad
--- /dev/null
+++ b/test cases/windows/15 resource scripts with duplicate filenames/exe4/src_exe/main.c
@@ -0,0 +1,3 @@
+int main(int argc, char **argv) {
+ return 0;
+}
diff --git a/test cases/windows/15 resource scripts with duplicate filenames/exe4/src_exe/version.rc b/test cases/windows/15 resource scripts with duplicate filenames/exe4/src_exe/version.rc
new file mode 100644
index 0000000..abdbaaa
--- /dev/null
+++ b/test cases/windows/15 resource scripts with duplicate filenames/exe4/src_exe/version.rc
@@ -0,0 +1,11 @@
+ #include <windows.h>
+
+VS_VERSION_INFO VERSIONINFO
+ FILEVERSION 1,0,0,0
+ PRODUCTVERSION 1,0,0,0
+ FILEFLAGSMASK VS_FFI_FILEFLAGSMASK
+ FILEFLAGS 0
+ FILEOS VOS__WINDOWS32
+ FILETYPE VFT_APP
+BEGIN
+END
diff --git a/test cases/windows/15 resource scripts with duplicate filenames/meson.build b/test cases/windows/15 resource scripts with duplicate filenames/meson.build
index 4073a8e..9fa3525 100644
--- a/test cases/windows/15 resource scripts with duplicate filenames/meson.build
+++ b/test cases/windows/15 resource scripts with duplicate filenames/meson.build
@@ -5,6 +5,8 @@ win = import('windows')
subdir('a')
subdir('b')
subdir('c')
+subdir('exe3')
+subdir('exe4')
main = win.compile_resources('rsrc.rc')
diff --git a/test cases/windows/16 gui app/console_prog.c b/test cases/windows/16 gui app/console_prog.c
new file mode 100644
index 0000000..11b7fad
--- /dev/null
+++ b/test cases/windows/16 gui app/console_prog.c
@@ -0,0 +1,3 @@
+int main(int argc, char **argv) {
+ return 0;
+}
diff --git a/test cases/windows/16 gui app/dummy.c b/test cases/windows/16 gui app/dummy.c
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test cases/windows/16 gui app/dummy.c
diff --git a/test cases/windows/17 gui app/gui_app_tester.py b/test cases/windows/16 gui app/gui_app_tester.py
index 9cba806..9cba806 100644
--- a/test cases/windows/17 gui app/gui_app_tester.py
+++ b/test cases/windows/16 gui app/gui_app_tester.py
diff --git a/test cases/windows/17 gui app/gui_prog.c b/test cases/windows/16 gui app/gui_prog.c
index 4bc688a..4bc688a 100644
--- a/test cases/windows/17 gui app/gui_prog.c
+++ b/test cases/windows/16 gui app/gui_prog.c
diff --git a/test cases/windows/17 gui app/meson.build b/test cases/windows/16 gui app/meson.build
index 2435218..2435218 100644
--- a/test cases/windows/17 gui app/meson.build
+++ b/test cases/windows/16 gui app/meson.build