Skip to content

Instantly share code, notes, and snippets.

@jalcine
Created January 30, 2013 07:15
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jalcine/4671385 to your computer and use it in GitHub Desktop.
Save jalcine/4671385 to your computer and use it in GitHub Desktop.
Build script for KDE Telepathy project.
#!/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 <rohan16garg@gmail.com>
# Copyright (C) 2011 Dominik Schmidt <dev@dominik-schmidt.de>
# Copyright (C) 2011 Francesco Nwokeka <francesco.nwokeka@gmail.com>
#
# 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-qt4
ktp-common-internals
ktp-accounts-kcm
ktp-approver
ktp-text-ui
ktp-contact-list
ktp-presence-applet
ktp-contact-applet
ktp-filetransfer-handler
ktp-send-file
ktp-auth-handler
ktp-kded-module"
# 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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment