1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188
|
#!/bin/bash
set -e
# set -v
dirname=`dirname "$0"`
tmp="${dirname#?}"
if [ "${dirname%$tmp}" != "/" ]; then
dirname=$PWD/$dirname
fi
PROJECTPATH=$(readlink -e "${dirname}/../../")
echo PROJECTPATH $PROJECTPATH
VERSION=$(cat ${PROJECTPATH}/includes.pri | grep "VERSION = " | awk '{split($0,a,"="); gsub (" ", "", a[2]); gsub ("-alpha", "", a[2]); print a[2] }')
FORMATEDVERSION=$(echo $VERSION | awk '{gsub ("\\.", "_", $0); print $0}')
echo VERSION $VERSION
PKGNAMEDIR="wpanda-$VERSION"
DEBPKGROOT="$PROJECTPATH/Deploy/$PKGNAMEDIR"
DEBPKGFILES="$PROJECTPATH/Deploy/$PKGNAMEDIR/files"
BUILDDIR=$PROJECTPATH/build
echo DEBPKGFILES $DEBPKGFILES
PTBNAME="WiredPanda_${FORMATEDVERSION}_Linux_Portable_x64"
PTBDIR="$PROJECTPATH/Deploy/$PTBNAME";
echo PTBDIR $PTBDIR
DEBPKGNAME="$PROJECTPATH/Deploy/WiredPanda_${FORMATEDVERSION}_Ubuntu_Installer_x64.deb";
echo DEBPKGNAME $DEBPKGNAME
echo "CLEANING OLD FILES"
rm -rf "${PROJECTPATH}/Deploy/"
QT_PATH="/opt/Qt/5.8/gcc_64/";
QT_LIBRARY_PATH="$QT_PATH/lib"
QT_PLATFORMS_PATH="$QT_PATH/plugins/platforms/"
export PATH=$QT_PATH/bin/:$PATH
export LD_LIBRARY_PATH=$QT_PATH/lib:$LD_LIBRARY_PATH
WPANDA_BIN="$BUILDDIR/wiredpanda";
rm -rf $BUILDDIR
mkdir -p $BUILDDIR
pushd $BUILDDIR
cmake -B . -S .. -DCMAKE_BUILD_TYPE=Release;
echo "Building wiRedPanda on $BUILDDIR ..."
make clean;
make -j4;
ldd $WPANDA_BIN
popd;
if [ ! -e ${WPANDA_BIN} ]; then
echo "ERROR: ${WPANDA_BIN} not found!";
exit 1
fi
DATADIR="${PTBDIR}/files";
CURRENTDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )";
echo "Generating build tree for ${PKGNAMEDIR}.deb";
echo "Project path is ${PROJECTPATH}";
mkdir -p ${DEBPKGROOT};
pushd ${DEBPKGROOT}
dh_make -y\
--native \
--single \
--email lucaslellis777@gmail.com
popd
echo \
"Source: wpanda
Section: utils
Priority: standard
Maintainer: Lucas Lellis <lucaslellis777@gmail.com>
Build-Depends: debhelper (>= 9)
Standards-Version: 3.9.5
Homepage: https://gibis-unifesp.github.io/wiRedPanda
Vcs-Git: https://github.com/gibis-unifesp/wiredpanda
Package: wpanda-${VERSION}
Architecture: amd64
Depends: \${shlibs:Depends}, \${misc:Depends}
Description: Learn about logic circuits and simulate them in an easy and friendly way.
wiRedPanda is a free software designed to help students to learn about logic circuits.
It was developed by the students of the Federal University of São Paulo." > $DEBPKGROOT/debian/control
echo \
"#!/bin/sh
set -e
case "\$1" in
configure)
desktop-file-install /usr/share/applications/wpanda.desktop
xdg-mime install --mode system /usr/share/xml/misc/wpanda-mime.xml
xdg-mime default /usr/share/applications/wpanda.desktop application/x-wpanda
xdg-icon-resource install --context mimetypes --size 128 /usr/share/icons/hicolor/128x128/apps/wpanda-file.png application-x-wpanda
xdg-icon-resource install --context mimetypes --size 64 /usr/share/icons/hicolor/64x64/apps/wpanda-file.png application-x-wpanda
xdg-icon-resource install --context mimetypes --size 48 /usr/share/icons/hicolor/48x48/apps/wpanda-file.png application-x-wpanda
xdg-icon-resource install --context mimetypes --size 32 /usr/share/icons/hicolor/32x32/apps/wpanda-file.png application-x-wpanda
xdg-icon-resource install --context mimetypes --size 26 /usr/share/icons/hicolor/26x26/apps/wpanda-file.png application-x-wpanda
;;
esac" > "${DEBPKGROOT}/debian/postinst"
echo "files/usr/* usr" > ${DEBPKGROOT}/debian/install
echo -e "override_dh_shlibdeps:\n\tdh_shlibdeps --dpkg-shlibdeps-params=--ignore-missing-info\n" >> ${DEBPKGROOT}/debian/rules
echo -e "override_dh_clean:\n\t" >> ${DEBPKGROOT}/debian/rules
mkdir -p ${DEBPKGFILES}/usr/bin;
mkdir -p ${DEBPKGFILES}/usr/lib/wpanda;
mkdir -p ${DEBPKGFILES}/usr/share/applications;
mkdir -p ${DEBPKGFILES}/usr/share/xml/misc;
mkdir -p ${DEBPKGFILES}/usr/share/doc;
cp ${WPANDA_BIN} ${PROJECTPATH}/app/resources/wpanda.sh ${DEBPKGFILES}/usr/bin/;
cp ${WPANDA_BIN} ${DEBPKGFILES}/usr/bin/wiredpanda;
cp ${PROJECTPATH}/app/resources/wpanda.desktop ${DEBPKGFILES}/usr/share/applications/;
cp ${PROJECTPATH}/app/resources/wpanda-mime.xml ${DEBPKGFILES}/usr/share/xml/misc;
chmod +x ${DEBPKGFILES}/usr/bin/*
for SIZE in 26x26 32x32 48x48 64x64 128x128; do
ICONDIR_SZ=${DEBPKGFILES}/usr/share/icons/hicolor/${SIZE}/apps/;
mkdir -p ${ICONDIR_SZ};
cp ${PROJECTPATH}/app/resources/icons/${SIZE}/* ${ICONDIR_SZ};
done;
for lib in libQt5PrintSupport.so.5 libQt5XcbQpa.so.5 libQt5DBus.so.5\
libQt5Widgets.so.5 libQt5Gui.so.5 \
libQt5Core.so.5 libicui18n.so.56 libicuuc.so.56 libicudata.so.56;
do
echo "Copying $lib";
if [ -f ${QT_LIBRARY_PATH}/$lib ]; then
cp ${QT_LIBRARY_PATH}/$lib ${DEBPKGFILES}/usr/lib/wpanda;
else
echo "ERROR: $lib not found!";
locate "$lib";
exit 1;
fi;
done;
cp ${QT_PLATFORMS_PATH}/libqxcb.so ${DEBPKGFILES}/usr/lib/wpanda
pushd $DEBPKGROOT
dpkg-buildpackage -d -uc -us
#tree .
popd
echo "GENERATING PORTABLE PACKAGE"
mkdir -p $DATADIR
cp ${DEBPKGFILES}/usr/bin/wiredpanda $DATADIR
cp ${CURRENTDIR}/portable_files/install.sh ${DATADIR}
cp ${PROJECTPATH}/app/resources/wpanda.svg ${DATADIR}
cp ${PROJECTPATH}/app/resources/wpanda-mime.xml ${DATADIR}
cp ${CURRENTDIR}/portable_files/shared_qt.sh ${DATADIR}/wpanda.sh
cp ${CURRENTDIR}/portable_files/wpanda.desktop ${PTBDIR}/wpanda.desktop
for SIZE in 26x26 32x32 48x48 64x64 128x128; do
ICONDIR_SZ=${DATADIR}/icons/${SIZE};
mkdir -p ${ICONDIR_SZ};
cp ${PROJECTPATH}/app/resources/icons/${SIZE}/* ${ICONDIR_SZ};
done;
chmod +x ${DATADIR}/wpanda
chmod +x ${DATADIR}/wpanda.sh
chmod +x ${DATADIR}/install.sh
chmod +x ${PTBDIR}/wpanda.desktop
cp ${DEBPKGFILES}/usr/lib/wpanda/* $DATADIR;
pushd $PROJECTPATH/Deploy
echo "Generating ${PTBNAME}.tar.xz"
tar -cvJf ${PTBNAME}.tar.xz $PTBNAME
echo "Renaming to ${DEBPKGNAME}"
mv wpanda*.deb $DEBPKGNAME
mkdir -p /tmp/packages
cp $PTBNAME.tar.xz /tmp/packages
cp $DEBPKGNAME /tmp/packages
popd
|