build: Provide AppImage package for Linux (issue #279) (#945)

* Create AppImage package using linuxdeployqt in Travis CI
* Renamed appPath() to sharedDataPath()
* Fixed include error in tutorial
This commit is contained in:
Eberhard Gräther
2020-03-29 17:10:30 +02:00
committed by GitHub
parent 76562bb8ee
commit bf6a017720
20 changed files with 184 additions and 45 deletions
@@ -87,6 +87,15 @@ tar -xzf boost_${BOOST_VERSION_UNDERSCORE}.tar.gz && cd boost_${BOOST_VERSION_UN
./b2 install cxxstd=14 --link=static --variant=release --threading=multi --runtime-link=static --cxxflags="-std=c++14 -fPIC" && \
cd .. && rm boost_${BOOST_VERSION_UNDERSCORE}.tar.gz && rm boost_${BOOST_VERSION_UNDERSCORE} -r
# linuxdeployqt
RUN wget https://github.com/probonopd/linuxdeployqt/releases/download/6/linuxdeployqt-6-x86_64.AppImage && \
chmod a+x linuxdeployqt-6-x86_64.AppImage && \
./linuxdeployqt-6-x86_64.AppImage --appimage-extract && \
cp -r squashfs-root/usr/ /opt/linuxdeployqt && \
chmod -R 755 /opt/linuxdeployqt && \
rm linuxdeployqt-6-x86_64.AppImage && rm -rf squashfs-root
ENV PATH=/opt/linuxdeployqt/bin:${PATH}
#add user
RUN useradd -u 1000 builder
WORKDIR /home/builder
@@ -7,7 +7,7 @@ WORKDIR /opt
RUN rpm --rebuilddb; yum install -y yum-plugin-ovl ca-certificates;
RUN yum -y install centos-release-scl epel-release && \
yum -y install make wget devtoolset-7-gcc devtoolset-7-gcc-c++ devtoolset-7-binutils \
yum -y install make wget file devtoolset-7-gcc devtoolset-7-gcc-c++ devtoolset-7-binutils \
wget tar bzip2 git libtool which fuse fuse-devel libpng-devel automake \
glibc-headers libstdc++-devel gcc-c++ freetype-devel fontconfig-devel\
libxml2-devel libstdc++-devel libXrender libXrender-devel patch xcb-util-keysyms xcb-util-keysyms-devel \
@@ -1,5 +1,21 @@
FROM coatisoftware/centos7_64_qt_llvm:qt5126-llvm900
# TODO: remove after full image rebuilt ------------------------------------
USER root
RUN yum -y install file
RUN wget https://github.com/probonopd/linuxdeployqt/releases/download/6/linuxdeployqt-6-x86_64.AppImage && \
chmod a+x linuxdeployqt-6-x86_64.AppImage && \
./linuxdeployqt-6-x86_64.AppImage --appimage-extract && \
cp -r squashfs-root/usr/ /opt/linuxdeployqt && \
chmod -R 755 /opt/linuxdeployqt && \
rm linuxdeployqt-6-x86_64.AppImage && rm -rf squashfs-root
ENV PATH=/opt/linuxdeployqt/bin:${PATH}
USER builder
# --------------------------------------------------------------------------
COPY entrypoint.sh /entrypoint.sh
ENTRYPOINT ["/entrypoint.sh"]
@@ -14,5 +14,8 @@ git checkout $1
./script/build.sh release test
./setup/Linux/createAppImage.sh
mkdir release
cp ./Sourcetrail*.tar.gz ./release/
cp ./Sourcetrail*.AppImage ./release/