Getting Started/Increased Productivity in KDE4 with Scripts/.bashrc (fi)

Jump to: navigation, search
Esimerkki .bashrc
Tutorial Series   Kuinka aloitetaan
Previous   None
What's Next   n/a
Further Reading   n/a

Yhteenveto

Tämä on esimerkki ~/.bashrc-tiedostosta. Käytä sitä kde-devel-tilisi kanssa, se tekee elämän paljon helpommaksi.

Huomaa cmakekde-rakentamistyyppi. 'debugfull' suositellaan kehittämistyössä ja gurutason virheenjäljityksessä. Jos haluat vain rakentaa viimeisimmän KDE-version, 'relwithdebinfo' (oletus kun rakentamistyyppiä ei ole määritelty) tekee nopeammat binääritiedostot joidenkin virheenjäljityskykyjen kustannuksella. Katso myös täältä.

Koodi

## Skripti, jota tarvitaan asettamaan joitakin muuttujia ja funktioita KDE 4
## -kehitykseen. Tämän pitäisi normaalisti sisältyä kde-devel-käyttäjäsi 
## ~/.bashrc-tiedostoon, jotta se suoritetaan kun käyttäjän istunto alkaa.
##
## If you don't use a separate user, the first section with the
## environment variables should go into a separate script.
 
prepend() { [ -d "$2" ] && eval $1=\"$2\$\{$1:+':'\$$1\}\" && export $1 ; }
 
# Other
# you might want to set a full value for PATH rather than prepend'ing, to make
# sure the your kde3 path isn't in here.
prepend PATH /usr/local/bin
 
# Qt
# only set Qt related variables if you compiled Qt on your own
# (which is discouraged). if you use the distro provided Qt, skip
# this section. Comment it if necessary.
export QTDIR=$HOME/qt-copy
prepend PATH $QTDIR/bin
prepend LD_LIBRARY_PATH $QTDIR/lib
prepend PKG_CONFIG_PATH $QTDIR/lib/pkgconfig
 
 
# KDE
export KDEDIR=$HOME/kde
export KDEHOME=$HOME/.kde4
export KDETMP=/tmp/kde4-$USER
mkdir -p $KDETMP
export KDEDIRS=$KDEDIR
prepend PATH $KDEDIR/bin
prepend LD_LIBRARY_PATH $KDEDIR/lib
prepend PKG_CONFIG_PATH $KDEDIR/lib/pkgconfig
prepend QT_PLUGIN_PATH $KDEDIR/lib/kde4/plugins
 
export PATH
export LD_LIBRARY_PATH
export PKG_CONFIG_PATH
export QT_PLUGIN_PATH
 
 
# CMake
# Make sure CMake searches the right places.
prepend CMAKE_PREFIX_PATH  $KDEDIR
prepend CMAKE_LIBRARY_PATH $KDEDIR/lib
prepend CMAKE_INCLUDE_PATH $KDEDIR/include
 
export CMAKE_PREFIX_PATH
export CMAKE_LIBRARY_PATH
export CMAKE_INCLUDE_PATH
 
 
# DBus
# only set DBUS related variables if you compiled dbus on your own
# (which is really discouraged). if you use the distro provided dbus,
# skip this variable. Uncomment it if necessary.
#export DBUSDIR=$KDEDIR
#prepend PKG_CONFIG_PATH $DBUSDIR/lib/pkgconfig
 
# only needed on some strange systems for compiling Qt. do not set
# it unless you have to.
#export YACC='byacc -d'
 
# XDG
unset XDG_DATA_DIRS # to avoid seeing kde3 files from /usr
unset XDG_CONFIG_DIRS
 
# you might want to change these:
export KDE_BUILD=$HOME/kde/build
export KDE_SRC=$HOME/kde/src
 
# make the debug output prettier
export KDE_COLOR_DEBUG=1
export QTEST_COLORED=1
 
# Make
# Tell many scripts how to switch from source dir to build dir:
export OBJ_REPLACEMENT="s#$KDE_SRC#$KDE_BUILD#"
# Use makeobj instead of make, to automatically switch to the build dir.
# If you don't have makeobj, install the package named kdesdk-scripts or
# kdesdk, or check out kdesdk/scripts from svn.
alias make=makeobj
 
# Uncomment the following lines if DBus does not work. DBus is not
# working if, when you run `dbus-uuidgen --ensure && qdbus`, you get an error.
#
# alias dbusstart="eval `PATH=$DBUSDIR/bin \
#  $DBUSDIR/bin/dbus-launch --auto-syntax`"
 
# A function to easily build the current directory of KDE.
#
# This builds only the sources in the current ~/{src,build}/KDE subdirectory.
# Usage: cs KDE/kdebase && cmakekde
#   will build/rebuild the sources in ~/src/KDE/kdebase
function cmakekde {
        local srcFolder current
 
        if test -n "$1"; then
                # srcFolder is defined via command line argument
                srcFolder="$1"
        else
                # get srcFolder for current dir
                srcFolder=`pwd | sed -e s,$KDE_BUILD,$KDE_SRC,`
        fi
        # we are in the src folder, change to build directory
        # Alternatively, we could just use makeobj in the commands below...
        current=`pwd`
        if [ "$srcFolder" = "$current" ]; then
                cb
        fi
        # To enable tests, uncomment -DKDE4_BUILD_TESTS=TRUE.
        # If you are building to debug or develop, it is reccommended to
        # uncomment the line -DCMAKE_BUILD_TYPE=debugfull. Be sure to move
        # it above the -DKDE4_BUILD_TESTS=TRUE line if you leave that one
        # commented out. You can also change "debugfull" to "debug" to save
        # disk space.
        # Some distributions use a suffix for their library directory when
        # on x86_64 (i.e. /usr/lib64) if so, you have to add -DLIB_SUFFIX=64
        # for example.
        cmake "$srcFolder" -DCMAKE_INSTALL_PREFIX=$KDEDIR \
               # -DKDE4_BUILD_TESTS=TRUE \
               # -DCMAKE_BUILD_TYPE=debugfull
 
        # uncomment the following two lines to make builds wait after
        # configuration step, so that the user can check configure output
        #echo "Press <ENTER> to continue..."
        #read userinput
 
        # Note: To speed up compiling, change 'make -j2' to 'make -jx',
        #   where x is your number of processors +1
        nice make -j2 && make install
        RETURN=$?
        cs
        return ${RETURN}
}
 
# for the lazy ones (aren't we all?)
function cmakekdeall {
        local folders
 
        folders="kdesupport KDE/kdelibs KDE/kdebase \
                KDE/kdepimlibs KDE/kdepim KDE/kdesdk \
                KDE/kdegraphics KDE/kdevplatform KDE/kdevelop \
                "
                # Add others or remove to taste, e.g.
                # KDE/kdemultimedia KDE/kdenetwork KDE/kdeutils \
 
        cd && cs # go to src root
        svn up $folders
 
        for f in $folders; do
            # Remove the "|| return" part if you don't want to
            # stop the build whenever a single module fails.
            cs $f && cmakekde || return
        done
}
 
# A function to easily change to the build directory.
# Usage: cb KDE/kdebase
#   will change to $KDE_BUILD/KDE/kdebase
# Usage: cb
#   will simply go to the build folder if you are currently in a src folder
#   Example:
#     $ pwd
#     /home/user/src/KDE/kdebase
#     $ cb && pwd
#     /home/user/build/KDE/kdebase
function cb {
        local dest
 
        # Make sure build directory exists.
        mkdir -p "$KDE_BUILD"
 
        # command line argument
        if test -n "$1"; then
                cd "$KDE_BUILD/$1"
                return
        fi
        # substitute src dir with build dir
        dest=`pwd | sed -e s,$KDE_SRC,$KDE_BUILD,`
        if test ! -d "$dest"; then
                # build directory does not exist, create
                mkdir -p "$dest"
        fi
        cd "$dest"
}
 
# Change to the source directory.  Same as cb, except this
# switches to $KDE_SRC instead of $KDE_BUILD.
# Usage: cs KDE/kdebase
#   will change to $KDE_SRC/KDE/kdebase
# Usage: cs
#   will simply go to the source folder if you are currently in a build folder
#   Example:
#     $ pwd
#     /home/user/build/KDE/kdebase
#     $ cs && pwd
#     /home/user/src/KDE/kdebase
function cs {
        local dest current
 
        # Make sure source directory exists.
        mkdir -p "$KDE_SRC"
 
        # command line argument
        if test -n "$1"; then
                cd "$KDE_SRC/$1"
        else
                # substitute build dir with src dir
                dest=`pwd | sed -e s,$KDE_BUILD,$KDE_SRC,`
                current=`pwd`
                if [ "$dest" = "$current" ]; then
                        cd "$KDE_SRC"
                else
                        cd "$dest"
                fi
        fi
}
 
# Add autocompletion to cs function
function _cs_scandir
{
        local base ext
 
        base=$1
        ext=$2
        if [ -d $base ]; then
                for d in `ls $base`; do
                        if [ -d $base/$d ]; then
                                dirs="$dirs $ext$d/"
                        fi
                done
        fi
}
 
function _cs()
{
        local cur dirs
        _cs_scandir "$KDE_SRC"
        _cs_scandir "$KDE_SRC/KDE" "KDE/"
        COMPREPLY=()
        cur="${COMP_WORDS[COMP_CWORD]}"
        COMPREPLY=( $(compgen -W "${dirs}" -- ${cur}) )
}
 
# Remove comment on next line to enable cs autocompletion
#complete -F _cs cs
 
function start3app {
        mkdir -p /tmp/$USER-kde
        export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11:/usr/games
        export LD_LIBRARY_PATH=
        export KDETMP=/tmp/$USER-kde
        export KDEVARTMP=/var/tmp/$USER-kde
        export KDEHOME=$HOME/.kde
        export KDEDIR=/usr
        export KDEDIRS=$KDEDIR
        export DISPLAY=:0
        eval "$@"
        source $HOME/.bashrc   #Reset environment variables again
}

Tarvitut muutokset

  • Jos käytät x64 SUSE Linux-levitysversiota, haluat ehkä lisätä argumentin -DLIB_SUFFIX=64 cmakekde-funktioosi (katso kommentit). Tämä varmistaa, että kirjastoja ei etsitä vain hakemistoista /lib ja /usr/lib vaan myös hakemistoista /lib64 ja /usr/lib64. Sinun tarvitsee ehkä myös asettaa PKG_CONFIG_PATH-ympäristömuuttujaan polku $KDEDIR/lib64/pkgconfig.
  • If you are using the same user to run the KDE4 installed through your system package management, you must also export the KDESYCOCA variable (for example export KDESYCOCA=$KDEVARTMP/kdesycoca-custom) or change the cache-$hostname symlink in this $KDEHOME to a real directory. This also ensures a further encapsulation of the development environment (but will cause slowdowns if your $HOME is on an NFS share)

This page was last modified on 18 July 2012, at 14:49. This page has been accessed 1,726 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