m (More translations) |
|||
| (2 intermediate revisions by one user not shown) | |||
| Line 1: | Line 1: | ||
| − | + | ||
{{TutorialBrowser| | {{TutorialBrowser| | ||
| Line 65: | Line 65: | ||
To easily swap from build and source folder back and forth, you can use cs and cb functions that work like the following: | To easily swap from build and source folder back and forth, you can use cs and cb functions that work like the following: | ||
| − | < | + | <syntaxhighlight lang="bash"> |
pwd | pwd | ||
~/kde/src/4/kdebase | ~/kde/src/4/kdebase | ||
| Line 73: | Line 73: | ||
cs && pwd | cs && pwd | ||
~/kde/src/4/kdebase | ~/kde/src/4/kdebase | ||
| − | </ | + | </syntaxhighlight> |
A number of kde-related scripts will have to be able to do the same. Simply do: | A number of kde-related scripts will have to be able to do the same. Simply do: | ||
| Line 89: | Line 89: | ||
==== Vaihtoehtoinen tapa ==== | ==== Vaihtoehtoinen tapa ==== | ||
Seuraavan koodin avulla voit käyttää yläpuolella kuvatun <tt>cs</tt>-käskyn kaltaista <tt>cd</tt>-komentoa: | Seuraavan koodin avulla voit käyttää yläpuolella kuvatun <tt>cs</tt>-käskyn kaltaista <tt>cd</tt>-komentoa: | ||
| − | < | + | <syntaxhighlight lang="bash"> |
export CDPATH=.:~/kde/src | export CDPATH=.:~/kde/src | ||
| − | </ | + | </syntaxhighlight> |
Tämän ansiosta automaattinen täydennys toimii, kun käytät zsh:ta. Jos kirjoitat cd 4/kdemul ja painat tabulaattoria, se täydentyy muotoon 4/kdemultimedia riippumatta siitä, missä hakemistossa satut olemaan. Tämä temppu ei toimi bashissa - mutta et kai nyt muuta käytäkään kuin zsh:ta? :) | Tämän ansiosta automaattinen täydennys toimii, kun käytät zsh:ta. Jos kirjoitat cd 4/kdemul ja painat tabulaattoria, se täydentyy muotoon 4/kdemultimedia riippumatta siitä, missä hakemistossa satut olemaan. Tämä temppu ei toimi bashissa - mutta et kai nyt muuta käytäkään kuin zsh:ta? :) | ||
| Line 100: | Line 100: | ||
==== Siirtyminen takaisin edelliseen hakemistoon ==== | ==== Siirtyminen takaisin edelliseen hakemistoon ==== | ||
Edelliseen hakemistoon palaaminen onnistuu helposti zsh:lla. Lisää tämä .zshrc:hen | Edelliseen hakemistoon palaaminen onnistuu helposti zsh:lla. Lisää tämä .zshrc:hen | ||
| − | < | + | <syntaxhighlight lang="bash"> |
setopt AUTO_PUSHD | setopt AUTO_PUSHD | ||
alias p=popd | alias p=popd | ||
| − | </ | + | </syntaxhighlight> |
ja "p"-kirjainta näpäyttämällä palaat edelliseen hakemistoon, niin monta kertaa kuin haluat. (Kirjoita "dirs -v", jos haluat nähdä luettelon aiemmista hakemistoista.) | ja "p"-kirjainta näpäyttämällä palaat edelliseen hakemistoon, niin monta kertaa kuin haluat. (Kirjoita "dirs -v", jos haluat nähdä luettelon aiemmista hakemistoista.) | ||
| Line 115: | Line 115: | ||
Huolehdi, että editorisi käyttää sen sijaan käärinskriptiä | Huolehdi, että editorisi käyttää sen sijaan käärinskriptiä | ||
| − | < | + | <syntaxhighlight lang="bash"> |
#!/bin/sh | #!/bin/sh | ||
if test "$1" = "-k"; then shift; fi | if test "$1" = "-k"; then shift; fi | ||
| Line 135: | Line 135: | ||
echo "calling makeobj -j $jvalue $arg" | echo "calling makeobj -j $jvalue $arg" | ||
makeobj -j $jvalue $arg | makeobj -j $jvalue $arg | ||
| − | </ | + | </syntaxhighlight> |
Hae tämä skripti: http://web.davidfaure.fr/scripts/makefromemacs. | Hae tämä skripti: http://web.davidfaure.fr/scripts/makefromemacs. | ||
| Line 158: | Line 158: | ||
==== 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 172: | Line 172: | ||
export QT_PLUGIN_PATH=$KDEDIR/lib/kde4/plugins | export QT_PLUGIN_PATH=$KDEDIR/lib/kde4/plugins | ||
export KDEDIRS=$KDEDIR | export KDEDIRS=$KDEDIR | ||
| − | </ | + | </syntaxhighlight> |
==== Käyttäjä ==== | ==== Käyttäjä ==== | ||
| − | < | + | <syntaxhighlight lang="bash"> |
export KDEHOME=$HOME/.kde4 | export KDEHOME=$HOME/.kde4 | ||
| − | </ | + | </syntaxhighlight> |
==== Muut ==== | ==== Muut ==== | ||
| − | < | + | <syntaxhighlight lang="bash"> |
export QTEST_COLORED=1 | export QTEST_COLORED=1 | ||
export KDE_COLOR_DEBUG=1 | export KDE_COLOR_DEBUG=1 | ||
| − | </ | + | </syntaxhighlight> |
==KDE-moduulin kääntäminen== | ==KDE-moduulin kääntäminen== | ||
===Manuaalisesti=== | ===Manuaalisesti=== | ||
Jos käytössäsi on em. {{path|~/.bashrc}}, KDE-moduulin kääntäminen on erittäin helppoa. (Sinulla täytyy olla lähdekoodi esim. SVN:n kautta. Katso ohjeet kohdasta [[Getting_Started/Sources/Using_Subversion_with_KDE|Using Subversion with KDE]]) | Jos käytössäsi on em. {{path|~/.bashrc}}, KDE-moduulin kääntäminen on erittäin helppoa. (Sinulla täytyy olla lähdekoodi esim. SVN:n kautta. Katso ohjeet kohdasta [[Getting_Started/Sources/Using_Subversion_with_KDE|Using Subversion with KDE]]) | ||
| − | < | + | <syntaxhighlight lang="bash"> |
cs KDE/kdebase | cs KDE/kdebase | ||
cmakekde | cmakekde | ||
| − | </ | + | </syntaxhighlight> |
Muutoin sinun pitäisi kirjoittaa seuraava: | Muutoin sinun pitäisi kirjoittaa seuraava: | ||
| − | < | + | <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> |
{{warning|Älä koskaan poista tiedostoa CMakeCache.txt ja kirjoita sitten komentoa make. Suorita aina cmake uudelleen oikeilla valitsimilla CMakeCache.txt-tiedoston poistamisen jälkeen.}} | {{warning|Älä koskaan poista tiedostoa CMakeCache.txt ja kirjoita sitten komentoa make. Suorita aina cmake uudelleen oikeilla valitsimilla CMakeCache.txt-tiedoston poistamisen jälkeen.}} | ||
| Tutorial Series | Getting Started |
| Previous | Getting Started/Build/KDE4 |
| What's Next | n/a |
| Further Reading | Alkuperäisen esittelyn tekijä: David Faure |
Contents |
Aika on kallisarvoista. Tähän kurssiin on koottu David Fauren viisaudet kuinka saada eniten irti ajastamme ja ponnistuksistamme säästämällä molempia käyttämällä joitakin yksinkertaisia skriptejä ja tekniikoita KDE 4-kehityksessä.
Jos todella haluat käyttää erillistä käyttäjätiliä kehitykseen, katso ohjeet täältä.
Mutta ajan säästämiseksi ja monien pulmien välttämiseksi on hyvin suositeltavaa tehdä tämä kaikki tavallisena käyttäjänä. Tarvitset vain helpon tavan vaihtaa ympäristöstä toiseen. Kun siirryt hakemistoon ~/kde/src/4, haluat tietysti olla kde4-ympäristössä.
Tee tämä liittämällä http://web.davidfaure.fr/scripts/cd_function omaan .zshrc tai .bashrc -tiedostoosi ja hae http://web.davidfaure.fr/scripts/findup jonnekin $PATH-hakemistoosi (esimerkiksi hakemistoon $HOME/bin tai /usr/local/bin).
Tällä tavalla funktio tarkistaa .my-setup-tiedoston joka kerta, kun siirryt hakemistoon ja käyttää sitä lähteenä (se katsoo myös äitihakemistoa, kunnes löytää tiedoston eikä merkitse samaa lähteeksi kahdesti peräkkäin).
Aseta kaikki kde4-kohtaiset ympäristömuuttujat (ne kerrotaan yksityiskohtaisesti myöhemmin tällä sivulla) tiedostoon ~/kde/src/4/.my-setup ja tee sama muille ympäristöille (kde3, ja missä tahansa muualla, jossa tarvitset projektikohtaisia ympäristömuuttujia...)
For Qt, by habit from the Qt3 times and to save time by avoiding "make install" after a change, I recommend using one directory for source, builds and install. This is done by configuring Qt with --prefix=$PWD. This isn't mandatory though.
Qt-Path: ~/qt/4/qt-copy
It was convenient in kde3, it is mandatory in kde4: you need to use out-of-source builds, i.e. separate build and source directories. It makes it very easy to rebuild from scratch, removing all generated files - even old ones that "make clean" wouldn't remove. It is easier to look at the source files (grep, ls etc.). It allows multiple build trees with different settings, e.g. debug and release.
Thus source modules for kde4 are checked out in ~/kde/src/4/ and building happens in ~/kde/build/4/.
Jos käytät bashia, tutustu tähän .bashrc-tiedostoon. Kyseiseen esimerkkitiedostoon on laitettu kaikki KDE4-ympäristömuuttujat ja joitakin apufunktioita. Voit myös tutustua näihin skripteihin, jotka on kirjoitettu edellisen .bashrc:n pohjalta.
The steps below describe some of these features as well as giving alternative and additional functions.
Read further about compiling a KDE module.
To easily swap from build and source folder back and forth, you can use cs and cb functions that work like the following:
pwd ~/kde/src/4/kdebase cb && pwd ~/kde/build/4/kdebase # note that this folder is created if it does not exist cs && pwd ~/kde/src/4/kdebase
A number of kde-related scripts will have to be able to do the same. Simply do: export OBJ_REPLACEMENT='s#/kde/src/#/kde/build/#' This allows the makeobj script from kdesdk to switch from src to build. If you also do: alias make=makeobj then you can simply type make from the source dir and it will be able to build. This is also very useful in editors - if your vi or emacs uses makeobj as the make command, you can compile with a single key press.
In addition, for fast navigation to other directories, it is very convenient to be able to type "cs 4/kdelibs" in order to go to ~/src/4/kdelibs, from anywhere. For instance, you could be in ~/kde/src/4/kdebase/workspace/kcontrol and now you decide to look at kdecore... No need to type a long series of "../.." or to restart from the top. You can just type cs 4/kdelibs/kdecore.
This is doable via the two functions cs and cb defined in the .bashrc.
Seuraavan koodin avulla voit käyttää yläpuolella kuvatun cs-käskyn kaltaista cd-komentoa:
export CDPATH=.:~/kde/src
Tämän ansiosta automaattinen täydennys toimii, kun käytät zsh:ta. Jos kirjoitat cd 4/kdemul ja painat tabulaattoria, se täydentyy muotoon 4/kdemultimedia riippumatta siitä, missä hakemistossa satut olemaan. Tämä temppu ei toimi bashissa - mutta et kai nyt muuta käytäkään kuin zsh:ta? :)
The minimal cs and cb aliases (same as above but without support for arguments) are: alias cb='cd `pwd | sed -e s,/kde/src/,/kde/build/,`' alias cs='cd `pwd | sed -e s,/kde/build/,/kde/src/,`'
Edelliseen hakemistoon palaaminen onnistuu helposti zsh:lla. Lisää tämä .zshrc:hen
setopt AUTO_PUSHD alias p=popd
ja "p"-kirjainta näpäyttämällä palaat edelliseen hakemistoon, niin monta kertaa kuin haluat. (Kirjoita "dirs -v", jos haluat nähdä luettelon aiemmista hakemistoista.)
Here you can find more CMake information.
cd 4/kdelibs/kio/kio ; make => mitään ei tapahdu, Makefile on äitihakemistossa.
Huolehdi, että editorisi käyttää sen sijaan käärinskriptiä
#!/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
Hae tämä skripti: http://web.davidfaure.fr/scripts/makefromemacs.
touch kdecore/kapplication.h cd kdeui ; make
=> kääntää ensin kohteen kdecore
touch kdecore/kapplication.h cd kdeui ; make kdeui/fast
=> kääntää uudelleen vain kohteen kdeui
make install/fast
Mutta huomaa, että normaalitila (ilman /fastia) on myös hyödyllinen muissa tapauksissa: Esimerkiksi muokkaat
kdelibs/kio/kio/kdirmodel.cpp
ja teet sille yksikkötestin
kdelibs/kio/tests/kdirmodeltest.cpp
Jos nyt haluat kääntää uudelleen sekä libkio:n että yksikkötestin, anna vain käsky "make kdirmodeltest" hakemistossa kdelibs/kio/tests.
Tässä on lueteltu kaikki ympäristömuuttujat, jotka tulisi asettaa esimerkiksi tiedostossa $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
Jos käytössäsi on em. ~/.bashrc, KDE-moduulin kääntäminen on erittäin helppoa. (Sinulla täytyy olla lähdekoodi esim. SVN:n kautta. Katso ohjeet kohdasta Using Subversion with KDE)
cs KDE/kdebase
cmakekdeMuutoin sinun pitäisi kirjoittaa seuraava:
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
| Warning |
|---|
| Älä koskaan poista tiedostoa CMakeCache.txt ja kirjoita sitten komentoa make. Suorita aina cmake uudelleen oikeilla valitsimilla CMakeCache.txt-tiedoston poistamisen jälkeen. |
kdesvn-build is an all-in-one script: it handles the checking-out or updating from subversion, running cmake, make, make install, and storing all output in log files.
Copy kdesvn-buildrc-sample to $KDE_SRC/.kdesvn-buildrc, then edit it. Global options:
Per-module options:
module qt-copy # kdesvn-build sets the prefix to $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
Voit hakea list-kde4-binaries ja kill-kde4-binaries -skriptit osoitteesta http://web.davidfaure.fr/scripts/