cutter/build.sh

103 lines
2.2 KiB
Bash
Raw Normal View History

2018-03-06 16:50:09 +00:00
#!/bin/sh
# This script is a work in progress
#### Constants ####
2018-03-16 23:41:43 +00:00
ERR=0
2018-03-06 16:50:09 +00:00
#### User variables ####
BUILD="build"
QMAKE_CONF=""
2018-10-31 16:07:53 +00:00
ROOT_DIR=`pwd`
2018-03-06 16:50:09 +00:00
2018-10-31 16:07:53 +00:00
# Create translations
lrelease ./src/Cutter.pro
check_r2() {
r2 -v >/dev/null 2>&1
if [ $? = 0 ]; then
R2COMMIT=$(r2 -v | tail -n1 | sed "s,commit: \\(.*\\) build.*,\\1,")
SUBMODULE=$(git submodule | grep "radare2" | awk '{print $1}')
if [ "$R2COMMIT" = "$SUBMODULE" ]; then
return 0
fi
fi
return 1
}
2018-03-06 16:50:09 +00:00
find_qmake() {
qmakepath=$(which qmake-qt5)
if [ -z "$qmakepath" ]; then
qmakepath=$(which qmake)
fi
if [ -z "$qmakepath" ]; then
echo "You need qmake to build Cutter."
echo "Please make sure qmake is in your PATH environment variable."
exit 1
fi
echo "$qmakepath"
}
find_gmake() {
gmakepath=$(which gmake)
if [ -z "$gmakepath" ]; then
gmakepath=$(which make)
fi
${gmakepath} --help 2>&1 | grep -q gnu
if [ $? != 0 ]; then
echo "You need GNU make to build Cutter."
echo "Please make sure gmake is in your PATH environment variable."
exit 1
fi
echo "$gmakepath"
}
2018-03-06 16:50:09 +00:00
# Build radare2
check_r2
if [ $? -eq 1 ]; then
printf "A (new?) version of radare2 will be installed. Do you agree? [Y/n] "
read answer
if [ -z "$answer" -o "$answer" = "Y" -o "$answer" = "y" ]; then
R2PREFIX=${1:-"/usr"}
git submodule init && git submodule update
cd radare2 || exit 1
./sys/install.sh "$R2PREFIX"
cd ..
else
echo "Sorry but this script won't work otherwise. Read the README."
exit 1
fi
2018-03-06 16:50:09 +00:00
else
echo "Correct radare2 version found, skipping..."
2018-03-06 16:50:09 +00:00
fi
# Build
2018-11-29 09:16:52 +00:00
mkdir -p "$BUILD"
2018-03-06 16:50:09 +00:00
cd "$BUILD" || exit 1
$(find_qmake) ../src/Cutter.pro $QMAKE_CONF
$(find_gmake) -j4
2018-03-16 23:41:43 +00:00
ERR=$((ERR+$?))
2018-10-31 16:07:53 +00:00
# Move translations
2018-11-29 09:16:52 +00:00
mkdir -p "`pwd`/translations"
2018-10-31 16:07:53 +00:00
find "$ROOT_DIR/src/translations" -maxdepth 1 -type f | grep "cutter_..\.qm" | while read SRC_FILE; do
mv $SRC_FILE "`pwd`/translations"
done
# Finish
2018-03-16 23:41:43 +00:00
if [ ${ERR} -gt 0 ]; then
echo "Something went wrong!"
2018-03-16 23:41:43 +00:00
else
echo "Build complete."
printf "This build of Cutter will be installed. Do you agree? [Y/n] "
read answer
if [ -z "$answer" -o "$answer" = "Y" -o "$answer" = "y" ]; then
$(find_gmake) install
else
echo "Binary available at $BUILD/Cutter"
fi
2018-03-16 23:41:43 +00:00
fi
2018-03-06 16:50:09 +00:00
cd ..