| (2 intermediate revisions by one user not shown) | |||
| Line 1: | Line 1: | ||
| − | + | ||
{{TutorialBrowser| | {{TutorialBrowser| | ||
| Line 74: | Line 74: | ||
För att enkelt växla mellan build och source katalogen fram och tillbaka, så kan du använda cs och cb funktioner som fungerar som följer: | För att enkelt växla mellan build och source katalogen fram och tillbaka, så kan du använda cs och cb funktioner som fungerar som följer: | ||
| − | < | + | <syntaxhighlight lang="bash"> |
pwd | pwd | ||
~/kde/src/4/kdebase | ~/kde/src/4/kdebase | ||
| Line 82: | Line 82: | ||
cs && pwd | cs && pwd | ||
~/kde/src/4/kdebase | ~/kde/src/4/kdebase | ||
| − | </ | + | </syntaxhighlight> |
Ett antal av de kde-relaterade skripten kommer behöva att göra samma sak. | Ett antal av de kde-relaterade skripten kommer behöva att göra samma sak. | ||
| Line 99: | Line 99: | ||
==== Alternativ ==== | ==== Alternativ ==== | ||
Med följande kod möjliggörs användandet av dessa snabb-kommando <tt>cd</tt> liknande <tt>cs</tt> beskrivna här över: | Med följande kod möjliggörs användandet av dessa snabb-kommando <tt>cd</tt> liknande <tt>cs</tt> beskrivna här över: | ||
| − | < | + | <syntaxhighlight lang="bash"> |
export CDPATH=.:~/kde/src | export CDPATH=.:~/kde/src | ||
| − | </ | + | </syntaxhighlight> |
Fördelarna med detta är att när du använder zsh, är att "completion" tabba fram ordet. Prova att cd 4/kdemul och tryck på tabb-tangenten detta kommer att färdigställa katalognamnet 4/kdemultimedia, det kvittar var du är för tillfället. Men detta funkar tyvärr inte i Bash då - | Fördelarna med detta är att när du använder zsh, är att "completion" tabba fram ordet. Prova att cd 4/kdemul och tryck på tabb-tangenten detta kommer att färdigställa katalognamnet 4/kdemultimedia, det kvittar var du är för tillfället. Men detta funkar tyvärr inte i Bash då - | ||
| Line 112: | Line 112: | ||
==== Att gå tillbaka till en föregåeende katalog ==== | ==== Att gå tillbaka till en föregåeende katalog ==== | ||
Att gå tillbaka till ett föregående katalog kan enkelt göras med zsh. Lägg in i .zshrc: | Att gå tillbaka till ett föregående katalog kan enkelt göras med zsh. Lägg in i .zshrc: | ||
| − | < | + | <syntaxhighlight lang="bash"> |
setopt AUTO_PUSHD | setopt AUTO_PUSHD | ||
alias p=popd | alias p=popd | ||
| − | </ | + | </syntaxhighlight> |
och sedan kan du skriva ett enkel "p" för att hoppa tillbaka till den katalog du befann dig i tidigare i,så många gånger du behöver (skriv bara"dirs -v" för att se stacken av tidigare kataloger). | och sedan kan du skriva ett enkel "p" för att hoppa tillbaka till den katalog du befann dig i tidigare i,så många gånger du behöver (skriv bara"dirs -v" för att se stacken av tidigare kataloger). | ||
| Line 127: | Line 127: | ||
Få din editor att använda ett wrapper skript i stället | Få din editor att använda ett wrapper skript i stället | ||
| − | < | + | <syntaxhighlight lang="bash"> |
#!/bin/sh | #!/bin/sh | ||
if test "$1" = "-k"; then shift; fi | if test "$1" = "-k"; then shift; fi | ||
| Line 147: | Line 147: | ||
echo "calling makeobj -j $jvalue $arg" | echo "calling makeobj -j $jvalue $arg" | ||
makeobj -j $jvalue $arg | makeobj -j $jvalue $arg | ||
| − | </ | + | </syntaxhighlight> |
Få skriptet från: http://web.davidfaure.fr/scripts/makefromemacs. | Få skriptet från: http://web.davidfaure.fr/scripts/makefromemacs. | ||
| Line 172: | Line 172: | ||
==== Qt ==== | ==== Qt ==== | ||
| − | < | + | <syntaxhighlight lang="bash"> |
export QTDIR=/d/qt/4/qt-copy | export QTDIR=/d/qt/4/qt-copy | ||
export PATH=$QTDIR/bin:$PATH | export PATH=$QTDIR/bin:$PATH | ||
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH | export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH | ||
export PKG_CONFIG_PATH=$QTDIR/lib:$PKG_CONFIG_PATH | export PKG_CONFIG_PATH=$QTDIR/lib:$PKG_CONFIG_PATH | ||
| − | </ | + | </syntaxhighlight> |
==== KDE ==== | ==== KDE ==== | ||
| − | < | + | <syntaxhighlight lang="bash"> |
export KDEDIR=/d/kde/inst/kde4 | export KDEDIR=/d/kde/inst/kde4 | ||
export PATH=$KDEDIR/bin:$PATH | export PATH=$KDEDIR/bin:$PATH | ||
| Line 186: | Line 186: | ||
export QT_PLUGIN_PATH=$KDEDIR/lib/kde4/plugins | export QT_PLUGIN_PATH=$KDEDIR/lib/kde4/plugins | ||
export KDEDIRS=$KDEDIR | export KDEDIRS=$KDEDIR | ||
| − | </ | + | </syntaxhighlight> |
==== User ==== | ==== User ==== | ||
| − | < | + | <syntaxhighlight lang="bash"> |
export KDEHOME=$HOME/.kde4 | export KDEHOME=$HOME/.kde4 | ||
| − | </ | + | </syntaxhighlight> |
==== Others ==== | ==== Others ==== | ||
| − | < | + | <syntaxhighlight lang="bash"> |
export QTEST_COLORED=1 | export QTEST_COLORED=1 | ||
export KDE_COLOR_DEBUG=1 | export KDE_COLOR_DEBUG=1 | ||
| − | </ | + | </syntaxhighlight> |
==Kompilering av KDE modul== | ==Kompilering av KDE modul== | ||
===Manuellt=== | ===Manuellt=== | ||
Om du använder tidigare nämnda {{path|~/.bashrc}} så är det väldigt bekvämt att kompilera en KDE modul (det krävs att du skaffat källkoden, tex genomSVN. se [[Getting_Started/Sources/Using_Subversion_with_KDE|Using Subversion with KDE]]): | Om du använder tidigare nämnda {{path|~/.bashrc}} så är det väldigt bekvämt att kompilera en KDE modul (det krävs att du skaffat källkoden, tex genomSVN. se [[Getting_Started/Sources/Using_Subversion_with_KDE|Using Subversion with KDE]]): | ||
| − | < | + | <syntaxhighlight lang="bash"> |
cs KDE/kdebase | cs KDE/kdebase | ||
cmakekde | cmakekde | ||
| − | </ | + | </syntaxhighlight> |
Annars måste du göra följande: | Annars måste du göra följande: | ||
| − | < | + | <syntaxhighlight lang="bash"> |
mkdir -p ~/build/KDE/kdebase && cd ~/build/KDE/kdebase | mkdir -p ~/build/KDE/kdebase && cd ~/build/KDE/kdebase | ||
cmake -DKDE4_BUILD_TESTS=TRUE -DCMAKE_BUILD_TYPE=debugfull \ | cmake -DKDE4_BUILD_TESTS=TRUE -DCMAKE_BUILD_TYPE=debugfull \ | ||
-DCMAKE_INSTALL_PREFIX=~/kde ~/src/KDE/kdebase | -DCMAKE_INSTALL_PREFIX=~/kde ~/src/KDE/kdebase | ||
make | make | ||
| − | </ | + | </syntaxhighlight> |
{{Varning|Ta alldrig bort CMakeCache.txt och sedan skriv make; kör alltid om cmake med korrekta valen efter bortagning av CMakeCache.txt.}} | {{Varning|Ta alldrig bort CMakeCache.txt och sedan skriv make; kör alltid om cmake med korrekta valen efter bortagning av CMakeCache.txt.}} | ||
| Tutorial Series | Hur man Börjar/Öka produktiviteten i KDE4 med Skript |
| Previous | Getting Started/Build/KDE4 |
| What's Next | n/a |
| Further Reading | Original presentationen är gjord av David Faure |
Contents |
Tid är dyrbar. Den här manualen delar med sig av David Faure's samlade vishet hur man får ut mest av tiden och kraft genom att spara på båda genom att använda enkla skript och tekniker medans man utvecklar i KDE 4.
om du verkligen vill ha ett separat konto för utväckling, titta i here.
Men för att spara tid och undvika många bekymmer, så är det starkt rekommenderat att du gör det från ditt vanliga användar-konto.
Allt du behöver är ett enkelt sätt att ändra mellan de olika kde-miljöerna om du förflyttar dig till ~/kde/src/4, så vill du ju vara i just kde4's miljö eller hur?
För att göra detta, klistra in detta http://web.davidfaure.fr/scripts/cd_function in i din .zshrc eller .bashrc, och ladda ner http://web.davidfaure.fr/scripts/findup någonstans i din $PATH (Till exempel in i $HOME/bin eller /usr/local/bin).
på det här viset, när du förflyttar dig in i en ny katalog , så kommer det att leta upp en my-setup fil och använda den som informations-källa (den kommer även att söka uppåt i katalogstrukturen efter my-setup tills den hittar en, och den läser inte in samma fil 2 gånger i rad).
Att sätta upp alla miljö-variabler som är specifika för kde4 (detta kommer att gås i genom senare på denna sida) och inom det området ~/kde/src/4/.my-setup filen, och göra det samma för andra miljöer (kde3, och överallt du behöver projekt-specifika miljöer och variabler...)
Qt har gamla vanor från QT3 tiden och för att spara tid genom att undvika "make install" efter en förändring, så rekommenderar jag att använda en katalog för source, make, och make install. Detta gör man genom att konfigurera om Qt med --prefix=$PWD. Detta är inget tvång dock.
Qt-Path: ~/qt/4/qt-copy
Det var smidigt i KDE3 men är ett måste i KDE4: du behöver använda delar utanför källkoden dvs olika bygg-kataloger och källkods-kataloger. Detta gör det väldigt enkelt att bygga nytt från skratch, tar man bort all skapade filer till och med gamla filer som "make clean" inte skulle ha tagit bort, det är enklare att kolla på källkoden/filerna (grep, ls, etc.) detta tillåter multipla byggträd med olika inställningar, egentligen debugga och släppa.
Även om source moduler för KDE4 är kollade & läses igenom i ~/kde/src/4/ så sker byggnaden/skapandet i ~/kde/build/4/.
Om du använder skalet Bash, så titta på this .bashrc. Det är ett exempel på konfigurations-fil för Bach som ställer in alla Miljö variabler för KDE4coch vissa hjälpfunktioner. Du kan också titta på these scripts som är baserad på .bashrc som visas i exemplet här ovan.
Stegen här nedan beskriver några av dessa möjligheter och ger alternativ och ytterliga funtioner.
Läs mer om compiling a KDE module.
För att enkelt växla mellan build och source katalogen fram och tillbaka, så kan du använda cs och cb funktioner som fungerar som följer:
pwd ~/kde/src/4/kdebase cb && pwd ~/kde/build/4/kdebase # notera att dena katalog skapas om den inte finns cs && pwd ~/kde/src/4/kdebase
Ett antal av de kde-relaterade skripten kommer behöva att göra samma sak. gör helt enkelt en export: export OBJ_REPLACEMENT='s#/kde/src/#/kde/build/#'
Detta tillåter makeobjekt skriptet från kdesdk att byta från src till build. och om du också gör ett alias: alias make=makeobj då kan du genom att helt enkelt skriva make i source katalogen och det ger möjligheter att bygga programmet. Detta är också väldigt smidigt i editorer - om din vi eller emacs använder makeobj som make kommando, så kan du kompilera genom en enkel tangent-tryckning.
Som möjlighet till till snabbare navigation till andra kataloger, så är det väldigt smidigt att bara behöva skriva in "cs 4/kdelibs" för att förflytta dig snabbt till ~/src/4/kdelibs, från valfri plats. Till exempel, du du skulle kunna befinna dig i ~/kde/src/4/kdebase/workspace/kcontrol och nu vill du titta på katalogen kdecore... då slipper du att skriva långa haranger av text likt "../.." eller inte heller starta om från toppen. du behöver bara skriva cs 4/kdelibs/kdecore.
Detta möjliggörs via de två komandona cs och cb beskrivna i the .bashrc.
Med följande kod möjliggörs användandet av dessa snabb-kommando cd liknande cs beskrivna här över:
export CDPATH=.:~/kde/src
Fördelarna med detta är att när du använder zsh, är att "completion" tabba fram ordet. Prova att cd 4/kdemul och tryck på tabb-tangenten detta kommer att färdigställa katalognamnet 4/kdemultimedia, det kvittar var du är för tillfället. Men detta funkar tyvärr inte i Bash då - men säkert använder du Zsh nu eller hur? :)
De mer resurssnåla cs och cb aliasen (samma som ovan men utan support för argument) är: alias cb='cd `pwd | sed -e s,/kde/src/,/kde/build/,`' alias cs='cd `pwd | sed -e s,/kde/build/,/kde/src/,`'
Att gå tillbaka till ett föregående katalog kan enkelt göras med zsh. Lägg in i .zshrc:
setopt AUTO_PUSHD alias p=popd
och sedan kan du skriva ett enkel "p" för att hoppa tillbaka till den katalog du befann dig i tidigare i,så många gånger du behöver (skriv bara"dirs -v" för att se stacken av tidigare kataloger).
Här kan du finna more CMake information.
cd 4/kdelibs/kio/kio ; make => inget händer, Makefilen är i en över-katalog
Få din editor att använda ett wrapper skript i stället
#!/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
Få skriptet från: http://web.davidfaure.fr/scripts/makefromemacs.
touch kdecore/kapplication.h cd kdeui ; make
=> recompiles kdecore first
touch kdecore/kapplication.h cd kdeui ; make kdeui/fast
=> recompiles only kdeui
make install/fast
Men notera att normalt läge (utan /fast) är användbart i andra sammanhang: Till exempel du editerar kdelibs/kio/kio/kdirmodel.cpp och enheten test för det
kdelibs/kio/tests/kdirmodeltest.cpp
Sedan för att Om-kompilera både libkio och enheten test, kör du helt enkelt "make kdirmodeltest" från kdelibs/kio/tests.
Detta listar alla miljö variabler du borde lägga till, tex i $KDESRC/4/.my-setup
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
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
export KDEHOME=$HOME/.kde4
export QTEST_COLORED=1 export KDE_COLOR_DEBUG=1
Om du använder tidigare nämnda ~/.bashrc så är det väldigt bekvämt att kompilera en KDE modul (det krävs att du skaffat källkoden, tex genomSVN. se Using Subversion with KDE):
cs KDE/kdebase
cmakekdeAnnars måste du göra följande:
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
kdesvn-build är ett allt i ett skript: det tar hand om att kolla upp och uppdatera från subversion, körden cmake, make, make install, och sparar alla fakta i logfiler.
Kopiera kdesvn-buildrc-exepel till $KDE_SRC/.kdesvn-buildrc, sedan editerar du den till. Global options:
Per-module options:
module qt-copy # kdesvn-build sätter prefixet till $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
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
Du kan ladda ner skripten list-kde4-binaries och kill-kde4-binaries från http://web.davidfaure.fr/scripts/