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...')
 
Line 3: Line 3:
 
{{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|

Revision as of 01:04, 13 August 2009


Contents

Getting_Started/Increased Productivity in KDE4 with Scripts


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

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.

Att sätta Upp Miljön

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?


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


Exempel genvägar

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

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


Miljö Variabler och andra hjälpfulla funktioner

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.

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

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

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

CMake

Här kan du finna more CMake information.

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

  1. !/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.

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.

Lista av KDE 4 miljö variabler

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

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

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

User

export KDEHOME=$HOME/.kde4

Others

export QTEST_COLORED=1 export KDE_COLOR_DEBUG=1

Kompilering av KDE modul

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

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

KDE4 programs in 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

You can get the scripts list-kde4-binaries and kill-kde4-binaries from http://web.davidfaure.fr/scripts/


KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V.Legal