Contents |
Languages: عربي | Asturianu | Català | Česky | Kaszëbsczi | Dansk | Deutsch | English | Esperanto | Español | Eesti | فارسی | Suomi | Français | Galego | Italiano | 日本語 | 한국어 | Norwegian | Polski | Português Brasileiro | Română | Русский | Svenska | Slovenčina | Slovenščina | српски | Türkçe | Tiếng Việt | Українська | 简体中文 | 繁體中文
| Tutorial Series | Démarrer avec KDE |
| Previous | Getting Started/Build/KDE4 |
| What's Next | n/a |
| Further Reading | Présentation Originale par David Faure |
Le temps est précieux. Ce tutorial présente l'expérience accumulée par David Faure sur la manière de tirer parti au mieux de son temps et de ses efforts en économisant les deux à l'aide de simples scripts et techniques lors du développement de KDE 4.
Si vous voulez vraiment utiliser un compte séparé pour le développement, voyez ici.
Mais pour économiser du temps et de nombreux problèmes, il est fortement recommandé de tout faire avec votre utilisateur courant. Tout ce dont vous avez besoin est un moyen simple de basculer entre les environnements. Allez dans ~/kde/src/4, vous voulez être dans l'environnement kde4, pas vrai?
Pour cela, copiez http://web.davidfaure.fr/scripts/cd_function dans votre .zshrc ou .bashrc, et téléchargez http://web.davidfaure.fr/scripts/findup quelquepart dans votre $PATH (par exemple dans $HOME/bin ou /usr/local/bin).
Comme ça, lorsque vous entrez dans un répertoire, le fichier .my-setup sera recherché et sourcé (cela recherche aussi dans les répertoires parents jusqu'à le trouver, et cela ne source pas deux fois le même d'affilé)
Specifiez toutes les variables d'environnement spécifiques à KDE4 (elles seront détaillées plus tard dans cette page) dans ce fichier ~/kde/src/4/.my-setup, et faites de même pour les autres environnements si nécessaire (kde3, et partout où vous avez besoin de variables d'environnement propres à projet).
Pour Qt, par habitude de l'époque kde3 et pour gagner du temps en évitant un "make install" après un changement, je recommande d'utiliser un répertoire pour les sources, le build, et l'install. Cela se fait en configurant Qt avec --prefix=$PWD. Ce n'est cependant pas obligatoire.
Qt-Path: ~/qt/4/qt-copy
C'était pratique dans kde3, c'est devenu obligatoire dans kde4: vous avez besoin de séparer les sources du build, c'est à dire les mettre dans des répertoires différents. Cela facilite le rebuild depuis zéro, en supprimant tous les fichiers générés -même les vieux que "make clean" ne supprimerait pas. Il est plus facile de regarder dans les fichiers sources (grep,ls ... etc). Cela permet d'avoir plusieurs arbres de build avec des paramètres différents, par exemple "debug" et "release".
Donc les sources des modules pour kde4 sont récupérés dans ~/kde/src/4/ et le build a lieu dans ~/kde/build/4/.
Si vous utilisez bash, jettez un oeil à ce .bashrc. C'est un exemple de configuration pour bash qui met en place toutes les variables d'environnement pour KDE4 et d'autres fonctions utiles. Vous pouvez aussi regarder ces scripts qui sont basés sur le .bashrc ci-dessus.
Les étapes ci-dessous décrivent quelques-unes de ces fonctionnalités ainsi que des alternatives et des fonctions additionnelles.
En lire plus sur compiler un module KDE.
Pour aller et venir facilement entre le répertoire des sources et de build, vous pouvez utiliser les fonctions cs et cb qui marchent ainsi:
pwd ~/kde/src/4/kdebase cb && pwd ~/kde/build/4/kdebase # notez que ce répertoire est créé s'il n'existe pas cs && pwd ~/kde/src/4/kdebase </code> Un certain nombre de scripts liés à kde devront pouvoir faire la même chose. Faites donc: export OBJ_REPLACEMENT='s#/kde/src/#/kde/build/#' Cela permet au script makeobj de kdesdk de passer de src à build. Si vous faites aussi: alias make=makeobj alors vous pouvez simplement taper "make" depuis le répertoire des sources et le build pourra se faire. C'est aussi très utile dans les éditeurs - si votre vi ou emacs utilise makeobj comme commande make, vous pouvez compiler d'une simple touche. De plus, pour une navigation rapide vers d'autres répertoires, il est très pratique de pouvoir écrire "cs 4/kdelibs" pour aller à {{path|~/src/4/kdelibs}}, de n'importe où. Par exemple vous pouvez être dans {{path|~/kde/src/4/kdebase/workspace/kcontrol}} et vous décidez maintenant de regardez kdecore... Pas besoin de taper une longue série de <tt>"../.."</tt> ou de recommencer depuis le sommet. Vous pouvez simplement taper <tt>cs 4/kdelibs/kdecore</tt>. C'est faisable à l'aide des deux fonctions <tt>cs</tt> et <tt>cb</tt> definies dans [[Getting Started/Increased Productivity in KDE4 with Scripts/.bashrc|le .bashrc]]. ==== Alternative ==== Le code suivant permet d'utiliser <tt>cd</tt> comme <tt>cs</tt> décrit ci-dessus: <syntaxhighlight lang="bash"> export CDPATH=.:~/kde/src </code> L'avantage d'utliser zsh est que la complétion fonctionne correctement. Essayez cd 4/kdemul et appuyez sur Tab, cela va completer en 4/kdemultimedia, peu importe où vous êtes. Cela ne marche pas dans bash par contre -mais de toutes façons vous utilisez zsh dès à présnet, n'est-ce pas? :) Les alias minimums pour cs et cb (comme au-dessus mais sans support pour des arguments) sont: alias cb='cd `pwd | sed -e s,/kde/src/,/kde/build/,`' alias cs='cd `pwd | sed -e s,/kde/build/,/kde/src/,`' ==== Revenir dans le répertoire précédent ==== Revenir dans le répertoire précédent peut facilement se faire avec zsh. Mettez ceci dans .zshrc: <syntaxhighlight lang="bash"> setopt AUTO_PUSHD alias p=popd </code> et vous pouvez ensuite tapez "p" pour revenir à votre répertoire précédent, autant de fois que nécessaire (tapes "dirs -v" pour voir la liste des répertoires précédents). === CMake === Vous pouvez trouver ici [[Development/CMake|plus d'informations sur CMake]]. ==== CMake et sous-répertoires ==== cd 4/kdelibs/kio/kio ; make => rien ne se passe, le Makefile est dans le répertoire parent. Faites utiliser à l'éditeur un script enveloppe à la place: <syntaxhighlight lang="bash"> #!/bin/sh if test "$1" = "-k"; then shift; fi cmake_in_parent=0 if test -f CMakeLists.txt; then if ! grep -q kde4_add CMakeLists.txt; then cmake_in_parent=1 cd .. fi fi if test $# -gt 0; then arg="$1" if test "$arg" != install -a $cmake_in_parent -eq 1; then arg=`basename $PWD`/"$arg" fi fi jvalue=1 echo "calling makeobj -j $jvalue $arg" makeobj -j $jvalue $arg </code> Obtenir ce script: http://web.davidfaure.fr/scripts/makefromemacs. ==== CMake et dépendances ==== touch kdecore/kapplication.h cd kdeui ; make => recompile kdecore d'abord touch kdecore/kapplication.h cd kdeui ; make kdeui/fast => recompile seulement kdeui make install/fast Mais notez que le code normal (sans /fast) est aussi utile dans d'autres cas: Par exemple éditez kdelibs/kio/kio/kdirmodel.cpp et le test unitaire correspondant kdelibs/kio/tests/kdirmodeltest.cpp Puis, pour recompiler à la fois libkio et le test unitaire, faites simplement "make kdirmodeltest" depuis kdelibs/kio/tests. === Liste des variables d'environnement KDE 4 === Ceci liste toutes les variables d'environnement que vous devriez mettre en place, par exemple dans $KDESRC/4/.my-setup ==== Qt ==== <syntaxhighlight lang="bash"> export QTDIR=/d/qt/4/qt-copy export PATH=$QTDIR/bin:$PATH export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH export PKG_CONFIG_PATH=$QTDIR/lib:$PKG_CONFIG_PATH </code> ==== KDE ==== <syntaxhighlight lang="bash"> export KDEDIR=/d/kde/inst/kde4 export PATH=$KDEDIR/bin:$PATH export LD_LIBRARY_PATH=$KDEDIR/lib:$LD_LIBRARY_PATH export QT_PLUGIN_PATH=$KDEDIR/lib/kde4/plugins export KDEDIRS=$KDEDIR </code> ==== Utilisateur ==== <syntaxhighlight lang="bash"> export KDEHOME=$HOME/.kde4 </code> ==== Autres ==== <syntaxhighlight lang="bash"> export QTEST_COLORED=1 export KDE_COLOR_DEBUG=1 </code> ==Compiler un module KDE== ===Manuellement=== Si vous utilisez un {{path|~/.bashrc}} cité précedemment il est très facile de compiler un module KDE (il est requis d'avoir préalablement récupérer le code source, par ex. via SVN. voir [[Getting_Started/Sources/Using_Subversion_with_KDE|Using Subversion with KDE]]): <syntaxhighlight lang="bash"> cs KDE/kdebase cmakekde </code> Sinon vous devrez faire ceci: <syntaxhighlight lang="bash"> mkdir -p ~/build/KDE/kdebase && cd ~/build/KDE/kdebase cmake -DKDE4_BUILD_TESTS=TRUE -DCMAKE_BUILD_TYPE=debugfull \ -DCMAKE_INSTALL_PREFIX=~/kde ~/src/KDE/kdebase make </code> {{warning|Ne jamais supprimer CMakeCache.txt puis taper make; toujours ré-executez cmake avec les bonnes options après avoir supprimer CMakeCache.txt.}} ===Utiliser kdesvn-build=== [http://kdesvn-build.kde.org kdesvn-build] est un script tout-en-un: il gère la récupération des sources ou leur mise à jour depuis subversion, l'éxecution de cmake, make, make install, et le stockage de l'output dans les fichiers logs. Copiez kdesvn-buildrc-sample en $KDE_SRC/.kdesvn-buildrc, puis éditez-le. Options globales: * binpath - n'oubliez pas le chemin vers icecream, la variable d'environnement PATH ne compte pas * qtdir, svn-server, source-dir, build-dir, kdedir Options par module: module qt-copy # kdesvn-build ajoute le préfixe à $qtdir configure-flags [....] apply-qt-patches true make-options -j3 sub-src sub-tools end module module kdelibs make-options -DKDE4_BUILD_TESTS=TRUE -DCMAKE_BUILD_TYPE=debugfull end module ==Programmes KDE4 dans KDE3== Xephyr -screen 1240x768 -ac :4 & export DISPLAY=:4 sh -x startkde 2>&1 | tee kde4.log >./list-kde4-binaries /d/kde/inst/kde4/bin/kwin, pid 6756 /d/kde/inst/kde4/bin/kpersonalizer, pid 6757 >./kill-kde4-binaries Killing /d/kde/inst/kde4/bin/kwin, pid 6756 Killing /d/kde/inst/kde4/bin/kpersonalizer, pid 6757 Vous pouvez obtenir les scripts list-kde4-binaries et kill-kde4-binaries dans http://web.davidfaure.fr/scripts/ [[Category:Shell Scripting]] [[Category:KDE4]]