As a part of meson migration, this builds hb-shape dependencies
using meson subprojects and removes different unrelated mingw
files we've put on source root about things that aren't really our
concern. This also simplifies all the instructions we've put in
README.mingw.md and makes it easy to build the project on
distros that no mingw libraries (such i686-win32-{freetype,glib,...}
are packaged. The known catch is however lack of hb-view as its need
for build of cairo which apparently isn't that straightforward.
Follow up to c184180,
It was raising,
src/hb-ot-layout-common.hh:1067:63: warning: implicit capture of 'this' with a capture default of '=' is deprecated [-Wdeprecated-this-capture]
| hb_filter ([=] (const OffsetTo<TSubTable> &_) { return (this+_).intersects (glyphset, lookup_type); })
^
src/hb-ot-layout-common.hh:1067:19: note: add an explicit capture of 'this' to capture '*this' by reference
| hb_filter ([=] (const OffsetTo<TSubTable> &_) { return (this+_).intersects (glyphset, lookup_type); })
^
, this
and
src/hb-ot-layout-common.hh:2626:38: warning: implicit capture of 'this' with a capture default of '=' is deprecated [-Wdeprecated-this-capture]
{ r.collect_lookups (this, lookup_indexes); })
^
src/hb-ot-layout-common.hh:2625:18: note: add an explicit capture of 'this' to capture '*this' by reference
| hb_apply ([=] (const FeatureTableSubstitutionRecord& r)
^
, this
and
src/hb-ot-hdmx-table.hh:141:44: error: implicit capture of 'this' with a capture default of '=' is deprecated [-Werror,-Wdeprecated-this-capture]
return device_record->widthsZ.as_array (get_num_glyphs ()) [_];
^
src/hb-ot-hdmx-table.hh:137:17: note: add an explicit capture of 'this' to capture '*this' by reference
| hb_map ([=] (hb_codepoint_t _)
^
, this
We are not testing Windows exes in fedora mingw bot, we don't have to as
probably won't go that smoothly and we have real Windows bots anyway
and as wine installation itself is time taking let's remove it
Weird error:
"/root/project/src/hb-iter.hh", line 277: Error: Type name expected instead of "decltype()".
"/root/project/src/hb-iter.hh", line 278: Error: Invalid type while substituting into Iter::item_t.
"/root/project/src/hb-iter.hh", line 317: Error: Type name expected instead of "decltype()".
"/root/project/src/hb-iter.hh", line 318: Error: Invalid type while substituting into Iter::item_t.
Not sure what ancient compiler it is (gcc 4.2?), but didn't like hb_zip SFINAE
apparently:
In file included from /Users/distiller/project/src/hb-aat-layout.cc:28:
In file included from /Users/distiller/project/src/hb-open-type.hh:32:
In file included from /Users/distiller/project/src/hb.hh:642:
/Users/distiller/project/src/hb-iter.hh:364:1: note: candidate template ignored: substitution failure [with A = OT::Coverage, B = OT::OffsetArrayOf<OT::ChainRuleSet>]: non-type template argument does not refer to any declaration
hb_zip (const A& a, const B &b)
^
In file included from /Users/distiller/project/src/hb-aat-layout.cc:37:
In file included from /Users/distiller/project/src/hb-aat-layout-kerx-table.hh:31:
In file included from /Users/distiller/project/src/hb-kern.hh:32:
/Users/distiller/project/src/hb-ot-layout-gpos-table.hh:725:20: error: no matching function for call to 'hb_zip'
for (auto it = hb_zip (this+coverage, pairSet)
^~~~~~
Not going to try to appease.
https://voidlinux.org/ is yet another and different distro written from scratch, thus completely eligible to have a bot here!
Seriously however not that useful yet however but I will try to overload it other tasks later, like our other bots.
No test yet also, couldn't install cairo-devel, will try to fix that later.
Their harfbuzz package source: https://github.com/void-linux/void-packages/blob/master/srcpkgs/harfbuzz/template
Catch missing imports and errors like #1520 and #1521
__E901,E999,F821,F822,F823__ are the "_showstopper_" [flake8](http://flake8.pycqa.org) issues that can halt the runtime with a SyntaxError, NameError, etc. Most other flake8 issues are merely "style violations" -- useful for readability but they do not effect runtime safety.
* F821: undefined name `name`
* F822: undefined name `name` in `__all__`
* F823: local variable name referenced before assignment
* E901: SyntaxError or IndentationError
* E999: SyntaxError -- failed to compile a file into an Abstract Syntax Tree
#define Null(Type) Null<typename hb_remove_const<typename hb_remove_reference<Type>::value>::value>()
raises:
hb-blob.cc: In function 'hb_blob_t* hb_blob_get_empty()':
hb-blob.cc:194: error: using 'typename' outside of template
hb-blob.cc:194: error: using 'typename' outside of template
Removing "typename"s fixes the issue but makes newer compiler fail apparently.
Probably downstream can patch that locally till we get a solution.
run-shape-fuzzer-tests.py automatically runs valgrind if see available
but test/api runs it by request, we probably should normalize the approaches
later
Actually the check is right,
On -myanmar.hh, on that particular switch, OT_C is indic_category_t
but OT_D is myanmar_category_t so we are mixing the types in one variable.
And on -arabic.cc, step can goes one number higher than step_t enum in the
loop so we are actually using it as an unsinged int.