All pastes #961093 Raw Edit

Miscellany

public text v1 · immutable
#961093 ·published 2008-03-28 17:46 UTC
rendered paste body
## A script to setup some needed variables and functions for KDE 4 development.
## This should normally go in the ~/.bashrc file of your kde-devel user, so
## that it is executed when a session for that user is started.
##
## 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/kde/qt-copy
prepend PATH $QTDIR/bin
prepend LD_LIBRARY_PATH $QTDIR/lib
prepend PKG_CONFIG_PATH $QTDIR/lib/pkgconfig

# 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

# KDE
export KDEDIR=$HOME/kde
export KDEHOME=$HOME/.kde4
export KDETMP=/tmp/$USER-kde4
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

# 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 {
    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, add -DKDE4_BUILD_TESTS=TRUE to the next line.
    # you can also change "debugfull" to "debug" to save disk space.
    cmake "$srcFolder" -GKDevelop3 -DCMAKE_INSTALL_PREFIX=$KDEDIR \
        -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 -j3 && \
        make install;
}

# for the lazy ones, add/comment other directories
function cmakekdeall {
        cs kdesupport && svn up && cmakekde
        cs KDE/kdelibs && svn up && cmakekde
        cs KDE/kdepimlibs && svn up && cmakekde
        cs KDE/kdebase && svn up && cmakekde
        cs KDE/kdepim && svn up && cmakekde
        cs KDE/kdegraphics && svn up && cmakekde
        cs KDE/kdemultimedia && svn up && cmakekde
        cs KDE/kdenetwork && svn up && cmakekde
        cs KDE/kdeutils && svn up && cmakekde
}

# 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 {
    # 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 {
    # 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
{
    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
}


cd $HOME/kde/src/amarok