Latest Posts

Topic: boost_unit_test_framework

Lukas

Topic Opener
Joined: 2010-05-16, 13:49
Posts: 10
Ranking
Pry about Widelands
Location: Schliersee, Germany
Posted at: 2010-08-16, 19:25

Moin,

da nun boost_unit_test_framework für einen build inkl. unit-test benötigt wird wäre ich dankbar, wenn mir kurz jemand erklären könnte wie ich die notwendigen Bibliotheken auf meinem Ubuntu 10.04 installiert bekomme.

Vielen Dank und LG

Lukas


Top Quote
timowi

Joined: 2009-11-01, 22:08
Posts: 146
Ranking
At home in WL-forums
Location: Germany
Posted at: 2010-08-16, 20:54

boost_unit_test sollte im paket libboost-test1.40.0 (bzw libboost-test1.38.0 je nach boost version) sein. Die unit test libraries sind meiner Meinung nach eine für normale builds vollkommen unnötige Abhänigkeit. Du kannst die mit -DBUILD_UNIT_TESTS=False enfach deaktivieren.

Timo


Top Quote
Lukas

Topic Opener
Joined: 2010-05-16, 13:49
Posts: 10
Ranking
Pry about Widelands
Location: Schliersee, Germany
Posted at: 2010-08-16, 22:59

Nabend,

das Paket alleine scheint noch nicht zu reichen:


????lukas@lukas-sl510-linux???? Mo Aug 16 23:42:02 ~/ sudo aptitude -y install libboost-test1.40.0 [sudo] password for lukas: Paketlisten werden gelesen... Fertig Abhängigkeitsbaum wird aufgebaut Status-Informationen einlesen... Fertig Lese erweiterte Statusinformationen Initialisiere Paketstatus... Fertig Die folgenden NEUEN Pakete werden zusätzlich installiert: libboost-test1.40.0 0 Pakete aktualisiert, 1 zusätzlich installiert, 0 werden entfernt und 3 nicht aktualisiert. Muss 274kB an Archiven herunterladen. Nach dem Entpacken werden 930kB zusätzlich belegt sein. Schreibe erweiterte Statusinformationen... Fertig Hole:1 http://de.archive.ubuntu.com/ubuntu/ lucid/main libboost-test1.40.0 1.40.0-4ubuntu4 [274kB] 274kB wurden in 0s heruntergeladen (345kB/s) Wähle vormals abgewähltes Paket libboost-test1.40.0. (Lese Datenbank ... 223924 Dateien und Verzeichnisse sind derzeit installiert.) Entpacke libboost-test1.40.0 (aus .../libboost-test1.40.0_1.40.0-4ubuntu4_amd64.deb) ... Richte libboost-test1.40.0 ein (1.40.0-4ubuntu4) ...

Verarbeite Trigger für libc-bin ... ldconfig deferred processing now taking place Paketlisten werden gelesen... Fertig Abhängigkeitsbaum wird aufgebaut Status-Informationen einlesen... Fertig Lese erweiterte Statusinformationen Initialisiere Paketstatus... Fertig Schreibe erweiterte Statusinformationen... Fertig

????lukas@lukas-sl510-linux???? Mo Aug 16 23:42:46 ~/ cd Spiele/Widelands/ ????lukas@lukas-sl510-linux???? Mo Aug 16 23:42:50 ~/Spiele/Widelands/ (Widelands:5466) ./build_and_run.sh

Script to compile and run Widelands

CFLAGS= MAKEOPTS= -- Could NOT find Boost Boost version: 1.40.0 Boost include path: /usr/include The following Boost libraries could not be found: boost_unit_test_framework No Boost libraries were found. You may need to set Boost_LIBRARYDIR to the directory containing Boost libraries or BOOST_ROOT to the location of Boost. CMake Error at /usr/share/cmake-2.8/Modules/FindBoost.cmake:894 (message): Unable to find the requested Boost libraries.

Boost version: 1.40.0

Boost include path: /usr/include

The following Boost libraries could not be found:

      boost_unit_test_framework

No Boost libraries were found. You may need to set Boost_LIBRARYDIR to the directory containing Boost libraries or BOOST_ROOT to the location of Boost. Call Stack (most recent call first): CMakeLists.txt:122 (find_package)

Boost unit_test_framework is required for unit tests. Set BUILD_UNIT_TESTS to FALSE to build without unit tests.

-- Using compiler flags: -g -DDEBUG -DNOPARACHUTE -Wold-style-cast -isystem /usr/include -Wno-attributes -Wall -- Found GGZ_Core: /usr/lib/libggzmod.so;/usr/lib/libggzcore.so;/usr/lib/libggz.so -- SDLMAIN_LIBRARY is /usr/lib/libSDLmain.a -- Configuring incomplete, errors occurred! ????lukas@lukas-sl510-linux???? Mo Aug 16 23:42:55 ~/Spiele/Widelands/ (Widelands:5466)


Ich habe jetzt meine build_and_run.sh entsprechend modifiziert, dass dort -DBUILD_UNIT_TESTS=False direkt mit an cmake übergeben wird.

Gerade wenn ich aber an andere denke, die hier evtl. durch eigne Builds Widelands testen wollen finde ich dies doch etwas überfordernd.

Ggf. sollte darüber nachgedacht werden, die Unit Tests als Standard in der build_and_run.sh (aus der btw. mal das _and_run gestrichen werden könnte...) zu deaktivieren und ein zusätzliches shell script anzubieten in dem sie eben aktiviert sind.

Anwenderfreundlich ist die aktuelle Lösung jedenfalls nicht face-confused.png

Btw: Ich hab keine TAG gefunden mit dem ich meine shell Ausgabe als pre-Text hätte formatieren können, nichtmal meine Zeilenumbrüche wurden übernommen... gibt es keinen Äquivalent für [code] für dieses Forum?

LG

und eine gute Nacht

Lukas


Top Quote
Nasenbaer
Avatar
Joined: 2009-02-21, 17:17
Posts: 828
Ranking
One Elder of Players
Location: Germany
Posted at: 2010-08-17, 07:21

Moin Lukas,

hör ich da einen leicht zickigen Unterton? face-wink.png

Aber nein klar - die generelle Abhängigkeit von boost_unit_test macht wenig Sinn. Die Sache ist die, dass solche Ungereimtheiten leider manchmal während der Entwicklung auftreten - seien es neue Features, die an sich super funktionieren, dafür aber einen anderen Teil des Spiels stören oder so wie hier: eine Erweiterung für Entwickler, um die Stabilität gewisser Features mit ihren Änderungen zu prüfen, bevor diese die Änderungen hochladen.

Das bisher noch niemand etwas an diesem Problem getan hat, liegt wahrscheinlich daran, dass die (meisten) Entwickler den boost_unit_test Kram installiert haben.

Ich habe jetzt jedenfalls einen offiziellen Bugreport erstellt: hier

Ich hoffe es kümmert sich jemand drum, der davon Anhnung hat.

was das build_and_run.sh angeht:

Das Ding hab ich vor nicht all zu langer Zeit angeführt, um die Benutzung von cmake zu vereinfachen. Ich selbst habe es seit einiger Zeit nicht mehr verwendet, von daher weiß ich auch gar nicht, was daran alles verändert wurde. das "_and_run" sollte eigentlich dafür stehen, dass Widelands nach dem compile Prozess direkt gestartet wird - quasi ein einziger Befehl um Widelands zu kompilieren und zu starten.

In dem Zusammenhang wäre es vielleicht ganz nett, das Skript generell etwas intuitiver zu gestalten und zu Beginn den Benutzer danach zu fragen, ob:

  • der Build in Release oder Debug Modus erstellt werden soll.
  • Die Übersetzungen erstellt werden sollen.
  • Ob und in welche Verzeichnisse der Build installiert werden soll.

vielleicht wäre das ein Feature Request Wert - aber auf der anderen Seite ist das Skript wohl nur für die Interessant, die die Entwicklungsversion selbst bauen...

Gruß

Peter


Top Quote
Lukas

Topic Opener
Joined: 2010-05-16, 13:49
Posts: 10
Ranking
Pry about Widelands
Location: Schliersee, Germany
Posted at: 2010-08-17, 19:43

pfeiff mag sein, dass ich etwas zickig war als ich das gestern Abend geschrieben habe, bitte Entschuldigt das ...

In dem build_and_run.sh shellscript ist der ./widelands Befehl im Repository auskommentiert, wodurch es eben nicht startet, das aber nun ja kein Drama face-smile.png

Ich hab nun heute noch mal versucht boost mit dem Tarball von der Boost-Homepage zu installieren, aber irgendwie mache ich das wohl nicht richtig, jedenfalls wird es beim build leider nicht erkannt, ich schau mir das noch mal an wenn ich mehr Zeit habe, solange nutze ich eben die Option ohne Test zu compilieren.

Vielen Dank auf jeden Fall für die schnelle Reaktion und die Top Arbeit hier.

LG Lukas


Top Quote
timowi

Joined: 2009-11-01, 22:08
Posts: 146
Ranking
At home in WL-forums
Location: Germany
Posted at: 2010-08-17, 20:06

Soory, das Package ist natürlich libbost-test-dev, also z.B. libboost-test1.40-dev aonst gibt es nur die runtime. Es kann aber auch sein das cmake das nicht richtig erkennt. Es sollte /usr/lib/libboost_unit_test_framework-mt.so und/oder /usr/lib/libboost_unit_test_framework.so geben.

@Nasenbaer ich hatte die boost libraries nicht vollständig installiert. Das unit test framework hab ich bisher auch noch nie gebraucht.

Timo


Top Quote