Difference between revisions of "Getting Started/Increased Productivity in KDE4 with Scripts (se)"

Jump to: navigation, search
(Created page with '{{Template:I18n/Language Navigation Bar|Getting_Started/Increased Productivity in KDE4 with Scripts}} {{TutorialBrowser| series=Hur man Börjar| name=Utveckla Produktivt Med S...')
 
 
(4 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{Template:I18n/Language Navigation Bar|Getting_Started/Increased Productivity in KDE4 with Scripts}}
+
 
  
 
{{TutorialBrowser|
 
{{TutorialBrowser|
  
series=Hur man Börjar|
+
series=Hur man Börjar/Öka produktiviteten i KDE4 med Skript|
  
 
name=Utveckla Produktivt Med Skript|
 
name=Utveckla Produktivt Med Skript|
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:
<code bash>
+
<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
</code>
+
</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:
<code bash>
+
<syntaxhighlight lang="bash">
 
export CDPATH=.:~/kde/src
 
export CDPATH=.:~/kde/src
</code>
+
</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:
<code bash>
+
<syntaxhighlight lang="bash">
 
setopt AUTO_PUSHD
 
setopt AUTO_PUSHD
 
alias p=popd
 
alias p=popd
</code>
+
</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
<code bash>
+
<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
</code>
+
</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 ====
<code bash>
+
<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
</code>
+
</syntaxhighlight>
  
 
==== KDE ====
 
==== KDE ====
<code bash>
+
<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
</code>
+
</syntaxhighlight>
  
 
==== User ====
 
==== User ====
<code bash>
+
<syntaxhighlight lang="bash">
 
export KDEHOME=$HOME/.kde4
 
export KDEHOME=$HOME/.kde4
</code>
+
</syntaxhighlight>
  
 
==== Others ====
 
==== Others ====
<code bash>
+
<syntaxhighlight lang="bash">
 
export QTEST_COLORED=1
 
export QTEST_COLORED=1
 
export KDE_COLOR_DEBUG=1
 
export KDE_COLOR_DEBUG=1
</code>
+
</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]]):
<code bash>
+
<syntaxhighlight lang="bash">
 
cs KDE/kdebase
 
cs KDE/kdebase
 
cmakekde
 
cmakekde
</code>
+
</syntaxhighlight>
  
 
Annars måste du göra följande:
 
Annars måste du göra följande:
<code bash>
+
<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
</code>
+
</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.}}
  
===Använda kdesvn-build===
+
===Att använda kdesvn-build===
 
[http://kdesvn-build.kde.org 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.
 
[http://kdesvn-build.kde.org 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.
 
   
 
   
Line 237: Line 237:
 
  end module
 
  end module
  
==KDE4 programs in KDE3==
+
==KDE4 program i KDE3==
 
  Xephyr -screen 1240x768 -ac :4 &
 
  Xephyr -screen 1240x768 -ac :4 &
 
  export DISPLAY=:4
 
  export DISPLAY=:4
Line 250: Line 250:
 
  Killing /d/kde/inst/kde4/bin/kpersonalizer, pid 6757
 
  Killing /d/kde/inst/kde4/bin/kpersonalizer, pid 6757
  
You can get the scripts list-kde4-binaries and kill-kde4-binaries from http://web.davidfaure.fr/scripts/
+
Du kan ladda ner skripten list-kde4-binaries och kill-kde4-binaries från http://web.davidfaure.fr/scripts/  
  
 
[[Category:Shell Scripting]]
 
[[Category:Shell Scripting]]
 
[[Category:KDE4]]
 
[[Category:KDE4]]

Latest revision as of 14:19, 18 July 2012


Utveckla Produktivt Med Skript
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

[edit] Abstrakt

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.

[edit] Att sätta Upp Miljön

[edit] Varför installera som användare och inte som root?

  • ett enkelt kommando för att Kompilera+Länka+Installera (eller till och med genom att använda en enkel tangent i din editor), man behöver inte su/sudo
  • ingen risk för root-ägda filer i utvecklings-katalogen, som kan hända när några ändringar tvingar make install till omkompilering av en del filer
  • säkrare om något går fel (till exempel, användning av fel prefix skulle kunna skriva över kde3 system)
  • make install är snabbare än "make && sudo make install" för att makefilerna blir parsade en gång
  • Inga link errors (Länknings-fel) under en sudo make install för att root's miljö saknar inlägg i LD_LIBRARY_PATH. Ärligt talat, att sätta upp miljön en gång är svårt nog, så varför göra det dubbla jobbet för två användare?


[edit] Att sätta upp för utveckling

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...)


[edit] Exempel genvägar

[edit] Qt

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

[edit] KDE

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.

  1. Source: ~/kde/src/[version]
  2. Build: ~/kde/build/[version]

Även om source moduler för KDE4 är kollade & läses igenom i ~/kde/src/4/ så sker byggnaden/skapandet i ~/kde/build/4/.


[edit] Miljö Variabler och andra hjälpfulla funktioner

[edit] Bash

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.

[edit] Katalog navigation

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.

[edit] Alternativ

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/,`'

[edit] 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:

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).

[edit] CMake

Här kan du finna more CMake information.

[edit] CMake och underkataloger

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.

[edit] CMake och beroeenden

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.

[edit] Lista av KDE 4 miljö variabler

Detta listar alla miljö variabler du borde lägga till, tex i $KDESRC/4/.my-setup

[edit] Qt

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

[edit] KDE

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

[edit] User

export KDEHOME=$HOME/.kde4

[edit] Others

export QTEST_COLORED=1
export KDE_COLOR_DEBUG=1

[edit] Kompilering av KDE modul

[edit] Manuellt

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
cmakekde

Annars 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

Template:Varning

[edit] Att använda kdesvn-build

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:

  • binpath - don't forget the path to icecream, the PATH env var doesn't count
  • qtdir, svn-server, source-dir, build-dir, kdedir

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

[edit] KDE4 program i 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

Du kan ladda ner skripten list-kde4-binaries och kill-kde4-binaries från http://web.davidfaure.fr/scripts/


This page was last modified on 18 July 2012, at 14:19. This page has been accessed 2,500 times. Content is available under Creative Commons License SA 3.0 as well as the GNU Free Documentation License 1.2.
KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V.Legal