Difference between revisions of "KTp/Getting Set Up/Scripted"

Jump to: navigation, search
m (kded-integration-module got renamed to kded-module in the repos)
 
(21 intermediate revisions by 9 users not shown)
Line 5: Line 5:
 
#
 
#
 
# Build script for telepathy-kde, assumes you have the latest telepathy-qt4,  
 
# Build script for telepathy-kde, assumes you have the latest telepathy-qt4,  
# have a proper gitconfig setup for and that you use Project Neon
+
# have a proper gitconfig setup with the "kde:" prefix.
 
#
 
#
 
# Instructions on how to use the script :
 
# Instructions on how to use the script :
#     -b : Also build the cloned repos
+
#     -b   build only (updates repos before build)
 +
#    -bi  build and install (updates repos before build)
 +
#    -u    update/clone repos
 +
#    -h    show help menu
 
#
 
#
 
# Copyright (C) 2011 Rohan Garg <[email protected]>
 
# Copyright (C) 2011 Rohan Garg <[email protected]>
 +
# Copyright (C) 2011 Dominik Schmidt <[email protected]>
 +
# Copyright (C) 2011 Francesco Nwokeka <[email protected]>
 
#
 
#
 
# This program is free software: you can redistribute it and/or modify
 
# This program is free software: you can redistribute it and/or modify
Line 26: Line 31:
 
#
 
#
 
###############################################################################
 
###############################################################################
FILE=""
+
DIR="."
+
SOURCE_DIR="."
# init
+
INSTALL_DIR=`kde4-config --prefix`
# look for empty dir
+
 +
# Add telepathy-qt4 here, if you want to build it from master too
 +
REPOS="
 +
telepathy-logger-qt
 +
ktp-common-internals
 +
ktp-accounts-kcm
 +
ktp-approver
 +
ktp-auth-handler
 +
ktp-call-ui
 +
ktp-contact-list
 +
ktp-contact-runner
 +
ktp-desktop-applets
 +
ktp-filetransfer-handler
 +
ktp-kded-module
 +
ktp-send-file
 +
ktp-text-ui"
 +
# these don't work currently, readd them at some point
 +
# telepathy-nepomuk-service
 +
# telepathy-call-ui - dont have farsight*/
 +
# telepathy-kde - doesnt build
 +
# telepathy-testlib
 +
 +
# configure your own custom build function here
 +
function build {
 +
    for repo in $REPOS
 +
    do
 +
        cd $repo
 +
 
 +
        cpus=$(ls -d /sys/devices/system/cpu/cpu? | wc -l)
  
function build {
+
        echo ""
 +
        echo "####################################################"
 +
        echo "              Building $repo              "
 +
        echo "####################################################"
  
## Add/Remove custom CMake options over here
+
        if [ $NEONENV ]; then
customcmakeopts="-DCMAKE_INSTALL_PREFIX=`kde4-config --prefix` \
+
            neonmake
                -DCMAKE_BUILD_TYPE=debugfull"
+
        else
 +
            makej=$(($cpus + 1))
 +
            mkdir -p build
 +
            cd build
  
cpus=$(ls -d /sys/devices/system/cpu/cpu? | wc -l)
+
            if [ "$repo" = "telepathy-qt4" ]; then
 +
                cmake -DCMAKE_INSTALL_PREFIX=$INSTALL_DIR ..
 +
            else
 +
                cmake -DCMAKE_INSTALL_PREFIX=$INSTALL_DIR -DCMAKE_BUILD_TYPE=debugfull ..
 +
            fi
  
if [ -f /usr/bin/neonmake ]; then
+
            make --jobs=$makej
    neonmake
+
            cd ..
else
+
        fi
    makej=$(($cpus + 1))
+
        cd ..
    mkdir -p build
+
    done
    cd build
+
}
    cmake $customcmakeopts ..
+
 
    make --jobs=$makej
+
function buildInstall {
    cd ..
+
    build
fi
 
  
 +
    for repo in $REPOS
 +
    do
 +
        cd $repo/build
 +
        sudo make install
 +
        cd ../../
 +
    done
 
}
 
}
  
if [ -n "$(ls -A $DIR)" ]; then
+
function updateRepos {
     echo "Updating telepathy repos, since $DIR is not Empty"
+
    mkdir -p $SOURCE_DIR
     for folder in $(ls -p | grep \/); do
+
     cd $SOURCE_DIR
        cd $folder
+
 
        echo "####################################################"
+
     for repo in $REPOS
        echo "              Updating folder $folder             "  
+
    do
        echo "####################################################"
+
        if [ -d "$repo" ]; then
        git pull
+
            cd $repo
         if [ "$1" = "-b" ]; then
+
            echo ""
 +
            echo "####################################################"
 +
            echo "              Updating $repo             "  
 +
            echo "####################################################"
 +
 
 +
            git pull
 +
            cd ..
 +
         else
 +
            echo ""
 
             echo "####################################################"
 
             echo "####################################################"
             echo "              Building folder $folder              "
+
             echo "               Cloning $repo             "  
 
             echo "####################################################"
 
             echo "####################################################"
 +
 +
            if [ "$repo" = "telepathy-qt4" ]; then
 +
                git clone git://anongit.freedesktop.org/telepathy/$repo
 +
            else
 +
                git clone git://anongit.kde.org/$repo
 +
            fi
 +
        fi
 +
    done
 +
}
 +
 +
function showHelp {
 +
    echo "-b    build only (updates repos before build)"
 +
    echo "-bi  build and install (updates repos before build)"
 +
    echo "-u    update/clone repos"
 +
    echo "-h    show this help menu"
 +
}
 +
 +
 +
if [ "$?" = "0" ];
 +
    then
 +
        if [ "$1" = "-b" ];
 +
        then
 +
            updateRepos
 
             build
 
             build
 +
 +
        elif [ "$1" = "-bi" ];
 +
        then
 +
            updateRepos
 +
            buildInstall
 +
 +
        elif [ "$1" = "-u" ];
 +
        then
 +
            updateRepos
 +
 +
        else [ "$1" = "-h" ];
 +
            showHelp
 
         fi
 
         fi
        cd ..
 
    done
 
else
 
    echo "$DIR is Empty, clone them repos!!!"
 
    # Uncomment the next line to build telepathy-qt4 from sources as well
 
    # git://anongit.freedesktop.org/telepathy/telepathy-qt4
 
    git clone git://oscaf.git.sourceforge.net/gitroot/oscaf/shared-desktop-ontologies
 
    git clone kde:kwhiteboard
 
    git clone kde:telepathy-accounts-kcm
 
    git clone kde:telepathy-approver
 
    git clone kde:telepathy-call-ui
 
    git clone kde:telepathy-chat-handler
 
    git clone kde:telepathy-contact-list
 
    git clone kde:telepathy-kde
 
    git clone kde:telepathy-nepomuk-service
 
    git clone kde:telepathy-presence-applet
 
    git clone kde:telepathy-presence-dataengine 
 
    git clone kde:telepathy-testlib
 
    git clone kde:telepathy-test-tool
 
    git clone kde:telepathy-filetransfer-handler
 
    git clone kde:telepathy-send-file
 
    if [ "$1" = "-b" ]; then
 
      for folder in $(ls -p | grep \/); do
 
            cd $folder
 
              echo "####################################################"
 
              echo "              Building folder $folder              "
 
              echo "####################################################"
 
              build
 
              cd ..
 
      done
 
    fi
 
 
fi
 
fi
 +
 
</source>
 
</source>

Latest revision as of 21:13, 29 April 2013

Here is a script to help you a major part of Telepathy KDE, feel free to modify it according to your needs.

#!/bin/bash
#
# Build script for telepathy-kde, assumes you have the latest telepathy-qt4, 
# have a proper gitconfig setup with the "kde:" prefix.
#
# Instructions on how to use the script :
#     -b    build only (updates repos before build)
#     -bi   build and install (updates repos before build)
#     -u    update/clone repos
#     -h    show help menu
#
# Copyright (C) 2011 Rohan Garg <[email protected]>
# Copyright (C) 2011 Dominik Schmidt <[email protected]>
# Copyright (C) 2011 Francesco Nwokeka <[email protected]>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
#
###############################################################################
 
SOURCE_DIR="."
INSTALL_DIR=`kde4-config --prefix`
 
# Add telepathy-qt4 here, if you want to build it from master too 
REPOS="
telepathy-logger-qt
ktp-common-internals
ktp-accounts-kcm
ktp-approver
ktp-auth-handler
ktp-call-ui
ktp-contact-list
ktp-contact-runner
ktp-desktop-applets
ktp-filetransfer-handler
ktp-kded-module
ktp-send-file
ktp-text-ui"
# these don't work currently, readd them at some point
# telepathy-nepomuk-service
# telepathy-call-ui - dont have farsight*/
# telepathy-kde - doesnt build
# telepathy-testlib
 
# configure your own custom build function here
function build {
    for repo in $REPOS
    do
        cd $repo

        cpus=$(ls -d /sys/devices/system/cpu/cpu? | wc -l)

        echo ""
        echo "####################################################"
        echo "              Building $repo               "
        echo "####################################################"

        if [ $NEONENV ]; then
            neonmake
        else
            makej=$(($cpus + 1))
            mkdir -p build
            cd build

            if [ "$repo" = "telepathy-qt4" ]; then
                cmake -DCMAKE_INSTALL_PREFIX=$INSTALL_DIR ..
            else
                cmake -DCMAKE_INSTALL_PREFIX=$INSTALL_DIR -DCMAKE_BUILD_TYPE=debugfull ..
            fi

            make --jobs=$makej
            cd ..
        fi
        cd ..
    done
}

function buildInstall {
    build

    for repo in $REPOS
    do
        cd $repo/build
        sudo make install
        cd ../../
    done
}

function updateRepos {
    mkdir -p $SOURCE_DIR
    cd $SOURCE_DIR

    for repo in $REPOS
    do
        if [ -d "$repo" ]; then
            cd $repo
            echo ""
            echo "####################################################"
            echo "               Updating $repo              " 
            echo "####################################################"

            git pull
            cd ..
        else
            echo ""
            echo "####################################################"
            echo "               Cloning $repo              " 
            echo "####################################################"

            if [ "$repo" = "telepathy-qt4" ]; then
                git clone git://anongit.freedesktop.org/telepathy/$repo
            else
                git clone git://anongit.kde.org/$repo
            fi
        fi
    done
}

function showHelp {
    echo "-b    build only (updates repos before build)"
    echo "-bi   build and install (updates repos before build)"
    echo "-u    update/clone repos"
    echo "-h    show this help menu"
}


if [ "$?" = "0" ]; 
    then
        if [ "$1" = "-b" ];
        then
            updateRepos
            build

        elif [ "$1" = "-bi" ];
        then
            updateRepos
            buildInstall

        elif [ "$1" = "-u" ];
        then
            updateRepos

        else [ "$1" = "-h" ];
            showHelp
        fi
fi

This page was last edited on 29 April 2013, at 21:13. Content is available under Creative Commons License SA 4.0 unless otherwise noted.