2014-04-25 16:57:00 +00:00
language : cpp
2017-04-09 08:30:38 +00:00
sudo : required
2014-04-25 16:57:00 +00:00
2015-08-17 15:14:29 +00:00
os :
2017-03-04 13:22:46 +00:00
- linux
#- osx
2015-08-17 15:14:29 +00:00
2014-04-25 16:57:00 +00:00
compiler :
2017-03-04 13:22:46 +00:00
- clang
- gcc
2014-04-25 16:57:00 +00:00
2018-05-01 12:51:13 +00:00
cache : ccache
2017-03-02 21:49:42 +00:00
2015-08-17 15:14:29 +00:00
matrix :
2018-05-01 12:51:13 +00:00
fast_finish : true
allow_failures :
- os : osx
compiler : clang
2017-03-04 13:22:46 +00:00
exclude :
- os : osx
compiler : gcc
2015-08-17 15:14:29 +00:00
2014-07-09 19:16:17 +00:00
git :
2018-01-06 13:02:20 +00:00
depth : false # Unshallow clone to obtain proper GIT_VERSION
2014-07-09 19:16:17 +00:00
submodules : false
2018-02-27 23:27:32 +00:00
env :
2018-05-14 16:51:03 +00:00
- QTVER=5.10.1
2018-05-01 10:20:36 +00:00
2014-04-25 16:57:00 +00:00
before_install :
2015-08-17 15:14:29 +00:00
- if [ "$TRAVIS_OS_NAME" = "linux" ] && [ "$CXX" = "g++" ]; then
2018-08-23 15:33:58 +00:00
export CXX="g++-8" CC="gcc-8" CXXFLAGS="-Wno-format-security";
2015-04-09 16:53:10 +00:00
fi;
2018-02-27 23:27:32 +00:00
install :
2017-04-09 08:30:38 +00:00
# Install updated libglew-dev since the version provided by trusty is outdated
2015-08-17 15:14:29 +00:00
- if [ "$TRAVIS_OS_NAME" = "linux" ]; then
2018-01-18 20:56:32 +00:00
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;
2018-04-29 11:33:15 +00:00
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;
2015-08-17 15:14:29 +00:00
else
2018-05-01 12:51:13 +00:00
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";
2015-08-17 15:14:29 +00:00
fi;
2018-05-12 18:25:24 +00:00
# Download pre-compiled LLVM libs
- if [ "$TRAVIS_OS_NAME" = "linux" ]; then
2018-06-27 18:19:02 +00:00
wget https://github.com/RPCS3/llvm/releases/download/continuous-linux-master/llvmlibs-linux.tar.gz;
2018-05-12 18:25:24 +00:00
mkdir llvmlibs;
tar -xzf ./llvmlibs-linux.tar.gz -C llvmlibs;
fi;
2014-04-25 16:57:00 +00:00
before_script :
2018-08-27 15:30:30 +00:00
- git submodule update --init asmjit 3rdparty/ffmpeg 3rdparty/pugixml 3rdparty/GSL 3rdparty/libpng 3rdparty/cereal 3rdparty/hidapi 3rdparty/xxHash 3rdparty/yaml-cpp Vulkan/glslang
2018-02-27 23:27:32 +00:00
- mkdir build ; cd build
2017-08-13 18:38:37 +00:00
- 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;
2018-05-12 18:25:24 +00:00
- cmake .. -DCMAKE_INSTALL_PREFIX=/usr -DLLVM_DIR=../llvmlibs/lib/cmake/llvm/ -DUSE_NATIVE_INSTRUCTIONS=OFF -G Ninja;
2018-02-27 23:27:32 +00:00
script :
2018-05-12 19:55:52 +00:00
- ninja -j 2
2018-05-01 10:20:36 +00:00
2018-02-27 23:27:32 +00:00
after_script :
- cd build
2017-06-04 18:42:06 +00:00
- # AppImage generation
2018-05-01 12:51:13 +00:00
- if [ -n "$UPLOAD_URL" ] && [ "$TRAVIS_OS_NAME" = "linux" ] && [ "$TRAVIS_BRANCH" = "master" ] && [ "$CC" = "clang" ] && [ "$TRAVIS_PULL_REQUEST" = false ]; then
2018-05-14 16:51:03 +00:00
source /opt/qt*/bin/qt*-env.sh ;
2018-03-11 23:07:37 +00:00
echo $LD_LIBRARY_PATH ;
export LD_LIBRARY_PATH=/opt/qt510/lib ;
2017-12-05 23:10:35 +00:00
DESTDIR=appdir ninja install ; find appdir/ ;
2017-06-04 19:52:57 +00:00
find ../bin ;
2017-12-20 19:10:00 +00:00
wget -c "https://github.com/probonopd/linuxdeployqt/releases/download/continuous/linuxdeployqt-continuous-x86_64.AppImage" ;
2017-06-04 19:52:57 +00:00
chmod a+x linuxdeployqt*.AppImage ;
./linuxdeployqt*.AppImage ./appdir/usr/share/applications/*.desktop -bundle-non-qt-libs ;
2018-01-27 03:56:32 +00:00
rm ./appdir/usr/lib/libfreetype.so.6 ;
2018-04-18 17:12:55 +00:00
rm ./appdir/usr/lib/libglapi.so.0 ;
2018-07-03 20:36:47 +00:00
rm ./appdir/usr/lib/libxcb* ;
2018-04-18 17:12:55 +00:00
rm -r ./appdir/usr/share/doc ;
rm -r ./appdir/usr/share/man ;
rm -r ./appdir/usr/include ;
2017-07-21 19:43:08 +00:00
export PATH=${TRAVIS_BUILD_DIR}/build/squashfs-root/usr/bin/:${PATH} ;
2018-05-01 10:20:36 +00:00
2018-04-04 21:24:44 +00:00
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 ;
2018-04-12 08:20:47 +00:00
wget -c https://github.com/RPCS3/AppImageKit-checkrt/releases/download/continuous/AppRun-patched-x86_64 -O ./appdir/AppRun ;
2018-04-04 21:24:44 +00:00
chmod a+x ./appdir/AppRun ;
2018-04-12 08:20:47 +00:00
wget -c https://github.com/RPCS3/AppImageKit-checkrt/releases/download/continuous/exec-x86_64.so -O ./appdir/usr/optional/exec.so ;
2018-05-01 10:20:36 +00:00
2018-04-08 00:01:39 +00:00
echo "Package it up and send it off" ;
2018-04-04 21:24:44 +00:00
./linuxdeployqt*.AppImage --appimage-extract ;
2017-07-21 19:43:08 +00:00
./squashfs-root/usr/bin/appimagetool ${TRAVIS_BUILD_DIR}/build/appdir ;
2017-06-04 19:52:57 +00:00
find ./appdir -executable -type f -exec ldd {} \; | grep " => /usr" | cut -d " " -f 2-3 | sort | uniq ;
2018-02-24 19:54:58 +00:00
COMM_TAG="$(git describe --tags $(git rev-list --tags --max-count=1))" ;
COMM_COUNT="$(git rev-list --count HEAD)" ;
2018-02-23 19:49:45 +00:00
curl "${UPLOAD_URL}${TRAVIS_COMMIT:0:8}&t=${COMM_TAG}&a=${COMM_COUNT}" --upload-file ./RPCS3*.AppImage;
2017-06-04 18:42:06 +00:00
fi;
2015-01-18 09:28:21 +00:00
addons :
2015-10-03 13:16:05 +00:00
apt :
sources :
2017-03-04 13:22:46 +00:00
- ubuntu-toolchain-r-test
2017-08-23 11:29:13 +00:00
- sourceline : 'ppa:jonathonf/binutils' # We need to update binutils to a newer version to link against the ffmpeg libs on.
2018-03-11 16:13:56 +00:00
- sourceline: 'ppa:beineri/opt-qt-5.10.1-trusty' # <<WARNING>> : This needs to be updated manually whenever the QT Version changes. Add QT PPA since the installer is quite bad.
2015-10-03 13:16:05 +00:00
packages :
2017-08-23 11:29:13 +00:00
- binutils
2017-03-04 13:22:46 +00:00
- cmake
2017-12-05 23:10:35 +00:00
- ninja-build
2017-04-09 12:59:19 +00:00
- libasound2-dev
2017-03-04 13:22:46 +00:00
- libopenal-dev
- freeglut3-dev
2017-04-09 08:30:38 +00:00
#- libglew-dev
2017-06-06 16:58:06 +00:00
#- libvulkan1
#- libvulkan-dev
2017-03-04 13:22:46 +00:00
- libc6-dev
2018-01-26 18:18:09 +00:00
# Clang 5.0 is now bundled in travis, so we no longer need the ppa version.
#- clang-4.0
2017-03-04 13:22:46 +00:00
- libedit-dev
2018-08-23 15:33:58 +00:00
- g++-8
- gcc-8
2017-03-04 13:22:46 +00:00
- libstdc++-5-dev
- lib32stdc++6
- zlib1g-dev
2018-03-11 16:13:56 +00:00
# From the beineri PPA
- qt510-meta-minimal # <<WARNING>> : This needs to be updated manually whenever the QT Version changes.
2017-04-29 00:57:12 +00:00
- libudev-dev
2017-07-28 15:30:35 +00:00
- libevdev-dev
2017-08-28 16:10:27 +00:00
- libpulse-dev
2018-05-17 18:36:49 +00:00
# Wayland support, Ubuntu 14.04's version is quite old, but it's better than nothing
- libwayland-dev
- libwayland-cursor0
- libwayland-client0
- libwayland-server0