Ogre samples
Par Cédric Tabin le samedi 16.01.2010, 16:30 - Autre - Lien permanent
Ogre est un moteur 3D à l'origine de nombreux jeux. Dans l'idée d'en faire un avec quelques amis, j'ai voulu compiler les samples sur ma Gentoo. Comme j'ai eu pas mal de diffcultés à le faire, voici un petit billet sur la procédure à suivre.
Tout d'abord, il faut installer les packages nécessaires à la dernière version de Ogre disponible dans portage (la 1.6.5). Cela nécessite de démasquer certains paquets :
#keywords echo "dev-games/ogre ~*" >> /etc/portage/package.keywords echo "dev-games/cegui ~*" >> /etc/portage/package.keywords echo "dev-games/ois ~*" >> /etc/portage/package.keywords #use flags echo "dev-games/cegui devil" >> /etc/portage/package.use echo "dev-games/ogre cg devil cegui example" >> /etc/portage/package.use
Par la suite, il semble qu'actuellement le use flag cegui ne soit pas pris en compte pour ladite version (mais fonctionne pour la 1.4.9). Du coup il faut faire attention à l'installation des packages :
emerge cegui ios emerge ogre
Une fois les tout compilé, les samples ogre se trouvent dans le répertoire /usr/share/doc/ogre-1.6.5/Samples/. Il est préférable de le copier dans le home de l'utilisateur.
Finalement, l'étape la plus compliquée est de tout compiler. J'ai cherché dans quelques forums (notamment ici et la), mais rien n'a fonctionné... Du coup, je me suis fait le petit script suivant, qui se met dans le dossier des samples :
#!/bin/sh mkdir compiled failed="" for folder in *; do if [ -d "$folder" ]; then if [ -e "$folder/src" ]; then cd "$folder/src" echo -n "Compiling $folder... " g++ *.cpp -I/usr/include/OGRE \ -I../../Common/include/ \ -I/usr/include/CEGUI/ \ -I../include \ -I../../Common/CEGUIRenderer/include/ \ -o "$folder" \ -O2 \ `pkg-config --libs OGRE OIS CEGUI CEGUI-OGRE` 2> "error.log" if [ $? -ne 0 ]; then echo "FAILED !!!" failed="$failed $folder" else echo "OK" cp ../../Common/bin/*.cfg . echo "#!/bin/sh" > "../../compiled/$folder" echo "cd \`basename \$0\`/../$folder/src" >> "../../compiled/$folder" echo "./$folder" >> "../../compiled/$folder" chmod ugo+rwx "../../compiled/$folder" rm "error.log" fi cd ../.. fi fi done if [ -n "$failed" ]; then echo "The following samples failed to compile :$failed" fi
Ce script va compiler tous les samples et créer un dossier compiled qui permettra de les exécuter.