gKit2 light
Loading...
Searching...
No Matches
Installation

étape 1 : obtenir les sources

créer un répertoire de travail, puis :

git clone https://forge.univ-lyon1.fr/Alexandre.Meyer/gkit2light.git

étape 2 : installer les dépendances

gKit2 utilise une seule librairie : sdl2, il faut l'installer avant de pouvoir compiler les exemples. ainsi qu'un utilitaire : premake5.

les étapes sont légèrement différentes d'un système à l'autre (et d'un compilateur à l'autre aussi..). une fois la librairie installée, il suffit de générer les projets pour votre environnement de développement et compiler les exemples :

  • visual studio ou code blocks pour windows,
  • makefile pour linux,
  • makefile ou xcode pour mac os.

c'est l'outil premake qui permet de créer les projets, et les makefiles, cf section premake

linux

installez les paquets, si nécessaire (pas la peine au nautibus) : libsdl2-dev et premake5, s'il est disponible. par exemple, pour ubuntu et ses variantes :

sudo apt install libsdl2-dev premake5

si premake5 n'est pas disponible dans un paquet, il suffit de le récupérer sur le site officiel. dezippez l'archive et copiez premake5 dans le répertoire de gKit. il faudra aussi se donner l'autorisation de l'exécuter :

chmod u+x ./premake5

windows

les librairies et premake5 sont regroupées dans une archive disponible ici.

  • dezippez l'archive dans le répertoire de gKit, vous devez obtenir un répertoire gkit2light/extern,
  • copiez extern/premake5.exe dans le répertoire de gKit.

mac os

les librairies et premake5 sont regroupées dans une archive disponible ici.

  • dezippez l'archive dans le répertoire de gKit, vous devez obtenir un répertoire gkit2light/extern,
  • copiez extern/premake5 dans le répertoire de gKit.

comme sous linux, il faudra aussi se donner l'autorisation de l'exécuter :

chmod u+x ./premake5

les librairies et premake5 sont également dispos dans le gestionnaire de paquets brew. utiliser brew est probablement la solution la plus directe.

étape 3 : générer les projets

pourquoi ? gkit compile et fonctionne sur linux, windows, mac os, ios, android et même WebGL. Chaque système dispose de plusieurs compilateurs et environnements de travail. Il n'est pas envisageable de créer et de maintenir tous ces projets manuellement. gkit utilise donc un outil : un générateur de projet, ce qui permet de décrire les projets une seule fois et c'est l'outil (premake dans ce cas...) qui génère le projet pour votre environnement de travail.

il faut donc apprendre à générer le projet pour votre environnement de travail, en utilisant premake.

ouvrez un terminal, et naviguez jusqu'au répertoire contenant gKit :

  • windows : cherchez powershell ou windows terminal dans le menu démarrer
  • linux : ctrl-alt-t,
  • mac os : cherchez terminal

rappel : commandes ls et cd pour naviguer.

windows + codeblocks

./premake5.exe codeblocks

le workspace (groupe de projets) codeblocks ainsi que les projets sont crées dans le répertoire build/, ouvrez build/gKit2light.workspace.

windows + visual studio

pour générer une solution (groupe de projets) visual studio, il suffit de choisir la bonne version :

./premake5.exe vs2022
ou
./premake5.exe vs2026

la solution visual studio ainsi que les projets sont crées dans le répertoire build/, ouvrez build/gkit2light.sln.

mac os + xcode

./premake5 xcode 

mac os + makefile

./premake5 gmake

le Makefile se trouve dans le répertoire de base de gKit.

linux + makefile

premake5 gmake      // si premake5 est installé dans le système (ie avec un paquet)
./premake5 gmake    // si premake5 est copié dans le répertoire de gKit

le Makefile se trouve dans le répertoire de base de gKit.

étape 4 : compilez un exemple

compilez le projet tp, cf projets/tp.cpp par exemple, si vous voulez vérifier qu'une application openGL fonctionne. sinon vous pouvez compiler base, cf projets/base.cpp, si vous souhaitez vérifier qu'une application simple fonctionne.

  • sous windows, il faudra probablement copier les dll dans gkit2light/bin la première fois, cf la FAQ.
  • sous mac os, il faudra vous donner le droit d'utiliser sdl2, cf la doc du centre de sécurité.

utilisation des makefiles

les makefile peuvent générer les versions debug (cf utiliser un debugger comme gdb ou lldb) ou les versions release, plus rapides (2 ou 3 fois, intéressant pour les projets avec beaucoup de calculs) :

  • make help, affiche la liste des projets et les options disponibles,
  • make tp, compile la version debug de tp,
  • make tp config=release, compile la version release de tp,
  • make tp config=debug, compile la version debug de tp,
  • make tp verbose=1, compile la version debug de tp et affiche le détail des commandes exécutées.

les exécutables sont crées dans le répertoire gkit2light/bin, pour les exécuter :

bin/tp

remarque : gKit charge quelques fichiers au démarrage, il faut l'exécuter depuis le répertoire de base gKit2light/, sinon les fichiers ne seront pas correctement chargés.

étape 5 : créer un nouveau projet

pour ajouter un nouveau projet, le plus simple est de modifier premake5.lua et de tout re-générer. Il y a 2 solutions :

  • pour un projet simple, avec 1 seul fichier .cpp
  • pour un projet composé de plusieurs fichiers .cpp

projet en 1 fichier .cpp

le plus simple est d'ajouter votre fichier .cpp dans le répertoire projets et de modifier la liste des projets dans premake5.lua.

trouvez cette déclaration dans premake5.lua :

-- description des projets      
local projects = {
    "base"
}

et ajoutez votre fichier, sans l'extension .cpp, par exemple tp1 :

local projects = {
    "base",
    "tp1"
}

et regénérez le projet, cf premake5 gmake / vs2022 / xcode ...

projet avec plusieurs fichiers .cpp

ajoutez la description de votre projet à la fin du fichier premake5.lua. en supposant que les sources se trouvent dans le répertoire tp1 :

project("tp1") // nom du projet
language "C++"
kind "ConsoleApp" // application standard
targetdir "bin" // placer l'executable dans ./bin
links "gkit" // linker avec gkit
files { "tp1/*.cpp" } // compiler les .cpp du repertoire tp1

et regénérez le projet, cf premake gmake / vs2022 / xcode ...

FAQ

erreur lors du link / édition de liens

erreurs à l'exécution sous windows, fichiers .dll manquants

  • pour visual studio : copiez le contenu de extern/visual/bin dans gkit2light/bin
  • pour codeblocks : copiez le contenu de extern/mingw/bin dans gkit2light/bin

erreur de compilation / windows SDK

premake ne connait pas la version du windows sdk actuellement installé sur votre machine. par défaut, il génère des projets pour le sdk de base de windows 11. si cette version du sdk n'est pas installée et que les exemples ne compilent pas, pas de panique : ouvrez la solution générée, dans visual studio :

  • ouvrez le solution explorer,
  • click droit sur solution et choisissez re-cibler la solution / retarget solution. vous pouvez maintenant compiler un projet...

j'aime pas premake

pour compiler un projet qui utilise gKit, il suffit de compiler tous les fichiers .cpp de src/gKit + ceux du projet et de linker avec openGL et SDL2.

avec g++, c'est direct :

g++ -o tp1 tp1/*.cpp src/gKit/*.cpp -I src/gKit -lGL -lSDL2
./tp1

il faut aussi indiquer dans quel répertoire se trouvent les fichiers .h / les headers, cf -I src/gKit dans les options de g++. si les librairies ne sont pas installées dans le système, il suffit de donner les répertoires avec les options -L repertoire et éventuellement -Wl,-rpath repertoire

tous les environnements de travail permettent de décrire ces informations, il faut apprendre à le faire...

vcpkg et visual studio

vcpkg est un gestionnaire de paquets pour windows qui permet d'installer les librairies pour visual studio (mais pas les autres compilateurs...) :

vcpkg install sdl2 --triplet=x64-windows
vcpkg integrate install

vcpkg peut installer les librairies dans un répertoire standard de visual studio (cf l'option integrate), ce qui permet de compiler et de linker sans trop de problèmes !

par contre, il faudra modifier gkit.lua qui configure la solution avec le répertoire extern/visual, il suffit de supprimer les lignes :

includedirs { "extern/visual/include" }
libdirs { "extern/visual/lib" }

dans la section configuration { "windows", "vs*" }

remplacez également le nom des configuration "debug" et "release" par "Debug" et "Release", qui sont reconnues automatiquement par visual studio et vcpkg. ie au début du fichier gkit.lua, remplacez :

workspace "gKit"
configurations { "debug", "release" }

par

workspace "gKit"
configurations { "Debug", "Release" }

la liste des paquets / librairies / utilitaires de vcpkg est disponible https://vcpkg.io/en/packages.html