name: Linux Build on: [push, pull_request] jobs: Ubuntu: runs-on: ubuntu-20.04 strategy: matrix: compiler: [gcc, clang] include: - compiler: gcc cc: gcc cxx: g++ - compiler: clang cc: clang cxx: clang++ steps: - uses: actions/checkout@v2 - name: Install libraries run: | sudo apt-get update sudo apt-get install build-essential cmake pkg-config ninja-build ccache libboost-all-dev qt5-default qtbase5-dev libqt5svg5-dev qtscript5-dev qttools5-dev qttools5-dev-tools libqt5opengl5-dev qtmultimedia5-dev libqt5multimedia5-plugins libqt5serialport5-dev libsuperlu-dev liblz4-dev libusb-1.0-0-dev liblzo2-dev libpng-dev libjpeg-dev libglew-dev freeglut3-dev libfreetype6-dev libjson-c-dev qtwayland5 libmypaint-dev libopencv-dev libturbojpeg-dev libomp-11-dev - uses: actions/cache@v1 with: path: /home/runner/.ccache key: ${{ runner.os }}-${{ matrix.compiler }}-${{ github.sha }} restore-keys: ${{ runner.os }}-${{ matrix.compiler }}- - name: Build libtiff run: | cd thirdparty/tiff-4.0.3 CFLAGS='-fPIC' CXXFLAGS='-fPIC' ./configure --disable-jbig make -j $(nproc) - name: Build run: | cd toonz mkdir build cd build cmake ../sources -G Ninja -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER=${{ matrix.cxx }} -DCMAKE_C_COMPILER=${{ matrix.cc }} -DWITH_TRANSLATION=OFF ninja - name: Create Artifact run: | cd toonz/build sudo ninja install mkdir -p appdir/usr cp -r /opt/opentoonz/* appdir/usr cp appdir/usr/share/applications/*.desktop appdir cp appdir/usr/share/icons/hicolor/*/apps/*.png appdir mkdir artifact mv appdir/usr/share/opentoonz/stuff artifact/portablestuff rmdir appdir/usr/share/opentoonz wget -q -c 'https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage' wget -q -c 'https://github.com/linuxdeploy/linuxdeploy-plugin-qt/releases/download/continuous/linuxdeploy-plugin-qt-x86_64.AppImage' wget -q -c 'https://github.com/linuxdeploy/linuxdeploy-plugin-appimage/releases/download/continuous/linuxdeploy-plugin-appimage-x86_64.AppImage' chmod 755 linuxdeploy-x86_64.AppImage chmod 755 linuxdeploy-plugin-qt-x86_64.AppImage chmod 755 linuxdeploy-plugin-appimage-x86_64.AppImage cat << EOF > apprun.sh #!/usr/bin/env bash exec "\${APPDIR}/usr/bin/OpenToonz" EOF chmod 755 apprun.sh export LD_LIBRARY_PATH='appdir/usr/lib/opentoonz' ./linuxdeploy-x86_64.AppImage --appdir=appdir --plugin=qt --output=appimage --custom-apprun=apprun.sh \ --executable=appdir/usr/bin/lzocompress \ --executable=appdir/usr/bin/lzodecompress \ --executable=appdir/usr/bin/tcleanup \ --executable=appdir/usr/bin/tcomposer \ --executable=appdir/usr/bin/tconverter \ --executable=appdir/usr/bin/tfarmcontroller \ --executable=appdir/usr/bin/tfarmserver mv OpenToonz*.AppImage artifact/OpenToonz.AppImage ARTIFACT_NAME=Opentoonz-${{ runner.os }}-${{ matrix.compiler }}-${{ github.sha }} mv artifact ${ARTIFACT_NAME} tar zcf ${ARTIFACT_NAME}.tar.gz ${ARTIFACT_NAME} - uses: actions/upload-artifact@v1 with: name: Opentoonz-${{ runner.os }}-${{ matrix.compiler }}-${{ github.sha }} path: toonz/build/Opentoonz-${{ runner.os }}-${{ matrix.compiler }}-${{ github.sha }}.tar.gz