CMake, Windows und die OpenEXR Libs
CMake, Windows und die OpenEXR Libs
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.
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
-
- CMakeLists.zip
- (25.9 KiB) 307-mal heruntergeladen
Re: CMake, Windows und die OpenEXR Libs
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. ;)
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. ;)
Re: CMake, Windows und die OpenEXR Libs
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 ^^
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 ^^
Re: CMake, Windows und die OpenEXR Libs
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:Hmm, wenn ich dich richtig verstanden habe könnte ich die Warnung sogar ignorieren?
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 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 ^^
Re: CMake, Windows und die OpenEXR Libs
Die festen Pfade sind ja die die er nicht findet ^^Im Prinzip schon, OPENEXR_LIBRARIES wird ja im Alternativpfad mit festen Werten besetzt.
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.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?
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 :)
Re: CMake, Windows und die OpenEXR Libs
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 hat geschrieben:Die festen Pfade sind ja die die er nicht findet ^^
Re: CMake, Windows und die OpenEXR Libs
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 :)
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
Re: CMake, Windows und die OpenEXR Libs
Freut mich. ;) Wie ist eigentlich der Status von deinem experimentellen Fork?
Re: CMake, Windows und die OpenEXR Libs
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 :)
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 :)