language: cpp sudo: required os: - linux #- osx compiler: - clang - gcc cache: ccache matrix: fast_finish: true allow_failures: - os: osx compiler: clang exclude: - os: osx compiler: gcc git: depth: false # Unshallow clone to obtain proper GIT_VERSION submodules: false env: - QTVER=5.10.1 before_install: - if [ "$TRAVIS_OS_NAME" = "linux" ] && [ "$CXX" = "g++" ]; then export CXX="g++-8" CC="gcc-8" CXXFLAGS="-Wno-format-security"; fi; install: # Install updated libglew-dev since the version provided by trusty is outdated - if [ "$TRAVIS_OS_NAME" = "linux" ]; then wget https://mirrors.kernel.org/ubuntu/pool/universe/g/glew/libglew-dev_2.0.0-5_amd64.deb; wget https://mirrors.kernel.org/ubuntu/pool/universe/g/glew/libglew2.0_2.0.0-5_amd64.deb; wget https://mirrors.kernel.org/ubuntu/pool/universe/v/vulkan/libvulkan1_1.1.73+dfsg-1_amd64.deb; wget https://mirrors.kernel.org/ubuntu/pool/universe/v/vulkan/libvulkan-dev_1.1.73+dfsg-1_amd64.deb; sudo apt-get install --only-upgrade dpkg; sudo dpkg -i libglew2.0_2.0.0-5_amd64.deb libglew-dev_2.0.0-5_amd64.deb libvulkan1_1.1.73+dfsg-1_amd64.deb libvulkan-dev_1.1.73+dfsg-1_amd64.deb; else brew install ccache glew ninja qt; export CCACHE_SLOPPINESS=pch_defines,time_macros; export CMAKE_PREFIX_PATH=/usr/local/opt/qt5/; export PATH="/usr/local/opt/ccache/libexec:$PATH"; fi; # Download pre-compiled LLVM libs - if [ "$TRAVIS_OS_NAME" = "linux" ]; then wget https://github.com/RPCS3/llvm/releases/download/continuous-linux-master/llvmlibs-linux.tar.gz; mkdir llvmlibs; tar -xzf ./llvmlibs-linux.tar.gz -C llvmlibs; fi; before_script: - git submodule update --init asmjit 3rdparty/ffmpeg 3rdparty/pugixml 3rdparty/GSL 3rdparty/libpng 3rdparty/cereal 3rdparty/hidapi 3rdparty/Optional 3rdparty/xxHash 3rdparty/yaml-cpp Vulkan/glslang - mkdir build ; cd build - if [ "$TRAVIS_PULL_REQUEST" = false ]; then export CXXFLAGS="$CXXFLAGS -DBRANCH=$TRAVIS_REPO_SLUG/$TRAVIS_BRANCH"; else export CXXFLAGS="$CXXFLAGS -DBRANCH=$TRAVIS_REPO_SLUG/$TRAVIS_BRANCH/#$TRAVIS_PULL_REQUEST"; fi; - cmake .. -DCMAKE_INSTALL_PREFIX=/usr -DLLVM_DIR=../llvmlibs/lib/cmake/llvm/ -DUSE_NATIVE_INSTRUCTIONS=OFF -G Ninja; script: - ninja -j 2 after_script: - cd build - # AppImage generation - if [ -n "$UPLOAD_URL" ] && [ "$TRAVIS_OS_NAME" = "linux" ] && [ "$TRAVIS_BRANCH" = "master" ] && [ "$CC" = "clang" ] && [ "$TRAVIS_PULL_REQUEST" = false ]; then source /opt/qt*/bin/qt*-env.sh ; echo $LD_LIBRARY_PATH ; export LD_LIBRARY_PATH=/opt/qt510/lib ; DESTDIR=appdir ninja install ; find appdir/ ; find ../bin ; wget -c "https://github.com/probonopd/linuxdeployqt/releases/download/continuous/linuxdeployqt-continuous-x86_64.AppImage" ; chmod a+x linuxdeployqt*.AppImage ; ./linuxdeployqt*.AppImage ./appdir/usr/share/applications/*.desktop -bundle-non-qt-libs ; rm ./appdir/usr/lib/libfreetype.so.6 ; rm ./appdir/usr/lib/libglapi.so.0 ; rm ./appdir/usr/lib/libxcb* ; rm -r ./appdir/usr/share/doc ; rm -r ./appdir/usr/share/man ; rm -r ./appdir/usr/include ; export PATH=${TRAVIS_BUILD_DIR}/build/squashfs-root/usr/bin/:${PATH} ; echo "Embed newer libstdc++ for distros that don't come with it (ubuntu 14.04)"; mkdir -p appdir/usr/optional/ ; mkdir -p appdir/usr/optional/libstdc++/ ; cp /usr/lib/x86_64-linux-gnu/libstdc++.so.6 ./appdir/usr/optional/libstdc++/ ; rm ./appdir/AppRun ; wget -c https://github.com/RPCS3/AppImageKit-checkrt/releases/download/continuous/AppRun-patched-x86_64 -O ./appdir/AppRun ; chmod a+x ./appdir/AppRun ; wget -c https://github.com/RPCS3/AppImageKit-checkrt/releases/download/continuous/exec-x86_64.so -O ./appdir/usr/optional/exec.so ; echo "Package it up and send it off" ; ./linuxdeployqt*.AppImage --appimage-extract ; ./squashfs-root/usr/bin/appimagetool ${TRAVIS_BUILD_DIR}/build/appdir ; find ./appdir -executable -type f -exec ldd {} \; | grep " => /usr" | cut -d " " -f 2-3 | sort | uniq ; COMM_TAG="$(git describe --tags $(git rev-list --tags --max-count=1))" ; COMM_COUNT="$(git rev-list --count HEAD)" ; curl "${UPLOAD_URL}${TRAVIS_COMMIT:0:8}&t=${COMM_TAG}&a=${COMM_COUNT}" --upload-file ./RPCS3*.AppImage; fi; addons: apt: sources: - ubuntu-toolchain-r-test - sourceline: 'ppa:jonathonf/binutils' # We need to update binutils to a newer version to link against the ffmpeg libs on. - sourceline: 'ppa:beineri/opt-qt-5.10.1-trusty' # <>: This needs to be updated manually whenever the QT Version changes. Add QT PPA since the installer is quite bad. packages: - binutils - cmake - ninja-build - libasound2-dev - libopenal-dev - freeglut3-dev #- libglew-dev #- libvulkan1 #- libvulkan-dev - libc6-dev # Clang 5.0 is now bundled in travis, so we no longer need the ppa version. #- clang-4.0 - libedit-dev - g++-8 - gcc-8 - libstdc++-5-dev - lib32stdc++6 - zlib1g-dev # From the beineri PPA - qt510-meta-minimal # <>: This needs to be updated manually whenever the QT Version changes. - libudev-dev - libevdev-dev - libpulse-dev # Wayland support, Ubuntu 14.04's version is quite old, but it's better than nothing - libwayland-dev - libwayland-cursor0 - libwayland-client0 - libwayland-server0