[meson] Update Cairo subproject to 1.17.6
https://github.com/msys2/MINGW-packages/issues/11053
Yes, and it doesn’t fail the msys2 build which uses mingw64 as well. We probably should move building the Windows binaries to the msys2 jobs and keep the cross-compiling ones to the bare minimum (i.e. testing HarfBuzz itself).
We are not actually building Cairo on msys2.
The mingw-w64 compat commit fixing this was https://github.com/mingw-w64/mingw-w64/commit/a3f6d363d534e9d5563a0b7c677889101e6bbd42
One could look into if https://gitlab.freedesktop.org/cairo/cairo/-/blob/521a3a7bdb9299d511dcb1e4f243670141e53847/src/win32/cairo-dwrite-font.cpp#L731 is actually needed. It seems to be a i686 only thing, and setting it to the default alone seems weird. But I don't know anything about it.
Or ifdef it since according to the docs -> " (Not supported on ARM or x64 platforms.)"
(or teach cairo a new build option to skip the new/old dwrite backend)
not sure of that helps you in any way, but maybe gives some context :)
Arch has updated their mingw-w64 package, so this could be re-tried.
Now we can’t even get past glib build!
Now, we are back to Cairo failure, same place, different error:
FAILED: subprojects/cairo/src/libcairo-2.dll.p/win32_cairo-dwrite-font.cpp.obj
i686-w64-mingw32-g++ -Isubprojects/cairo/src/libcairo-2.dll.p -Isubprojects/cairo/src -I../subprojects/cairo/src -Isubprojects/cairo -I../subprojects/cairo -Isubprojects/zlib-1.2.11 -I../subprojects/zlib-1.2.11 -Isubprojects/libpng-1.6.37 -I../subprojects/libpng-1.6.37 -Isubprojects/fontconfig -I../subprojects/fontconfig -I../subprojects/freetype/include -I../subprojects/expat-2.2.9/lib -Isubprojects/pixman/pixman -I../subprojects/pixman/pixman -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wnon-virtual-dtor -Wextra -std=c++11 -fno-rtti -O0 -g -Wno-attributes -Wno-unused-but-set-variable -Wno-missing-field-initializers -Wno-unused-parameter -Wno-long-long -D_REENTRANT -MD -MQ subprojects/cairo/src/libcairo-2.dll.p/win32_cairo-dwrite-font.cpp.obj -MF subprojects/cairo/src/libcairo-2.dll.p/win32_cairo-dwrite-font.cpp.obj.d -o subprojects/cairo/src/libcairo-2.dll.p/win32_cairo-dwrite-font.cpp.obj -c ../subprojects/cairo/src/win32/cairo-dwrite-font.cpp
../subprojects/cairo/src/win32/cairo-dwrite-font.cpp: In member function ‘cairo_fixed_t GeometryRecorder::GetFixedX(const D2D1_POINT_2F&)’:
../subprojects/cairo/src/win32/cairo-dwrite-font.cpp:722:50: error: ‘MCW_PC’ was not declared in this scope
722 | _controlfp_s(&control_word, _CW_DEFAULT, MCW_PC);
| ^~~~~~
../subprojects/cairo/src/win32/cairo-dwrite-font.cpp: In member function ‘cairo_fixed_t GeometryRecorder::GetFixedY(const D2D1_POINT_2F&)’:
../subprojects/cairo/src/win32/cairo-dwrite-font.cpp:729:50: error: ‘MCW_PC’ was not declared in this scope
729 | _controlfp_s(&control_word, _CW_DEFAULT, MCW_PC);
| ^~~~~~
Exited with code exit status 1
Sorry for the wild-goose chase :( No idea why it fails this way.