#! /bin/sh
# ### !!! WARNING !!! ###
# This script does not deal with multiple versions of the same library. One
# of the versions will get overwritten.
# $KDEDIR needs to be set!!
# $KDE_BUILD needs to be set!!!
# This function needs the full name of one library (.so) in the build directory
# as argument.
# It then looks in the KDE install directory ($KDEDIR/lib) for libraries with a
# similar name and replaces all occurences of those libraries with a symlink to
# the library in the build directory.
# "Similar name" in this context means the basename of the given library plus any
# suffixes, e.g. ".1.0.0".
ReplaceBuildLib() {
FULLNAME=$1
BASENAME=`basename $FULLNAME`
REPLACEDIR=$KDEDIR/lib
# Print some basic info
echo " Symlinking $1"
echo " Basename: $BASENAME"
echo " Looking for installed library in $REPLACEDIR and subdirs..."
# Find libraries to replace with symlinks
echo " Found the following installed libraries which maches name:"
REPLACELIBS=`find $REPLACEDIR -name $BASENAME*`
for i in $REPLACELIBS; do
echo " $i"
done
# Remove those libraries
echo " Removing those libraries"
for i in $REPLACELIBS; do
echo " Removing $i"
rm $i
done
# Now replace removed libraries with symlinks
echo " Symlinking those libraries"
for i in $REPLACELIBS; do
echo " Symlinking $i to $FULLNAME"
ln -s $FULLNAME $i
done
}
echo "Making symlinks for libraries from $KDEDIR/lib to $KDE_BUILD/KDE/$1..."
echo "Searching for libraries..."
# Search for libraries from root-dir so we will get the full name
cd /
ALLLIBRARIES=`find $KDE_BUILD/KDE/$1 -name *.so`
cd -
# Now process each library found
for LIBRARY in $ALLLIBRARIES; do
ReplaceBuildLib $LIBRARY
done