1. Msys builds it for fontconfig, we want DirectWrite
2. The testsuite needs fixes that only exist in master
3. We don't want to bump the required Pango version just for that
We should revert this when those fixes have landed upstream.
Add a gdb script to catch segfaults and launch it using meson --wrapper
And try really hard to make that script safe for Windows/msys, because
we want to use it there.
Sets the value to be used for meson test --maxfail. This is useful when
bringing up a new testrunner or generally when debugging some changes
that cause many test failures.
If not set, we set it to 0, meaning disabled.
Visual Studio 2019 brings C11 support and is actually needed (or best
suited at least) if we are:
* Building with debugging code enabled (/Zc:preprocessor is required)
* Introspection works better on Visual Studio 2019 or later, also due to
the preprocessor improvements.
* Pulling in bleeding edge Cairo (and possibly soon, GLib) already
requires C11 support.
All versions older than Windows 10 are out of support and no longer
receive updates, so we do not want to support them.
We also want to move towards APIs that requires Windows 10 - like
Direct3D 12 - and not having them optional simplifies our code.
See the discussion in !7895 for more details.
3 things you need to know about this change:
1. We use diff(1) in various tests to check generated text against
reference output
2. Windows locates executables not just in $PATH, it also looks in
$cwd and the directory of the current process' binary
3. Multiple tests live together in the same directory
Windows is fun.
We use it everywhere, so it makes sense to enable it everywhere.
For anyone not in the know, defining COBJMACROS makes Micrsoft headers
for COM objects provide C macros so that instead of having to call
foo->lpVtbl->Release();
to unref a COM object, one can call
IFoo_Release (foo);
Note that thes macros are implemented with inheritance as Release()
is defined on the IUnknown base interface (MS' equivalent to GObject)
and would otherwise require
IUnknown_Release ((IUnknown *) foo);
That line works, too - but it is not necessary.
use the modern version using GSubprocess that already exists in
node-parser.
Also change from one function to two - so tests can diff GBytes and
strings, depending on which they prefer.
On Windows, git defaults to maintaining line endings, which means it
changed \n to \r\n on all files it identifies as text. And that includes
our test output.
Luckily diff(1) has an option to undo that. And since we do not care
about line endings in those tests, we can just use it.
We return an empty format list when dmabufs aren't supported, not NULL.
And the sink was treating the empty format list by setting no fourccs
on the caps, which GStreamer conveniently interpreted as "any",
not as "none".