Kairo hat eine Abhängigkeit von FontConfig. FontConfig hat eine Abhängigkeit von Freetype. Ich habe FreeType gebaut, aber wenn ich versuche, FontConfig zu erstellen, erhalte ich Linkfehler, da FreeType HarfBuzz benötigt.Wie baue ich Kairo/Harfbuzz?
Wenn ich versuche, Harfuzz zu bauen, hat es eine Abhängigkeit von FreeType. Somit haben wir eine zirkuläre Abhängigkeit. Die Makefiles sind an dieser Stelle kaputt: Wenn sie versucht, die Tests zu erstellen, können sie keine Verbindung herstellen, da sie Symbole von Harbuzz selbst benötigen. Dies ist lösbar, wenn HarfBuzz in der Verbindungslinie zweimal vorhanden ist. Oder indem ich alle Tests beseitige, was ich getan habe. Das hat dieses Problem gelöst.
Harfuzz hat eine Datei namens "helper-cairo.cc". Wenn ich versuche, das zu kompilieren, klagt es über eine fehlerhafte FontConfig-Headerdatei, so dass eindeutig eine Abhängigkeit von FontConfig besteht. Allerdings kann ich FontConfig nicht erstellen, ohne zuerst HarfBuzz zu bauen!
Ich weiß nicht, wie diese Abhängigkeit gelöst werden soll. Vielleicht kann ich den Cairo-Helfer beim Erstellen von Harfuzz deaktivieren, die resultierende Bibliothek verwenden, um FontConfig zu erstellen, dann HarfBuzz mit der resultierenden FontConfig neu erstellen und FontConfig dann neu erstellen? Es scheint alles ein großes Ärgernis.
Ich baue mit MinGW und Windows DLLs mögen keine ungelösten Symbole, also glaube ich nicht, dass ich das mit geteilten Bibliotheken auflösen kann. Ich bin nicht wirklich sicher, warum ich HarfBuzz brauchen, wenn FontConfig Verknüpfung - vielleicht wird es versucht, eine DLL erstellen :(
Irgendwelche Ideen wie diese zu lösen, ohne dass wichtige Funktionalität zu verlieren