The FT_CONFIG_CONFIG_H macro is only set within freetype implementation targets, which can lead to incorrect config headers being included from other build targets.
When compiling with an #error preprocessor directive in /third_party/freetype/src/include/freetype/config/ftheader.h:110, I could see the problem arising in at least these places:
In file included from ../../third_party/skia/src/ports/SkFontHost_FreeType_common.cpp:17:
In file included from ../../third_party/freetype/src/include/ft2build.h:37:
../../third_party/freetype/src/include/freetype/config/ftheader.h:110:2: error: "FT_CONFIG_CONFIG_H not defined"
In file included from ../../third_party/harfbuzz-ng/src/hb-ft.cc:32:
In file included from ../../third_party/harfbuzz-ng/src/hb-ft.h:34:
In file included from ../../third_party/freetype/src/include/ft2build.h:37:
../../third_party/freetype/src/include/freetype/config/ftheader.h:110:2: error: "FT_CONFIG_CONFIG_H not defined"
In file included from ../../third_party/skia/src/ports/SkFontHost_FreeType.cpp:31:
In file included from ../../third_party/freetype/src/include/ft2build.h:37:
../../third_party/freetype/src/include/freetype/config/ftheader.h:110:2: error: "FT_CONFIG_CONFIG_H not defined"
Comment 1 by bugdroid1@chromium.org
, Oct 11 2017