Fr/compiler flightear avec CMake - Windows

From FlightGear wiki
Jump to navigation Jump to search

1rightarrow.png Consultez la page Building Flightgear à ce sujet.

Cet article est en cours de traduction.

Programmes requis

Arborescence de fichiers

Sous windows, FG a besoin d'une arborescence spécifique, de façon à trouver automatiquement les dépendances.

la structure à utiliser est décrites ci dessous. Les liens vous permettent de télécharger directement les dépendances pré-compilés (pour "3rdparty", ne prenez que celle qui correspond à votre architecture, (32 ou 64), notez que la version 32 marche sur une machine 64.

${MSVC_3RDPARTY_ROOT} /
3rdParty / ( inclus: boost, plib, fltk, zlib, libpng, libjpeg, libtiff, freetype, libsvn, gdal, ... )
bin /
include /:
lib /
boost_1_44_0 / (a télécharger sur le lien "3rdparty" ci dessus)
boost /
install /
msvc100 / ( pour VS2010 32 bits, sinon respectivement : msvc90, msvc90-64 or msvc100-64 pour: VS2008 32, VS2008 64 et VS2010 64 )
OpenSceneGraph / ( OSG CMake install )
bin /
include /
lib /
SimGear / (vide pour le moment, les sous-répertoires seront créés par la génération)
include /
lib /
FlightGear / (vide pour l'instant)
include /
lib /

Si vous compilez une version 64 bits , utilisez le dossier suivant pour comme dossier "3rdparty":

3rdParty.x64 / ( 64 bit version )
bin /
include /
lib /

Si vous n'utilisez pas cette structure, vous devrez juste indiquer les chemins des libs à la main, les dossiers des source et des build peuvent être n'importe ou.

NdT: pour du win64, il manque glut, vous pouvez utiliser freeglut qui dispose de binaires et lib 64bits dans le package msvc2010 (dans des sous dossier x64).

Compiler

  1. mettez en place une arborescence comme décrite ci dessus.
  2. Compiler SimGear
    1. Ouvrir CMake gui.
    2. faites pointer "Where is the source code" sur le dossier qui contient les sources de SimGear (que ce soit d'après une archive téléchargé ou avec git).
    3. faites pointer "Where to build the binaries" sur un dossier vide, (peut être n'importe où et avoir le nom que vous voulez, par exemple simgear-build dans le même dossier que vos sources de simgear).
    4. clickez sur: CMake GUI Configure.png. La première fois que le projet est configuré, CMake ouvre une fenêtre et vous demande: "Specify the generator for this project" c'est à dire quel compileur vous voulez utiliser. Mettez "Visual Studio 10", (ou "Visual Studio 10 Win64" pour du 64 bit), puis clickez sur "Finish". CMake va alors faire un check du system et creer une configuration de compilation préliminaire.
    5. CMake ajoute les nouvelles variables de configuration en rouge. Certaines ont comme valeur: -NOTFOUND. Ce sont ces variables qui doivent attirer votre attention.Certaines erreurs empêchent SimGear de compiler alors que d'autres invalident certaines options, sans empêcher la compilation.
      1. En premier, renseignez la variable: MSVC_3RDPARTY_ROOT . Tant qu'elle ne pointe pas sur le repertoire de l'arborescence ci-dessus contenant "3rdParty" vous aurez une pléthore de: -NOTFOUND .donc ajustez la en conséquence plutôt que de devoir spécifier tous les chemin des libs un par un. faites un CMake GUI Configure.png de nouveau.
      2. Faites pointer la variable CMAKE_INSTALL_PREFIX sur ${MSVC_3RDPARTY_ROOT}/install/msvc100/SimGear. (msvc100-64 pour du 64 bits)
      3. Regardez les lignes avec des cases à cocher, ce sont des options de compilation qui ont un effet sur les option des programmes compilés.
    6. recommencez l'étape 5, jusqu'à ce que CMake GUI Generate.png soit disponible.
    7. clickez sur CMake GUI Generate.png.
    8. Lancez Visual Studio 2010 et chargez la solution SimGear (SimGear.sln) située dans "Where to build the binaries".
    9. Choisissez "Release" dans la barre d'outils de VS2010
      MVSC 2010 solution.png
    10. Générez la solution avec F7 ou un click droit sur "Solution SimGear" tout en haut de l'explorateur de solutions, et choisissez "générer la solution".
    11. Si il y a des erreurs de compilation, retournez dans Cmake, arrangez les choses, puis: CMake GUI Configure.png suivi de: CMake GUI Generate.png.
    12. Lorsque Visual Studio compile tout sans erreurs, click droit sur INSTALL (plus bas dans le solution 'simgear' et choisissez "generer le solution", ce qui va placer les includes et fichiers de lib dans ${CMAKE_INSTALL_PREFIX}
  3. Compiler FlightGear
    reprenez les étapes pour Simgear, en changeant le dossier SimGear par FlightGear.
  4. Après avoir ajouté les librairies au path windows, et donné le chemin vers les data à fgfs.exe,il ne vous reste plus qu'a voler!!

Options de compilation

Pour ajouter LaRCsim/UIUC dans votre binaire, utilisez les options:

ENABLE_LARCSIM:BOOL=ON
ENABLE_UIUC_MODEL:BOOL=ON

Mise à jour

Lorsque vous mettez à jour les sources avec git, il est la plupart du temps inutile de relancer CMake car la solution est capable de reconfigurer elle-même quand des fichiers CMake sont changés. Recompilez simplement la solution depuis Visual Studio et acceptez le rechargement des projets updaté.

Il est aussi possble d'éditer les fichiers CMakeList.txt directement dans Visual Studio puisqu'ils apparaissent aussi dans la solution, et les projets seront reconfigurés lors de la prochaine génération. Pour changer les options de compilation ou des chemins , il faut utiliser Cmake Gui. En cas de problèmes, repérez le fichier CMakeCache.txt dans le dossier "Where to build the binaries” et effacez le pour reconfigurer en repartant de zéro, ou utilisez l'option du menu: File > Delete Cache.

TerraGear

Terragear peut être compiler de la même façon que Flightgear, changez juste les chemins pour vos source et dossiers de TerraGear.

Jenkins Windows configurations

OSG-stable-Win

cmake ..\svn -G "Visual Studio 10"
      -DACTUAL_3RDPARTY_DIR:PATH=%WORKSPACE%/3rdParty
      -DBUILD_OSG_APPLICATIONS:BOOL=ON
      -DCMAKE_INSTALL_PREFIX:PATH=%WORKSPACE%/install/msvc100/OpenSceneGraph
      -DOSG_PLUGIN_SEARCH_INSTALL_DIR_FOR_PLUGINS:BOOL=OFF
      -DFREETYPE_LIBRARY:FILEPATH=%WORKSPACE%/3rdParty/lib/freetype243.lib
      -DGDAL_INCLUDE_DIR:PATH=
      -DGDAL_LIBRARY:FILEPATH=

SimGear-Win-CMake

cmake ..\SimGear -G "Visual Studio 10"
      -DMSVC_3RDPARTY_ROOT=%WORKSPACE%
      -DCMAKE_INSTALL_PREFIX:PATH=%WORKSPACE%/install/msvc100/SimGear

FlightGear-Win-CMake

cmake ..\FlightGear -G "Visual Studio 10"
      -DMSVC_3RDPARTY_ROOT=%WORKSPACE%
      -DCMAKE_INSTALL_PREFIX:PATH=%WORKSPACE%/install/msvc100/FlightGear
      -DFLTK_FLUID_EXECUTABLE=%WORKSPACE%/3rdParty/bin/fluid.exe

FGRun-Win-CMake

cmake ..\svn -G "Visual Studio 10" 
      -DMSVC_3RDPARTY_ROOT:PATH=%WORKSPACE%
      -DCMAKE_INSTALL_PREFIX:PATH=%WORKSPACE%/install/msvc100/FGRun
      -DFLTK_FLUID_EXECUTABLE:FILEPATH=%WORKSPACE%/3rdParty/bin/fluid.exe
      -DGETTEXT_MSGFMT_EXECUTABLE:FILEPATH=%WORKSPACE%/3rdParty/bin/msgfmt.exe
      -DGETTEXT_MSGMERGE_EXECUTABLE:FILEPATH=%WORKSPACE%/3rdParty/bin/msgmerge.exe

TerraGear-Win-CMake

cmake ..\TerraGear -G "Visual Studio 10"
      -DMSVC_3RDPARTY_ROOT=%WORKSPACE%
      -DCMAKE_INSTALL_PREFIX:PATH=%WORKSPACE%/install/msvc100/TerraGear
      -DGPC_LIBRARY=%WORKSPACE%/3rdParty/lib/gpc232.lib
      -DNEWMAT_LIBRARY=%WORKSPACE%/3rdParty/lib/newmat11.lib

External link