CMake, Windows und die OpenEXR Libs

Programmiersprachen, APIs, Bibliotheken, Open Source Engines, Debugging, Quellcode Fehler und alles was mit praktischer Programmierung zu tun hat.
Antworten
Tiles

CMake, Windows und die OpenEXR Libs

Beitrag von Tiles »

Ich bins mal wieder, der Verrückte der Blender forkt ^^

Ich clinche immer mal wieder mit dem Cmake Problem rum dass die OpenEXR Libs nur teilweise gefunden werden.

Eine Lösung habe ich dafür aber bisher nicht gefunden. Der kuriose Teil ist dass eine der fünf Libs gefunden wird. Die anderen Vier aber nicht. Wenn keine gefunden wird wäre es offensichtlich. Aber es wird eben eine gefunden. Kann mich jemand von euch bitte in die richtige Richtung schubsen? Was ist denn hier das Problem? :)

Im Anhang befindet sich die entsprechende Cmake Datei.
Dateianhänge
ynoevrything.jpg
CMakeLists.zip
(25.9 KiB) 307-mal heruntergeladen
Benutzeravatar
mnemonix
Establishment
Beiträge: 101
Registriert: 09.04.2010, 20:38

Re: CMake, Windows und die OpenEXR Libs

Beitrag von mnemonix »

Hallo verrückter Blender-Forker :D ,

meine Vermutung ist, dass nur die eine Lib und der Include-Pfad über den find_package-Befehl gefunden wurden und der Rest eben nicht. Somit wurden auch nur die entsprechenden Variablen gesetzt. Wie im deinem angefügten CMake-Skript zu sehen ist (if (NOT OPENEXR_FOUND)), versucht er darauf den Rest mit hardgecodeten Pfaden und Lib-Namen zu finden. Da in diesem Codeteil des Skripts jedoch die entsprechenden CMake-Variablen (z.B. OPENEXR_IEX_LIBRARY), die du im CMake-Fenster siehst und normalerweise über den find_package-Befehl gefüllt werden, nicht gesetzt werden, sondern nur die meiner Meinung nach wichtigere Variable OPENEXR_LIBRARIES (wird nicht nach außen zur GUI getragen), werden diese als nicht gefunden angezeigt. Sprich in deinem Fall sollten beim Bauen trotzdem alle Libs von OpenEXR vorhanden sein. Im Notfall einfach mal die Variable OPENEXR_LIBRARIES über den message-Befehl anzeigen lassen. Ich denke das Problem liegt an den Versionsnummern, die hinter den Lib-Namen stehen. Das find_package-Skript von OpenEXR im Blender-Code erwartet scheinbar Lib-Namen ohne Versionsnummer. Daher wird auch nur die Lib Half.lib gefunden. Hope that helps. ;)
Tiles

Re: CMake, Windows und die OpenEXR Libs

Beitrag von Tiles »

Danke. Das hilft mir schon mal einigermassen zu verstehen warum sie nicht gefunden werden :)

Hmm, wenn ich dich richtig verstanden habe könnte ich die Warnung sogar ignorieren?

Im Moment füge ich die Pfade halt jedesmal von Hand in Cmake ein. Das ist zwar auch nicht schlimm. Aber wird auf Dauer ein wenig lästig, weil ich hier und da den Cmake Cache löschen muss. Und dann sind die von Hand eingetragenen Pfade natürlich wieder futsch ^^
Benutzeravatar
mnemonix
Establishment
Beiträge: 101
Registriert: 09.04.2010, 20:38

Re: CMake, Windows und die OpenEXR Libs

Beitrag von mnemonix »

Tiles hat geschrieben:Hmm, wenn ich dich richtig verstanden habe könnte ich die Warnung sogar ignorieren?
Im Prinzip schon, OPENEXR_LIBRARIES wird ja im Alternativpfad mit festen Werten besetzt. Probier es doch aus in dem du versuchst Blender zu bauen.
Tiles hat geschrieben:Im Moment füge ich die Pfade halt jedesmal von Hand in Cmake ein. Das ist zwar auch nicht schlimm. Aber wird auf Dauer ein wenig lästig, weil ich hier und da den Cmake Cache löschen muss. Und dann sind die von Hand eingetragenen Pfade natürlich wieder futsch ^^
Hm, als spontane Lösung fällt mir nur folgendes ein: Entweder du veränderst das find_package-Skript von OpenEXR oder du baust dir die Libs ohne diese Versionsnummern, falls möglich. Sind das vorkompilierte Libs von Blender? Wenn ja, sollten doch bereits andere auf das selbe Problem gestoßen sein, oder?
Tiles

Re: CMake, Windows und die OpenEXR Libs

Beitrag von Tiles »

Im Prinzip schon, OPENEXR_LIBRARIES wird ja im Alternativpfad mit festen Werten besetzt.
Die festen Pfade sind ja die die er nicht findet ^^
Hm, als spontane Lösung fällt mir nur folgendes ein: Entweder du veränderst das find_package-Skript von OpenEXR oder du baust dir die Libs ohne diese Versionsnummern, falls möglich. Sind das vorkompilierte Libs von Blender? Wenn ja, sollten doch bereits andere auf das selbe Problem gestoßen sein, oder?
Sollte eigentlich, ja. Aber da ist nichts zu finden. Googeln war das Erste was ich gemacht habe. Es scheinen wohl doch nicht so viele Windows User selber zu bauen. Bzw. die die es tun wissen wohl wie sie das Problem umgehen. Oder machen es wie ich, die vier Pfade eben von Hand reinfummeln.

Die Libs sind vorkompiliert. Die kann man per SVN vom Blender Server ziehen. Ich habe zuerst probiert die ganzen Libs selber zu bauen, weil ich das Repository total übersehen hatte. Aber an der Boost Lib habe ich mir die Zähne ausgebissen. Das halbe Internet installiert und ging erst nicht. Und dann habe ich entdeckt dass es da die vorkompilierten Libs gibt, und es komplett sein lassen ^^

Muss mal nach dem find_package Script schauen.

Danke erst mal :)
Benutzeravatar
mnemonix
Establishment
Beiträge: 101
Registriert: 09.04.2010, 20:38

Re: CMake, Windows und die OpenEXR Libs

Beitrag von mnemonix »

Tiles hat geschrieben:
Die festen Pfade sind ja die die er nicht findet ^^
Und woran machst du das fest? Nur weil überall XXXX-NOT_FOUND steht? Das ist womöglich ein Trugschluss, wie ich oben im ersten Post schon beschrieben habe. Vergewissern kannst du dich am besten, indem du dir die Variable OPENEXR_LIBRARIES ausgeben lässt. Schreib einfach mal message(STATUS ${OPENEXR_LIBRARIES}) zwischen die Zeilen 1431-1432 und vergleiche die Pfade. ;)
Tiles

Re: CMake, Windows und die OpenEXR Libs

Beitrag von Tiles »

Ah, so meinste des. Nun hab ichs endlich verstanden ^^

In der Message scheint tatsächlich nun alles gefunden zu werden. Prima, dann ist das Problem ja doch gelöst. Vielen Dank noch mal :)
H:/bforartists/Bforartists/../lib/win64_vc12/openexr/lib/Iex-2_2.libH:/bforartists/Bforartists/../lib/win64_vc12/openexr/lib/Half.libH:/bforartists/Bforartists/../lib/win64_vc12/openexr/lib/IlmImf-2_2.libH:/bforartists/Bforartists/../lib/win64_vc12/openexr/lib/Imath-2_2.libH:/bforartists/Bforartists/../lib/win64_vc12/openexr/lib/IlmThread-2_2.lib
Benutzeravatar
mnemonix
Establishment
Beiträge: 101
Registriert: 09.04.2010, 20:38

Re: CMake, Windows und die OpenEXR Libs

Beitrag von mnemonix »

Freut mich. ;) Wie ist eigentlich der Status von deinem experimentellen Fork?
Tiles

Re: CMake, Windows und die OpenEXR Libs

Beitrag von Tiles »

Der entwickelt sich weiterhin langsam aber stetig. Heute sind die ersten Binaries für Windows erschienen. Hmm, ich sollte wohl meinen Gesuchthread hier mit der Info updaten. Mache ich heute Abend :)

http://www.bforartists.de/content/first ... -available

Die Mitarbeitersuche gestaltet sich allerdings immer noch sehr schwierig. Besonders weil die Blender Trolle alles versuchen das Ding kaputtzureden. Ich mache trotzdem dran weiter. Dazu macht es mir einfach viel zu viel Spass :)
Antworten