CONAN-GATE
« | 09 Aug 2020 | »Nachdem meine Firma jetzt schon ein Jahr mit CONAN “herumwerkt”, wollte ich mal auch ein paar Tests bei mir zu Hause mit dem GATE Projekt machen.
Zusammengefasst: Vorerst “hilft” mir das System nicht wirklich … aber in Sachen Buildserver könnte es dennoch nützlich sein.
Herunterladen von Abhängigkeiten
Der wichtigste Anwendungsfall von CONAN ist beim GATE-Projekt aktuell nicht relevant: nämlich das Zusammensuchen mehrerer Bibliotheken.
Ich habe sämtliche zwingend erforderlichen externen Bibliotheken wie
zlib
oder libreSSL
in das Projekt mit allen Sourcen integriert.
Von daher brauche ich CONAN nicht um Daten von außen herunterzuladen.
… mit einer Ausnahme: GTK3
GTK3 wird in erster Linie für die Linux-Builds von GUI Anwendungen gebraucht. Doch für ein effektiveres Debuggen liegen Header und vorkompilierte LIBs auch bei den externen GATE-Bibliotheken für Windows bei.
CMake
sucht diese für den Link-Prozess zusammen mit:
1if(GATE_UI_GTK) 2 target_compile_definitions(${BINARY_NAME} PRIVATE GATE_UI_GTK) 3 4 FIND_PACKAGE(PkgConfig REQUIRED) 5 PKG_CHECK_MODULES(GTK REQUIRED gtk+-3.0) 6 7 INCLUDE_DIRECTORIES(${GTK_INCLUDE_DIRS}) 8 LINK_DIRECTORIES(${GTK_LIBRARY_DIRS}) 9 10 ADD_DEFINITIONS(${GTK_CFLAGS} ${GTK_CFLAGS_OTHER}) 11 TARGET_LINK_LIBRARIES(gateui ${GTK_LIBRARIES}) 12endif()
Doch ob damit wirklich die richtigen Dateien gefunden werden hängt von vielen Konfigurationsdetails ab … vor allem wenn mehrere Versionen von GTK parallel installiert sind.
CONAN könnte diese Problem eleganter lösen, indem ein Requirement auf z.B.:
gtk/3.24.20@bincrafters/stable
gesetzt wird.
Nun bräuchten nur noch die CMake
Include- und Link-Anweisungen gesetzt werden:
und schon sollte CONAN die lästige Aufgabe übernehmen, sich alle Sourcen herunterzuladen und korrekte Link-Pfade zum Projekt zu senden.
Fazit
Ich mache zwar gelegentlich ein paar Test mit CONAN, aber aktuell läuft die CMake Variante für mich ganz gut … so lange man die nötigen Bibliotheken selbst im Betriebssystem korrekt installiert hat.
Ein anderer Aspekt wäre auch das Bereitstellen des GATE-Frameworks durch CONAN. Aber ich denke mal, dass mich dieses Thema vor Mitte 2021 nicht tangieren wird, und dann bleibt fraglich ob überhaupt.
Und deshalb bleibe ich vorerst beim vertrauten Prozedere. Aber hey … wenn sich letztlich weitere Vorteile aus dem System ziehen lassen, wird die Priorität dafür schnell ansteigen.