Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix Cairo for Windows #1697

Merged
merged 1 commit into from
Jul 15, 2021
Merged

Conversation

nilason
Copy link
Contributor

@nilason nilason commented Jul 1, 2021

Windows compilation with OSGeo4W fails on building lib/cairodriver:

gcc -shared -o /d/a/grass/grass/dist.x86_64-w64-mingw32/lib/libgrass_cairodriver.8.0.dll -L/d/a/grass/grass/dist.x86_64-w64-mingw32/lib -L/d/a/grass/grass/dist.x86_64-w64-mingw32/lib -Wl,--export-dynamic,--enable-runtime-pseudo-reloc  -L/c/OSGeo4W/lib -L/c/OSGeo4W/bin   OBJ.x86_64-w64-mingw32/box.o OBJ.x86_64-w64-mingw32/color.o OBJ.x86_64-w64-mingw32/draw.o OBJ.x86_64-w64-mingw32/draw_bitmap.o OBJ.x86_64-w64-mingw32/driver.o OBJ.x86_64-w64-mingw32/erase.o OBJ.x86_64-w64-mingw32/graph.o OBJ.x86_64-w64-mingw32/line_width.o OBJ.x86_64-w64-mingw32/raster.o OBJ.x86_64-w64-mingw32/read.o OBJ.x86_64-w64-mingw32/read_bmp.o OBJ.x86_64-w64-mingw32/read_ppm.o OBJ.x86_64-w64-mingw32/read_xid.o OBJ.x86_64-w64-mingw32/set_window.o OBJ.x86_64-w64-mingw32/text.o OBJ.x86_64-w64-mingw32/write.o OBJ.x86_64-w64-mingw32/write_bmp.o OBJ.x86_64-w64-mingw32/write_ppm.o OBJ.x86_64-w64-mingw32/write_xid.o  -lgrass_driver.8.0 -lgrass_gis.8.0 -lintl -LC:/msys64/mingw64/bin/../lib -lcairo -lpng16 -lz -lfontconfig -lfreetype     -liconv 
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe: warning: --export-dynamic is not supported for PE+ targets, did you mean --export-all-symbols?
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe: OBJ.x86_64-w64-mingw32/text.o: in function `set_font_fc':
D:\a\grass\grass\lib\cairodriver/text.c:202: undefined reference to `cairo_ft_font_face_create_for_pattern'
collect2.exe: error: ld returned 1 exit status
make[3]: *** [../../include/Make/Shlib.make:10: /d/a/grass/grass/dist.x86_64-w64-mingw32/lib/libgrass_cairodriver.8.0.dll] Error 1
make[3]: Leaving directory '/d/a/grass/grass/lib/cairodriver'

This is an attempt to address this.

Based on patch at https://github.com/jef-n/OSGeo4W/blob/master/src/grass/osgeo4w/patch.

@nilason nilason added windows Microsoft Windows specific bug Something isn't working labels Jul 1, 2021
@nilason nilason linked an issue Jul 1, 2021 that may be closed by this pull request
@ninsbl
Copy link
Member

ninsbl commented Jul 1, 2021

Thanks! Would be good to get that in as an important step to get the OSGeo4W tests back...

Should probably be backported!?

@nilason
Copy link
Contributor Author

nilason commented Jul 3, 2021

This is most likely not a good solution, will need to look at this closer.

@nilason
Copy link
Contributor Author

nilason commented Jul 3, 2021

Since Cairo 1.10 the call to cairo_ft_font_face_create_for_pattern() requires the definition of CAIRO_HAS_FC_FONT which has fontconfig as requirement.
Looking at the cairo-features.h from http://download.osgeo.org/osgeo4w/testing/x86_64/release/cairo/ CAIRO_HAS_FC_FONT is missing. Is the Cairo lib package not compiled with fontconfig, @jef-n?

@nilason
Copy link
Contributor Author

nilason commented Jul 5, 2021

I'm not sure which library version is being used at present, looking at cairo-features.h from http://download.osgeo.org/osgeo4w/x86/release/cairo/ CAIRO_HAS_FC_FONT=1 is set, which might explain why Cairo has worked this far.
The question is whether "/osgeo4w/testing/x86_64/release/" could be updated with fontconfig support, or dropping it was a deliberate choice. Either way the patch, and my initial PR, is definitely not a good solution.

@hellik
Copy link
Member

hellik commented Jul 5, 2021

I'm not sure which library version is being used at present, looking at cairo-features.h from http://download.osgeo.org/osgeo4w/x86/release/cairo/ CAIRO_HAS_FC_FONT=1 is set, which might explain why Cairo has worked this far.
The question is whether "/osgeo4w/testing/x86_64/release/" could be updated with fontconfig support, or dropping it was a deliberate choice. Either way the patch, and my initial PR, is definitely not a good solution.

It's now OSGeo4W v2:

http://download.osgeo.org/osgeo4w/v2/x86_64/release/cairo/

@nilason
Copy link
Contributor Author

nilason commented Jul 5, 2021

I'm not sure which library version is being used at present, looking at cairo-features.h from http://download.osgeo.org/osgeo4w/x86/release/cairo/ CAIRO_HAS_FC_FONT=1 is set, which might explain why Cairo has worked this far.
The question is whether "/osgeo4w/testing/x86_64/release/" could be updated with fontconfig support, or dropping it was a deliberate choice. Either way the patch, and my initial PR, is definitely not a good solution.

It's now OSGeo4W v2:

http://download.osgeo.org/osgeo4w/v2/x86_64/release/cairo/

Then I assume the patch is applied to that, to make GRASS compile at all (CAIRO_HAS_FC_FONT is not set there either).

@jef-n
Copy link
Contributor

jef-n commented Jul 5, 2021

Then I assume the patch is applied to that, to make GRASS compile at all (CAIRO_HAS_FC_FONT is not set there either).

Sure. Since Nov 2020 without any related reports. I guess fontconfig / cairo is rarely used in GRASS - or GRASS itself is rarely used.

@nilason nilason force-pushed the fix-cairo-build-error-for-win branch from 9f4d83e to 423830f Compare July 6, 2021 15:09
@nilason
Copy link
Contributor Author

nilason commented Jul 6, 2021

Then I assume the patch is applied to that, to make GRASS compile at all (CAIRO_HAS_FC_FONT is not set there either).

Sure. Since Nov 2020 without any related reports. I guess fontconfig / cairo is rarely used in GRASS - or GRASS itself is rarely used.

The Cairo text functions work with the patch, only the Fontconfig parts were disabled. That's why the patch and my initial attempt wasn't good enough for fixing this.

There are three different situations to account to:

  1. Cairo <1.10 has Fontconfig as a requirement (no CAIRO_HAS_FC_FONT)
  2. Cairo => 1.10 compiled with Fontconfig (CAIRO_HAS_FC_FONT is defined)
  3. Cairo => 1.10 compiled without Fontconfig (CAIRO_HAS_FC_FONT is not defined)

Now I updated this PR to take all 3 cases into account. I have tested with a Cairo 1.16 build with Fontconfig support.

@nilason nilason added this to the 7.8.6 milestone Jul 6, 2021
@nilason
Copy link
Contributor Author

nilason commented Jul 6, 2021

I branched #1683, rebased it against master and cherry-picked this Cairo fix. Compilation finished successfully:

...
make[3]: Entering directory '/d/a/grass/grass/lib/cairodriver'
test -d OBJ.x86_64-w64-mingw32 || mkdir -p OBJ.x86_64-w64-mingw32
gcc -I/c/OSGeo4W/include -g -O2   -I/c/OSGeo4W/include -I/d/a/grass/grass/dist.x86_64-w64-mingw32/include -I/d/a/grass/grass/dist.x86_64-w64-mingw32/include  -D_FILE_OFFSET_BITS=64 -I../driver -IC:/msys64/mingw64/bin/../include/cairo -IC:/msys64/mingw64/bin/../include/lzo -IC:/msys64/mingw64/bin/../include -IC:/msys64/mingw64/bin/../include/libpng16 -IC:/msys64/mingw64/bin/../include/freetype2 -IC:/msys64/mingw64/bin/../include/harfbuzz -IC:/msys64/mingw64/bin/../include/glib-2.0 -IC:/msys64/mingw64/bin/../lib/glib-2.0/include -IC:/msys64/mingw64/bin/../include/pixman-1 -mms-bitfields  -I/c/OSGeo4W/include/freetype2 -DPACKAGE=\""grasslibs"\"   -I/d/a/grass/grass/dist.x86_64-w64-mingw32/include -I/d/a/grass/grass/dist.x86_64-w64-mingw32/include -DRELDIR=\"lib/cairodriver\" -o OBJ.x86_64-w64-mingw32/box.o -c box.c
gcc -I/c/OSGeo4W/include -g -O2   -I/c/OSGeo4W/include -I/d/a/grass/grass/dist.x86_64-w64-mingw32/include -I/d/a/grass/grass/dist.x86_64-w64-mingw32/include  -D_FILE_OFFSET_BITS=64 -I../driver -IC:/msys64/mingw64/bin/../include/cairo -IC:/msys64/mingw64/bin/../include/lzo -IC:/msys64/mingw64/bin/../include -IC:/msys64/mingw64/bin/../include/libpng16 -IC:/msys64/mingw64/bin/../include/freetype2 -IC:/msys64/mingw64/bin/../include/harfbuzz -IC:/msys64/mingw64/bin/../include/glib-2.0 -IC:/msys64/mingw64/bin/../lib/glib-2.0/include -IC:/msys64/mingw64/bin/../include/pixman-1 -mms-bitfields  -I/c/OSGeo4W/include/freetype2 -DPACKAGE=\""grasslibs"\"   -I/d/a/grass/grass/dist.x86_64-w64-mingw32/include -I/d/a/grass/grass/dist.x86_64-w64-mingw32/include -DRELDIR=\"lib/cairodriver\" -o OBJ.x86_64-w64-mingw32/color.o -c color.c
gcc -I/c/OSGeo4W/include -g -O2   -I/c/OSGeo4W/include -I/d/a/grass/grass/dist.x86_64-w64-mingw32/include -I/d/a/grass/grass/dist.x86_64-w64-mingw32/include  -D_FILE_OFFSET_BITS=64 -I../driver -IC:/msys64/mingw64/bin/../include/cairo -IC:/msys64/mingw64/bin/../include/lzo -IC:/msys64/mingw64/bin/../include -IC:/msys64/mingw64/bin/../include/libpng16 -IC:/msys64/mingw64/bin/../include/freetype2 -IC:/msys64/mingw64/bin/../include/harfbuzz -IC:/msys64/mingw64/bin/../include/glib-2.0 -IC:/msys64/mingw64/bin/../lib/glib-2.0/include -IC:/msys64/mingw64/bin/../include/pixman-1 -mms-bitfields  -I/c/OSGeo4W/include/freetype2 -DPACKAGE=\""grasslibs"\"   -I/d/a/grass/grass/dist.x86_64-w64-mingw32/include -I/d/a/grass/grass/dist.x86_64-w64-mingw32/include -DRELDIR=\"lib/cairodriver\" -o OBJ.x86_64-w64-mingw32/draw.o -c draw.c
gcc -I/c/OSGeo4W/include -g -O2   -I/c/OSGeo4W/include -I/d/a/grass/grass/dist.x86_64-w64-mingw32/include -I/d/a/grass/grass/dist.x86_64-w64-mingw32/include  -D_FILE_OFFSET_BITS=64 -I../driver -IC:/msys64/mingw64/bin/../include/cairo -IC:/msys64/mingw64/bin/../include/lzo -IC:/msys64/mingw64/bin/../include -IC:/msys64/mingw64/bin/../include/libpng16 -IC:/msys64/mingw64/bin/../include/freetype2 -IC:/msys64/mingw64/bin/../include/harfbuzz -IC:/msys64/mingw64/bin/../include/glib-2.0 -IC:/msys64/mingw64/bin/../lib/glib-2.0/include -IC:/msys64/mingw64/bin/../include/pixman-1 -mms-bitfields  -I/c/OSGeo4W/include/freetype2 -DPACKAGE=\""grasslibs"\"   -I/d/a/grass/grass/dist.x86_64-w64-mingw32/include -I/d/a/grass/grass/dist.x86_64-w64-mingw32/include -DRELDIR=\"lib/cairodriver\" -o OBJ.x86_64-w64-mingw32/draw_bitmap.o -c draw_bitmap.c
gcc -I/c/OSGeo4W/include -g -O2   -I/c/OSGeo4W/include -I/d/a/grass/grass/dist.x86_64-w64-mingw32/include -I/d/a/grass/grass/dist.x86_64-w64-mingw32/include  -D_FILE_OFFSET_BITS=64 -I../driver -IC:/msys64/mingw64/bin/../include/cairo -IC:/msys64/mingw64/bin/../include/lzo -IC:/msys64/mingw64/bin/../include -IC:/msys64/mingw64/bin/../include/libpng16 -IC:/msys64/mingw64/bin/../include/freetype2 -IC:/msys64/mingw64/bin/../include/harfbuzz -IC:/msys64/mingw64/bin/../include/glib-2.0 -IC:/msys64/mingw64/bin/../lib/glib-2.0/include -IC:/msys64/mingw64/bin/../include/pixman-1 -mms-bitfields  -I/c/OSGeo4W/include/freetype2 -DPACKAGE=\""grasslibs"\"   -I/d/a/grass/grass/dist.x86_64-w64-mingw32/include -I/d/a/grass/grass/dist.x86_64-w64-mingw32/include -DRELDIR=\"lib/cairodriver\" -o OBJ.x86_64-w64-mingw32/driver.o -c driver.c
gcc -I/c/OSGeo4W/include -g -O2   -I/c/OSGeo4W/include -I/d/a/grass/grass/dist.x86_64-w64-mingw32/include -I/d/a/grass/grass/dist.x86_64-w64-mingw32/include  -D_FILE_OFFSET_BITS=64 -I../driver -IC:/msys64/mingw64/bin/../include/cairo -IC:/msys64/mingw64/bin/../include/lzo -IC:/msys64/mingw64/bin/../include -IC:/msys64/mingw64/bin/../include/libpng16 -IC:/msys64/mingw64/bin/../include/freetype2 -IC:/msys64/mingw64/bin/../include/harfbuzz -IC:/msys64/mingw64/bin/../include/glib-2.0 -IC:/msys64/mingw64/bin/../lib/glib-2.0/include -IC:/msys64/mingw64/bin/../include/pixman-1 -mms-bitfields  -I/c/OSGeo4W/include/freetype2 -DPACKAGE=\""grasslibs"\"   -I/d/a/grass/grass/dist.x86_64-w64-mingw32/include -I/d/a/grass/grass/dist.x86_64-w64-mingw32/include -DRELDIR=\"lib/cairodriver\" -o OBJ.x86_64-w64-mingw32/erase.o -c erase.c
gcc -I/c/OSGeo4W/include -g -O2   -I/c/OSGeo4W/include -I/d/a/grass/grass/dist.x86_64-w64-mingw32/include -I/d/a/grass/grass/dist.x86_64-w64-mingw32/include  -D_FILE_OFFSET_BITS=64 -I../driver -IC:/msys64/mingw64/bin/../include/cairo -IC:/msys64/mingw64/bin/../include/lzo -IC:/msys64/mingw64/bin/../include -IC:/msys64/mingw64/bin/../include/libpng16 -IC:/msys64/mingw64/bin/../include/freetype2 -IC:/msys64/mingw64/bin/../include/harfbuzz -IC:/msys64/mingw64/bin/../include/glib-2.0 -IC:/msys64/mingw64/bin/../lib/glib-2.0/include -IC:/msys64/mingw64/bin/../include/pixman-1 -mms-bitfields  -I/c/OSGeo4W/include/freetype2 -DPACKAGE=\""grasslibs"\"   -I/d/a/grass/grass/dist.x86_64-w64-mingw32/include -I/d/a/grass/grass/dist.x86_64-w64-mingw32/include -DRELDIR=\"lib/cairodriver\" -o OBJ.x86_64-w64-mingw32/graph.o -c graph.c
gcc -I/c/OSGeo4W/include -g -O2   -I/c/OSGeo4W/include -I/d/a/grass/grass/dist.x86_64-w64-mingw32/include -I/d/a/grass/grass/dist.x86_64-w64-mingw32/include  -D_FILE_OFFSET_BITS=64 -I../driver -IC:/msys64/mingw64/bin/../include/cairo -IC:/msys64/mingw64/bin/../include/lzo -IC:/msys64/mingw64/bin/../include -IC:/msys64/mingw64/bin/../include/libpng16 -IC:/msys64/mingw64/bin/../include/freetype2 -IC:/msys64/mingw64/bin/../include/harfbuzz -IC:/msys64/mingw64/bin/../include/glib-2.0 -IC:/msys64/mingw64/bin/../lib/glib-2.0/include -IC:/msys64/mingw64/bin/../include/pixman-1 -mms-bitfields  -I/c/OSGeo4W/include/freetype2 -DPACKAGE=\""grasslibs"\"   -I/d/a/grass/grass/dist.x86_64-w64-mingw32/include -I/d/a/grass/grass/dist.x86_64-w64-mingw32/include -DRELDIR=\"lib/cairodriver\" -o OBJ.x86_64-w64-mingw32/line_width.o -c line_width.c
gcc -I/c/OSGeo4W/include -g -O2   -I/c/OSGeo4W/include -I/d/a/grass/grass/dist.x86_64-w64-mingw32/include -I/d/a/grass/grass/dist.x86_64-w64-mingw32/include  -D_FILE_OFFSET_BITS=64 -I../driver -IC:/msys64/mingw64/bin/../include/cairo -IC:/msys64/mingw64/bin/../include/lzo -IC:/msys64/mingw64/bin/../include -IC:/msys64/mingw64/bin/../include/libpng16 -IC:/msys64/mingw64/bin/../include/freetype2 -IC:/msys64/mingw64/bin/../include/harfbuzz -IC:/msys64/mingw64/bin/../include/glib-2.0 -IC:/msys64/mingw64/bin/../lib/glib-2.0/include -IC:/msys64/mingw64/bin/../include/pixman-1 -mms-bitfields  -I/c/OSGeo4W/include/freetype2 -DPACKAGE=\""grasslibs"\"   -I/d/a/grass/grass/dist.x86_64-w64-mingw32/include -I/d/a/grass/grass/dist.x86_64-w64-mingw32/include -DRELDIR=\"lib/cairodriver\" -o OBJ.x86_64-w64-mingw32/raster.o -c raster.c
gcc -I/c/OSGeo4W/include -g -O2   -I/c/OSGeo4W/include -I/d/a/grass/grass/dist.x86_64-w64-mingw32/include -I/d/a/grass/grass/dist.x86_64-w64-mingw32/include  -D_FILE_OFFSET_BITS=64 -I../driver -IC:/msys64/mingw64/bin/../include/cairo -IC:/msys64/mingw64/bin/../include/lzo -IC:/msys64/mingw64/bin/../include -IC:/msys64/mingw64/bin/../include/libpng16 -IC:/msys64/mingw64/bin/../include/freetype2 -IC:/msys64/mingw64/bin/../include/harfbuzz -IC:/msys64/mingw64/bin/../include/glib-2.0 -IC:/msys64/mingw64/bin/../lib/glib-2.0/include -IC:/msys64/mingw64/bin/../include/pixman-1 -mms-bitfields  -I/c/OSGeo4W/include/freetype2 -DPACKAGE=\""grasslibs"\"   -I/d/a/grass/grass/dist.x86_64-w64-mingw32/include -I/d/a/grass/grass/dist.x86_64-w64-mingw32/include -DRELDIR=\"lib/cairodriver\" -o OBJ.x86_64-w64-mingw32/read.o -c read.c
gcc -I/c/OSGeo4W/include -g -O2   -I/c/OSGeo4W/include -I/d/a/grass/grass/dist.x86_64-w64-mingw32/include -I/d/a/grass/grass/dist.x86_64-w64-mingw32/include  -D_FILE_OFFSET_BITS=64 -I../driver -IC:/msys64/mingw64/bin/../include/cairo -IC:/msys64/mingw64/bin/../include/lzo -IC:/msys64/mingw64/bin/../include -IC:/msys64/mingw64/bin/../include/libpng16 -IC:/msys64/mingw64/bin/../include/freetype2 -IC:/msys64/mingw64/bin/../include/harfbuzz -IC:/msys64/mingw64/bin/../include/glib-2.0 -IC:/msys64/mingw64/bin/../lib/glib-2.0/include -IC:/msys64/mingw64/bin/../include/pixman-1 -mms-bitfields  -I/c/OSGeo4W/include/freetype2 -DPACKAGE=\""grasslibs"\"   -I/d/a/grass/grass/dist.x86_64-w64-mingw32/include -I/d/a/grass/grass/dist.x86_64-w64-mingw32/include -DRELDIR=\"lib/cairodriver\" -o OBJ.x86_64-w64-mingw32/read_bmp.o -c read_bmp.c
gcc -I/c/OSGeo4W/include -g -O2   -I/c/OSGeo4W/include -I/d/a/grass/grass/dist.x86_64-w64-mingw32/include -I/d/a/grass/grass/dist.x86_64-w64-mingw32/include  -D_FILE_OFFSET_BITS=64 -I../driver -IC:/msys64/mingw64/bin/../include/cairo -IC:/msys64/mingw64/bin/../include/lzo -IC:/msys64/mingw64/bin/../include -IC:/msys64/mingw64/bin/../include/libpng16 -IC:/msys64/mingw64/bin/../include/freetype2 -IC:/msys64/mingw64/bin/../include/harfbuzz -IC:/msys64/mingw64/bin/../include/glib-2.0 -IC:/msys64/mingw64/bin/../lib/glib-2.0/include -IC:/msys64/mingw64/bin/../include/pixman-1 -mms-bitfields  -I/c/OSGeo4W/include/freetype2 -DPACKAGE=\""grasslibs"\"   -I/d/a/grass/grass/dist.x86_64-w64-mingw32/include -I/d/a/grass/grass/dist.x86_64-w64-mingw32/include -DRELDIR=\"lib/cairodriver\" -o OBJ.x86_64-w64-mingw32/read_ppm.o -c read_ppm.c
gcc -I/c/OSGeo4W/include -g -O2   -I/c/OSGeo4W/include -I/d/a/grass/grass/dist.x86_64-w64-mingw32/include -I/d/a/grass/grass/dist.x86_64-w64-mingw32/include  -D_FILE_OFFSET_BITS=64 -I../driver -IC:/msys64/mingw64/bin/../include/cairo -IC:/msys64/mingw64/bin/../include/lzo -IC:/msys64/mingw64/bin/../include -IC:/msys64/mingw64/bin/../include/libpng16 -IC:/msys64/mingw64/bin/../include/freetype2 -IC:/msys64/mingw64/bin/../include/harfbuzz -IC:/msys64/mingw64/bin/../include/glib-2.0 -IC:/msys64/mingw64/bin/../lib/glib-2.0/include -IC:/msys64/mingw64/bin/../include/pixman-1 -mms-bitfields  -I/c/OSGeo4W/include/freetype2 -DPACKAGE=\""grasslibs"\"   -I/d/a/grass/grass/dist.x86_64-w64-mingw32/include -I/d/a/grass/grass/dist.x86_64-w64-mingw32/include -DRELDIR=\"lib/cairodriver\" -o OBJ.x86_64-w64-mingw32/read_xid.o -c read_xid.c
gcc -I/c/OSGeo4W/include -g -O2   -I/c/OSGeo4W/include -I/d/a/grass/grass/dist.x86_64-w64-mingw32/include -I/d/a/grass/grass/dist.x86_64-w64-mingw32/include  -D_FILE_OFFSET_BITS=64 -I../driver -IC:/msys64/mingw64/bin/../include/cairo -IC:/msys64/mingw64/bin/../include/lzo -IC:/msys64/mingw64/bin/../include -IC:/msys64/mingw64/bin/../include/libpng16 -IC:/msys64/mingw64/bin/../include/freetype2 -IC:/msys64/mingw64/bin/../include/harfbuzz -IC:/msys64/mingw64/bin/../include/glib-2.0 -IC:/msys64/mingw64/bin/../lib/glib-2.0/include -IC:/msys64/mingw64/bin/../include/pixman-1 -mms-bitfields  -I/c/OSGeo4W/include/freetype2 -DPACKAGE=\""grasslibs"\"   -I/d/a/grass/grass/dist.x86_64-w64-mingw32/include -I/d/a/grass/grass/dist.x86_64-w64-mingw32/include -DRELDIR=\"lib/cairodriver\" -o OBJ.x86_64-w64-mingw32/set_window.o -c set_window.c
gcc -I/c/OSGeo4W/include -g -O2   -I/c/OSGeo4W/include -I/d/a/grass/grass/dist.x86_64-w64-mingw32/include -I/d/a/grass/grass/dist.x86_64-w64-mingw32/include  -D_FILE_OFFSET_BITS=64 -I../driver -IC:/msys64/mingw64/bin/../include/cairo -IC:/msys64/mingw64/bin/../include/lzo -IC:/msys64/mingw64/bin/../include -IC:/msys64/mingw64/bin/../include/libpng16 -IC:/msys64/mingw64/bin/../include/freetype2 -IC:/msys64/mingw64/bin/../include/harfbuzz -IC:/msys64/mingw64/bin/../include/glib-2.0 -IC:/msys64/mingw64/bin/../lib/glib-2.0/include -IC:/msys64/mingw64/bin/../include/pixman-1 -mms-bitfields  -I/c/OSGeo4W/include/freetype2 -DPACKAGE=\""grasslibs"\"   -I/d/a/grass/grass/dist.x86_64-w64-mingw32/include -I/d/a/grass/grass/dist.x86_64-w64-mingw32/include -DRELDIR=\"lib/cairodriver\" -o OBJ.x86_64-w64-mingw32/text.o -c text.c
gcc -I/c/OSGeo4W/include -g -O2   -I/c/OSGeo4W/include -I/d/a/grass/grass/dist.x86_64-w64-mingw32/include -I/d/a/grass/grass/dist.x86_64-w64-mingw32/include  -D_FILE_OFFSET_BITS=64 -I../driver -IC:/msys64/mingw64/bin/../include/cairo -IC:/msys64/mingw64/bin/../include/lzo -IC:/msys64/mingw64/bin/../include -IC:/msys64/mingw64/bin/../include/libpng16 -IC:/msys64/mingw64/bin/../include/freetype2 -IC:/msys64/mingw64/bin/../include/harfbuzz -IC:/msys64/mingw64/bin/../include/glib-2.0 -IC:/msys64/mingw64/bin/../lib/glib-2.0/include -IC:/msys64/mingw64/bin/../include/pixman-1 -mms-bitfields  -I/c/OSGeo4W/include/freetype2 -DPACKAGE=\""grasslibs"\"   -I/d/a/grass/grass/dist.x86_64-w64-mingw32/include -I/d/a/grass/grass/dist.x86_64-w64-mingw32/include -DRELDIR=\"lib/cairodriver\" -o OBJ.x86_64-w64-mingw32/write.o -c write.c
gcc -I/c/OSGeo4W/include -g -O2   -I/c/OSGeo4W/include -I/d/a/grass/grass/dist.x86_64-w64-mingw32/include -I/d/a/grass/grass/dist.x86_64-w64-mingw32/include  -D_FILE_OFFSET_BITS=64 -I../driver -IC:/msys64/mingw64/bin/../include/cairo -IC:/msys64/mingw64/bin/../include/lzo -IC:/msys64/mingw64/bin/../include -IC:/msys64/mingw64/bin/../include/libpng16 -IC:/msys64/mingw64/bin/../include/freetype2 -IC:/msys64/mingw64/bin/../include/harfbuzz -IC:/msys64/mingw64/bin/../include/glib-2.0 -IC:/msys64/mingw64/bin/../lib/glib-2.0/include -IC:/msys64/mingw64/bin/../include/pixman-1 -mms-bitfields  -I/c/OSGeo4W/include/freetype2 -DPACKAGE=\""grasslibs"\"   -I/d/a/grass/grass/dist.x86_64-w64-mingw32/include -I/d/a/grass/grass/dist.x86_64-w64-mingw32/include -DRELDIR=\"lib/cairodriver\" -o OBJ.x86_64-w64-mingw32/write_bmp.o -c write_bmp.c
gcc -I/c/OSGeo4W/include -g -O2   -I/c/OSGeo4W/include -I/d/a/grass/grass/dist.x86_64-w64-mingw32/include -I/d/a/grass/grass/dist.x86_64-w64-mingw32/include  -D_FILE_OFFSET_BITS=64 -I../driver -IC:/msys64/mingw64/bin/../include/cairo -IC:/msys64/mingw64/bin/../include/lzo -IC:/msys64/mingw64/bin/../include -IC:/msys64/mingw64/bin/../include/libpng16 -IC:/msys64/mingw64/bin/../include/freetype2 -IC:/msys64/mingw64/bin/../include/harfbuzz -IC:/msys64/mingw64/bin/../include/glib-2.0 -IC:/msys64/mingw64/bin/../lib/glib-2.0/include -IC:/msys64/mingw64/bin/../include/pixman-1 -mms-bitfields  -I/c/OSGeo4W/include/freetype2 -DPACKAGE=\""grasslibs"\"   -I/d/a/grass/grass/dist.x86_64-w64-mingw32/include -I/d/a/grass/grass/dist.x86_64-w64-mingw32/include -DRELDIR=\"lib/cairodriver\" -o OBJ.x86_64-w64-mingw32/write_ppm.o -c write_ppm.c
gcc -I/c/OSGeo4W/include -g -O2   -I/c/OSGeo4W/include -I/d/a/grass/grass/dist.x86_64-w64-mingw32/include -I/d/a/grass/grass/dist.x86_64-w64-mingw32/include  -D_FILE_OFFSET_BITS=64 -I../driver -IC:/msys64/mingw64/bin/../include/cairo -IC:/msys64/mingw64/bin/../include/lzo -IC:/msys64/mingw64/bin/../include -IC:/msys64/mingw64/bin/../include/libpng16 -IC:/msys64/mingw64/bin/../include/freetype2 -IC:/msys64/mingw64/bin/../include/harfbuzz -IC:/msys64/mingw64/bin/../include/glib-2.0 -IC:/msys64/mingw64/bin/../lib/glib-2.0/include -IC:/msys64/mingw64/bin/../include/pixman-1 -mms-bitfields  -I/c/OSGeo4W/include/freetype2 -DPACKAGE=\""grasslibs"\"   -I/d/a/grass/grass/dist.x86_64-w64-mingw32/include -I/d/a/grass/grass/dist.x86_64-w64-mingw32/include -DRELDIR=\"lib/cairodriver\" -o OBJ.x86_64-w64-mingw32/write_xid.o -c write_xid.c
gcc -shared -o /d/a/grass/grass/dist.x86_64-w64-mingw32/lib/libgrass_cairodriver.8.0.dll -L/d/a/grass/grass/dist.x86_64-w64-mingw32/lib -L/d/a/grass/grass/dist.x86_64-w64-mingw32/lib -Wl,--export-dynamic,--enable-runtime-pseudo-reloc  -L/c/OSGeo4W/lib -L/c/OSGeo4W/bin   OBJ.x86_64-w64-mingw32/box.o OBJ.x86_64-w64-mingw32/color.o OBJ.x86_64-w64-mingw32/draw.o OBJ.x86_64-w64-mingw32/draw_bitmap.o OBJ.x86_64-w64-mingw32/driver.o OBJ.x86_64-w64-mingw32/erase.o OBJ.x86_64-w64-mingw32/graph.o OBJ.x86_64-w64-mingw32/line_width.o OBJ.x86_64-w64-mingw32/raster.o OBJ.x86_64-w64-mingw32/read.o OBJ.x86_64-w64-mingw32/read_bmp.o OBJ.x86_64-w64-mingw32/read_ppm.o OBJ.x86_64-w64-mingw32/read_xid.o OBJ.x86_64-w64-mingw32/set_window.o OBJ.x86_64-w64-mingw32/text.o OBJ.x86_64-w64-mingw32/write.o OBJ.x86_64-w64-mingw32/write_bmp.o OBJ.x86_64-w64-mingw32/write_ppm.o OBJ.x86_64-w64-mingw32/write_xid.o  -lgrass_driver.8.0 -lgrass_gis.8.0 -lintl -LC:/msys64/mingw64/bin/../lib -lcairo -lpng16 -lz -lfontconfig -lfreetype     -liconv 
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe: warning: --export-dynamic is not supported for PE+ targets, did you mean --export-all-symbols?
if [ "cairodriver" != "" -a -f "cairodriver".html ] ; then make html ; fi
make[4]: Entering directory '/d/a/grass/grass/lib/cairodriver'
if [ "" != "" ] ; then GISRC=/d/a/grass/grass/dist.x86_64-w64-mingw32/demolocation/.grassrc80 GISBASE=D:/a/grass/grass/dist.x86_64-w64-mingw32 PATH="/d/a/grass/grass/dist.x86_64-w64-mingw32/bin:/d/a/grass/grass/dist.x86_64-w64-mingw32/bin:/d/a/grass/grass/dist.x86_64-w64-mingw32/scripts:$PATH" PYTHONPATH="D:/a/grass/grass/dist.x86_64-w64-mingw32/etc/python;D:/a/grass/grass/dist.x86_64-w64-mingw32/gui/wxpython;$PYTHONPATH" PATH="/d/a/grass/grass/dist.x86_64-w64-mingw32/bin:/d/a/grass/grass/dist.x86_64-w64-mingw32/bin:/d/a/grass/grass/dist.x86_64-w64-mingw32/scripts:/d/a/grass/grass/dist.x86_64-w64-mingw32/lib:/d/a/grass/grass/dist.x86_64-w64-mingw32/lib:/mingw64/bin:/c/OSGeo4W/bin:/usr/bin" LC_ALL=C LANG=C LANGUAGE=C  --html-description < /dev/null | grep -v '</body>\|</html>' > cairodriver.tmp.html ; fi
VERSION_NUMBER=8.0.dev VERSION_DATE=2021 MODULE_TOPDIR=../.. \
        python3 /d/a/grass/grass/dist.x86_64-w64-mingw32/utils/mkhtml.py cairodriver > /d/a/grass/grass/dist.x86_64-w64-mingw32/docs/html/cairodriver.html
VERSION_NUMBER=8.0.dev /d/a/grass/grass/dist.x86_64-w64-mingw32/utils/g.html2man.py "/d/a/grass/grass/dist.x86_64-w64-mingw32/docs/html/cairodriver.html" "/d/a/grass/grass/dist.x86_64-w64-mingw32/docs/man/man1/cairodriver.1"
make[4]: Leaving directory '/d/a/grass/grass/lib/cairodriver'
make[3]: Leaving directory '/d/a/grass/grass/lib/cairodriver'
...

make[1]: Leaving directory '/d/a/grass/grass'
make manifests
make[1]: Entering directory '/d/a/grass/grass'
make[1]: Nothing to be done for 'manifests'.
make[1]: Leaving directory '/d/a/grass/grass'
GRASS GIS 8.0.dev c2a87b5 compilation log
--------------------------------------------------
Started compilation: Tue, Jul  6, 2021  6:55:19 PM
--
Errors in:
No errors detected.
--
Finished compilation: Tue, Jul  6, 2021  7:12:28 PM

...

@jef-n
Copy link
Contributor

jef-n commented Jul 7, 2021

So I take it a missing fontconfig in cairo isn't a problem or restriction for GRASS?

@nilason
Copy link
Contributor Author

nilason commented Jul 7, 2021

So I take it a missing fontconfig in cairo isn't a problem or restriction for GRASS?

My understanding is there are more possibilities with fontconfg, e.g. I get:

d.mon start=wx1

# without fontconfig
d.fontlist | grep "Avenir*"
Avenir
Avenir Next
Avenir Next Condensed

# with fontconfig
d.fontlist | grep "Avenir*"
Avenir
Avenir Next
Avenir Next Condensed
Avenir Next Condensed:Bold
Avenir Next Condensed:Bold Italic
Avenir Next Condensed:Demi Bold
Avenir Next Condensed:Demi Bold Italic
Avenir Next Condensed:Heavy
Avenir Next Condensed:Heavy Italic
Avenir Next Condensed:Italic
Avenir Next Condensed:Medium
Avenir Next Condensed:Medium Italic
Avenir Next Condensed:Regular
Avenir Next Condensed:Ultra Light
Avenir Next Condensed:Ultra Light Italic
Avenir Next:Bold
Avenir Next:Bold Italic
Avenir Next:Demi Bold
Avenir Next:Demi Bold Italic
Avenir Next:Heavy
Avenir Next:Heavy Italic
Avenir Next:Italic
Avenir Next:Medium
Avenir Next:Medium Italic
Avenir Next:Regular
Avenir Next:Ultra Light
Avenir Next:Ultra Light Italic
Avenir:Black
Avenir:Black Oblique
Avenir:Book
Avenir:Book Oblique
Avenir:Heavy
Avenir:Heavy Oblique
Avenir:Light
Avenir:Light Oblique
Avenir:Medium
Avenir:Medium Oblique
Avenir:Oblique
Avenir:Roman

It shouldn't be a problem though without fontconfig, I believe FreeType2 is looking up available fonts in the limited manner.
You may check out with:

d.mon start=wx1
d.fontlist

and compare with what should be available on your system .

@ninsbl
Copy link
Member

ninsbl commented Jul 8, 2021

Thanks @nilason for digging into this! Do you consider this to be ready to be merged?

@nilason
Copy link
Contributor Author

nilason commented Jul 10, 2021

Thanks @nilason for digging into this! Do you consider this to be ready to be merged?

Yes, I think this can safely be merged.

@nilason
Copy link
Contributor Author

nilason commented Jul 12, 2021

I will leave this open just a couple of days more, I there are no objections I will proceed with merging and back porting.

@nilason nilason merged commit 1e9323e into OSGeo:master Jul 15, 2021
nilason added a commit that referenced this pull request Jul 15, 2021
Changes with Cairo 1.10, lead to three different situations to account to regarding
Fontconfig support:

- Cairo <1.10 has Fontconfig as a requirement (no CAIRO_HAS_FC_FONT)
- Cairo => 1.10 compiled with Fontconfig (CAIRO_HAS_FC_FONT is defined)
- Cairo => 1.10 compiled without Fontconfig (CAIRO_HAS_FC_FONT is not defined)

This updates to take all cases into consideration.
@nilason
Copy link
Contributor Author

nilason commented Jul 15, 2021

Now I merged to master and backported to 7.8 branch.

@nilason nilason deleted the fix-cairo-build-error-for-win branch July 15, 2021 18:20
a0x8o added a commit to a0x8o/grass that referenced this pull request Jul 19, 2021
Changes with Cairo 1.10, lead to three different situations to account to regarding
Fontconfig support:

- Cairo <1.10 has Fontconfig as a requirement (no CAIRO_HAS_FC_FONT)
- Cairo => 1.10 compiled with Fontconfig (CAIRO_HAS_FC_FONT is defined)
- Cairo => 1.10 compiled without Fontconfig (CAIRO_HAS_FC_FONT is not defined)

This updates to take all cases into consideration.
ninsbl pushed a commit to ninsbl/grass that referenced this pull request Oct 26, 2022
Changes with Cairo 1.10, lead to three different situations to account to regarding
Fontconfig support:

- Cairo <1.10 has Fontconfig as a requirement (no CAIRO_HAS_FC_FONT)
- Cairo => 1.10 compiled with Fontconfig (CAIRO_HAS_FC_FONT is defined)
- Cairo => 1.10 compiled without Fontconfig (CAIRO_HAS_FC_FONT is not defined)

This updates to take all cases into consideration.
ninsbl pushed a commit to ninsbl/grass that referenced this pull request Feb 17, 2023
Changes with Cairo 1.10, lead to three different situations to account to regarding
Fontconfig support:

- Cairo <1.10 has Fontconfig as a requirement (no CAIRO_HAS_FC_FONT)
- Cairo => 1.10 compiled with Fontconfig (CAIRO_HAS_FC_FONT is defined)
- Cairo => 1.10 compiled without Fontconfig (CAIRO_HAS_FC_FONT is not defined)

This updates to take all cases into consideration.
a0x8o added a commit to a0x8o/grass that referenced this pull request May 9, 2024
Changes with Cairo 1.10, lead to three different situations to account to regarding
Fontconfig support:

- Cairo <1.10 has Fontconfig as a requirement (no CAIRO_HAS_FC_FONT)
- Cairo => 1.10 compiled with Fontconfig (CAIRO_HAS_FC_FONT is defined)
- Cairo => 1.10 compiled without Fontconfig (CAIRO_HAS_FC_FONT is not defined)

This updates to take all cases into consideration.
a0x8o added a commit to a0x8o/grass that referenced this pull request May 21, 2024
Changes with Cairo 1.10, lead to three different situations to account to regarding
Fontconfig support:

- Cairo <1.10 has Fontconfig as a requirement (no CAIRO_HAS_FC_FONT)
- Cairo => 1.10 compiled with Fontconfig (CAIRO_HAS_FC_FONT is defined)
- Cairo => 1.10 compiled without Fontconfig (CAIRO_HAS_FC_FONT is not defined)

This updates to take all cases into consideration.
a0x8o added a commit to a0x8o/grass that referenced this pull request Jun 3, 2024
Changes with Cairo 1.10, lead to three different situations to account to regarding
Fontconfig support:

- Cairo <1.10 has Fontconfig as a requirement (no CAIRO_HAS_FC_FONT)
- Cairo => 1.10 compiled with Fontconfig (CAIRO_HAS_FC_FONT is defined)
- Cairo => 1.10 compiled without Fontconfig (CAIRO_HAS_FC_FONT is not defined)

This updates to take all cases into consideration.
a0x8o added a commit to a0x8o/grass that referenced this pull request Jun 17, 2024
Changes with Cairo 1.10, lead to three different situations to account to regarding
Fontconfig support:

- Cairo <1.10 has Fontconfig as a requirement (no CAIRO_HAS_FC_FONT)
- Cairo => 1.10 compiled with Fontconfig (CAIRO_HAS_FC_FONT is defined)
- Cairo => 1.10 compiled without Fontconfig (CAIRO_HAS_FC_FONT is not defined)

This updates to take all cases into consideration.
a0x8o added a commit to a0x8o/grass that referenced this pull request Jun 17, 2024
Changes with Cairo 1.10, lead to three different situations to account to regarding
Fontconfig support:

- Cairo <1.10 has Fontconfig as a requirement (no CAIRO_HAS_FC_FONT)
- Cairo => 1.10 compiled with Fontconfig (CAIRO_HAS_FC_FONT is defined)
- Cairo => 1.10 compiled without Fontconfig (CAIRO_HAS_FC_FONT is not defined)

This updates to take all cases into consideration.
a0x8o added a commit to a0x8o/grass that referenced this pull request Jun 27, 2024
Changes with Cairo 1.10, lead to three different situations to account to regarding
Fontconfig support:

- Cairo <1.10 has Fontconfig as a requirement (no CAIRO_HAS_FC_FONT)
- Cairo => 1.10 compiled with Fontconfig (CAIRO_HAS_FC_FONT is defined)
- Cairo => 1.10 compiled without Fontconfig (CAIRO_HAS_FC_FONT is not defined)

This updates to take all cases into consideration.
a0x8o added a commit to a0x8o/grass that referenced this pull request Jul 2, 2024
Changes with Cairo 1.10, lead to three different situations to account to regarding
Fontconfig support:

- Cairo <1.10 has Fontconfig as a requirement (no CAIRO_HAS_FC_FONT)
- Cairo => 1.10 compiled with Fontconfig (CAIRO_HAS_FC_FONT is defined)
- Cairo => 1.10 compiled without Fontconfig (CAIRO_HAS_FC_FONT is not defined)

This updates to take all cases into consideration.
a0x8o added a commit to a0x8o/grass that referenced this pull request Jul 10, 2024
Changes with Cairo 1.10, lead to three different situations to account to regarding
Fontconfig support:

- Cairo <1.10 has Fontconfig as a requirement (no CAIRO_HAS_FC_FONT)
- Cairo => 1.10 compiled with Fontconfig (CAIRO_HAS_FC_FONT is defined)
- Cairo => 1.10 compiled without Fontconfig (CAIRO_HAS_FC_FONT is not defined)

This updates to take all cases into consideration.
a0x8o added a commit to a0x8o/grass that referenced this pull request Jul 23, 2024
Changes with Cairo 1.10, lead to three different situations to account to regarding
Fontconfig support:

- Cairo <1.10 has Fontconfig as a requirement (no CAIRO_HAS_FC_FONT)
- Cairo => 1.10 compiled with Fontconfig (CAIRO_HAS_FC_FONT is defined)
- Cairo => 1.10 compiled without Fontconfig (CAIRO_HAS_FC_FONT is not defined)

This updates to take all cases into consideration.
a0x8o added a commit to a0x8o/grass that referenced this pull request Jul 23, 2024
Changes with Cairo 1.10, lead to three different situations to account to regarding
Fontconfig support:

- Cairo <1.10 has Fontconfig as a requirement (no CAIRO_HAS_FC_FONT)
- Cairo => 1.10 compiled with Fontconfig (CAIRO_HAS_FC_FONT is defined)
- Cairo => 1.10 compiled without Fontconfig (CAIRO_HAS_FC_FONT is not defined)

This updates to take all cases into consideration.
a0x8o added a commit to a0x8o/grass that referenced this pull request Jul 31, 2024
Changes with Cairo 1.10, lead to three different situations to account to regarding
Fontconfig support:

- Cairo <1.10 has Fontconfig as a requirement (no CAIRO_HAS_FC_FONT)
- Cairo => 1.10 compiled with Fontconfig (CAIRO_HAS_FC_FONT is defined)
- Cairo => 1.10 compiled without Fontconfig (CAIRO_HAS_FC_FONT is not defined)

This updates to take all cases into consideration.
a0x8o added a commit to a0x8o/grass that referenced this pull request Aug 13, 2024
Changes with Cairo 1.10, lead to three different situations to account to regarding
Fontconfig support:

- Cairo <1.10 has Fontconfig as a requirement (no CAIRO_HAS_FC_FONT)
- Cairo => 1.10 compiled with Fontconfig (CAIRO_HAS_FC_FONT is defined)
- Cairo => 1.10 compiled without Fontconfig (CAIRO_HAS_FC_FONT is not defined)

This updates to take all cases into consideration.
a0x8o added a commit to a0x8o/grass that referenced this pull request Aug 23, 2024
Changes with Cairo 1.10, lead to three different situations to account to regarding
Fontconfig support:

- Cairo <1.10 has Fontconfig as a requirement (no CAIRO_HAS_FC_FONT)
- Cairo => 1.10 compiled with Fontconfig (CAIRO_HAS_FC_FONT is defined)
- Cairo => 1.10 compiled without Fontconfig (CAIRO_HAS_FC_FONT is not defined)

This updates to take all cases into consideration.
a0x8o added a commit to a0x8o/grass that referenced this pull request Sep 5, 2024
Changes with Cairo 1.10, lead to three different situations to account to regarding
Fontconfig support:

- Cairo <1.10 has Fontconfig as a requirement (no CAIRO_HAS_FC_FONT)
- Cairo => 1.10 compiled with Fontconfig (CAIRO_HAS_FC_FONT is defined)
- Cairo => 1.10 compiled without Fontconfig (CAIRO_HAS_FC_FONT is not defined)

This updates to take all cases into consideration.
a0x8o added a commit to a0x8o/grass that referenced this pull request Sep 5, 2024
Changes with Cairo 1.10, lead to three different situations to account to regarding
Fontconfig support:

- Cairo <1.10 has Fontconfig as a requirement (no CAIRO_HAS_FC_FONT)
- Cairo => 1.10 compiled with Fontconfig (CAIRO_HAS_FC_FONT is defined)
- Cairo => 1.10 compiled without Fontconfig (CAIRO_HAS_FC_FONT is not defined)

This updates to take all cases into consideration.
a0x8o added a commit to a0x8o/grass that referenced this pull request Sep 5, 2024
Changes with Cairo 1.10, lead to three different situations to account to regarding
Fontconfig support:

- Cairo <1.10 has Fontconfig as a requirement (no CAIRO_HAS_FC_FONT)
- Cairo => 1.10 compiled with Fontconfig (CAIRO_HAS_FC_FONT is defined)
- Cairo => 1.10 compiled without Fontconfig (CAIRO_HAS_FC_FONT is not defined)

This updates to take all cases into consideration.
a0x8o added a commit to a0x8o/grass that referenced this pull request Sep 5, 2024
Changes with Cairo 1.10, lead to three different situations to account to regarding
Fontconfig support:

- Cairo <1.10 has Fontconfig as a requirement (no CAIRO_HAS_FC_FONT)
- Cairo => 1.10 compiled with Fontconfig (CAIRO_HAS_FC_FONT is defined)
- Cairo => 1.10 compiled without Fontconfig (CAIRO_HAS_FC_FONT is not defined)

This updates to take all cases into consideration.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working windows Microsoft Windows specific
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Bug] winGRASS master compilation error with cairo-1.17.2
4 participants