Préparation d'une base ubuntu 18.04 pour compiler les logiciels¶
Installez une ubuntu 18.04 classique
Installation de l'environnement intégré de développement (IDE in english ;-)¶
Installez QtCreator par le gestionnaire de paquets Synaptic (par exemple) en sélectionnant le paquet qtcreator 4.5.2-3ubuntu2.
Laissez Synaptic choisir les dépendances, mais il est nécessaire de vérifier qu'un certain nombre de paquets ont bien été ajoutés.
Lancez donc les commandes suivantes pour obtenir un système "développeur"
- les outils de base
apt-get install devscripts debhelper build-essential gcc g++ make dpkg-dev git ccache lsb-release lsb-base gnupg cdbs
- le nécessaire pour l'audio, la synthèse vocale et la correction orthographique
apt-get install libpulse0 libx11-xcb1 libx11-xcb-dev sqlite3 libsqlite3-dev libsqlite3-0 libexiv2-dev libhunspell-dev libttspico-dev libttspico0 libttspico-data libvorbis-dev zlib1g-dev libgl1-mesa-dev
- puis tout Qt 5
apt-get install qt5-default libqt5svg5-dev libqt5script5 libqt5scripttools5 qtscript5-dev qttools5-dev-tools qtbase5-dev qtmultimedia5-dev libqt5multimediawidgets5 libqt5webkit5-dev
- puis tout ce qui touche à opencv
apt-get install libopencv-core-dev libopencv-contrib-dev libopencv-dev libopencv-features2d-dev libopencv-flann-dev libopencv-highgui-dev libopencv-imgcodecs-dev libopencv-imgproc-dev libopencv-photo-dev libopencv-video-dev libopencv-videostab-dev opencv-data
- tout ce qui touche à la lib poppler (manipulation des PDF)
apt-get install libpoppler-qt5-dev libpoppler-cpp-dev libpoppler-dev
Récupérez le code source d'un projet¶
Je prends ici l’exemple de l’application ALLER, les informations nécessaires se trouvent dans la page qui lui est dédiée sur redmine.abuledu.org, en particulier dans l’onglet Dépot
Option a : en utilisateur authentifié¶
Vous devrez au préalable ajouter une clé publique sur votre compte redmine pour la machine sur laquelle vous allez développer en suivant la documentation de la page
[[http://redmine.abuledu.org/projects/ryxeo/wiki/Cl%C3%A9_ssh_publique]]
Créez un dépôt local sur votre ordinateur
git clone ssh://gitolite3@redmine.abuledu.org/repositories-redmine/leterrier/leterrier-aller/leterrier-aller-git.git -b version-5.2-dev --recursive code-aller
Remarque : ne remplacez pas « gitolite3 » par votre identifiant, c’est justement le déploiement de votre clé publique sur redmine qui va faire le lien entre les deux.
la version choisie (ici version-5.2-dev) se choisit dans le menu déroulant
l’option -- recursive permet de récupérer avec les sous-modules ou « libs AbulEdu »
code-aller (facultatif) permet de spécifier le nom du dossier qui recevra le code
Option b : en anonyme¶
Ce mode vous permettra de récupérer le code, de faire toutes les modifications que vous souhaitez, mais pas de les publier.
Attention : l’adresse du dépôt ci-dessous ne vous sera proposée que si vous n’êtes pas authentifié sur redmine
git clone http://redmine.abuledu.org/leterrier/leterrier-aller/leterrier-aller-git.git -b version-5,2-dev --recursive code-aller
Compilez le projet¶
Lancez QtCreator et ouvrez le fichier leterrier-aller.pro
Si par cas, lors de l’ouverture du fichier, QtCreator vous indique qu’aucun kit valide n’a été trouvé, cliquez sur le lien vers « options » dans la phrase Veuillez ajouter un kit dans le menu options ou avec l’outil de maintenance du SDK. Vous n’aurez alors aucun kit Autodétecté, mais en cliquant sur Desktop dans la section Manuel, vous pourrez normalement la version de Qt dans le menu déroulant.
Passez en mode Projet pour aller décocher l’option Shadow Build, et dans la section qmake des étapes de compilation ajoutez dans le champ Arguments supplémentaires 'QMAKE_CFLAGS_ISYSTEM=-I' -r
Note: à ajouter éventuellement (à vérifier):
apt install qtxmlpatterns5-dev-tools qtdeclarative5-dev-tools qt5-qmltooling-plugins qmlscene qbs-common qml-module-qtgraphicaleffects qml-module-qtqml-models2 qml-module-qtquick-controls qml-module-qtquick-layouts qml-module-qtquick-window2 qml-module-qtquick2 libqt5xmlpatterns5 libtinfo-dev libtspi1 llvm-6.0 llvm-6.0-dev llvm-6.0-runtime binfmt-support clang clang-6.0 lib32gcc1 lib32stdc++6 libbotan-2-4 libc6-i386 libclang-common-6.0-dev libclang1-6.0 libffi-dev libjsoncpp1 libobjc-7-dev libobjc4 libomp-dev libomp5 libqbscore1.10 libqbsqtprofilesetup1.10 libqt5quicktest5