Installation de Ogre 1.7, et compilation avec cmake sous Ubuntu

J’ai pas mal galéré pour compiler un simple hello world avec Ogre sous Ubuntu. Je code avec vim, donc j’aime bien utiliser cmake pour configurer a compilation.
Je n’ai jamais fait de programmes en 3D jusqu’à présent et je compte justement m’y mettre. Une des raisons qui m’a poussé vers Ogre est son utilisation massive de CMake pour la compilation, ce qui me simplifie pas mal la vie (par rapport à Irrlicht par exemple qui semble plus compliqué pour compiler).
Ici je vais décrire comment installer Ogre sous Ubuntu Karmic, puis comment compiler le hello world du tuto officiel

Installer Ogre 1.7
Il y a un paquet ppa qui a été créé spécialement pour ça, donc toutes les méthodes indiquant comment compiler que l’on voit un peu partout ne sont pas nécessaires. Ce PPA ne risque pas de causer de soucis au système, puisqu’il ne contient que Ogre.

Ajoutez au fichier /etc/apt/sources.list

deb http://ppa.launchpad.net/ogre-team/ogre/ubuntu karmic main 
deb-src http://ppa.launchpad.net/ogre-team/ogre/ubuntu karmic main

Puis lancez ajoutez les clés GPG, et mettez à jour la liste des paquets

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys B4CFE229
sudo apt-get update

Installez ensuite le paquet libogre-dev

sudo apt-get install  libogre-dev ogre-samples-bin ogre-samples-source libois-dev

Le paquet ogre-samples-source qui permet d’avoir quelques exemples de programmes, ainsi que de profiter de pouvoir suivre le tutoriel officiel (qui utilise quelques headers définis ici).

Compilation avec cmake
Les fichiers permettant de rechercher Ogre (FindOGRE.cmake) ne sont pas à la place habituelle de cmake, il faudra donc lui indiquer où les trouver dans le CMakeList

Pour tester, on va essayer de compiler le fichier d’exemple du tutoriel 1, le fichier en question est le suivant

#include "ExampleApplication.h"

class TutorialApplication : public ExampleApplication
{
protected:
public:
    TutorialApplication()
    {
    }

    ~TutorialApplication() 
    {
    }
protected:
    void createScene(void)
    {
    }
};

#if OGRE_PLATFORM == OGRE_PLATFORM_WIN32
#define WIN32_LEAN_AND_MEAN
#include "windows.h"

INT WINAPI WinMain( HINSTANCE hInst, HINSTANCE, LPSTR strCmdLine, INT )
#else
int main(int argc, char **argv)
#endif
{
    // Create application object
    TutorialApplication app;

    try {
        app.go();
    } catch( Exception& e ) {
#if OGRE_PLATFORM == OGRE_PLATFORM_WIN32 
        MessageBox( NULL, e.what(), "An exception has occurred!", MB_OK | MB_ICONERROR | MB_TASKMODAL);
#else
        fprintf(stderr, "An exception has occurred: %s\n",
                e.what());
#endif
    }

    return 0;
}

Créez un fichier CMakeLists.txt, contenant quelque chose comme

project(helloworld)
cmake_minimum_required(VERSION 2.6)
set(CMAKE_MODULE_PATH "/usr/lib/OGRE/cmake/")
#set(CMAKE_CXX_FLAGS "-Wall -W -Werror -ansi -pedantic -g")

# Il s'agit du tutoriel d'exemple, qui utilise quelques fichiers prédéfini de Ogre. Il faut indiquer à cmake où se trouvent les includes en question
include_directories ("/usr/share/OGRE/Samples/Common/include/")

# Bien sur, pour compiler Ogre, il faut le chercher, et définir le répertoire contenant les includes.
find_package(OGRE REQUIRED)
include_directories (${OGRE_INCLUDE_DIRS})

# L'exemple dépend aussi de OIS, une lib pour gérer la souris, clavier, joystick...
find_package(OIS REQUIRED)

# On définit les sources qu'on veut compiler
SET(SOURCES
helloworld.cpp)

# On les compile
add_executable (
   helloworld ${SOURCES}
)

# Et pour finir, on lie l'exécutable avec les librairies que find_package nous a gentillement trouvé.
target_link_libraries(helloworld ${OGRE_LIBRARY} ${OIS_LIBRARY})

Pour en savoir plus sur cmake, regardez cet article
Cmake n’est pas installé par défaut, vous pouvez l’installer avec

sudo apt-get install cmake

Il ne reste plus qu’à tester :

cmake .
make

Normallement, un programme « helloworld » devrait s’être créé sans souci, sinon c’est qu’il y a un problème, regardez si vous avez bien suivi les étapes précédentes.
Si vous lancez tel quel l’exécutable il ne fonctionnera pas (enfin il affichera une erreur comme quoi il manque des fichiers). On va donc les récupérer depuis le répertoire de OGRE avant de lancer le programme :

cp /usr/share/OGRE/resources.cfg .
cp /usr/share/OGRE/plugins.cfg .
./helloworld

Normallement une fenêtre s’ouvre, c’est que c’est bon :)

Example Ogre

About these ads

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s

Suivre

Recevez les nouvelles publications par mail.

%d blogueurs aiment cette page :