forked from RPCS3/rpcs3
-
Notifications
You must be signed in to change notification settings - Fork 0
/
.travis.yml
134 lines (121 loc) · 5.3 KB
/
.travis.yml
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
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++-5" CC="gcc-5" 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-release_60/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 Utilities/yaml-cpp 3rdparty/cereal 3rdparty/hidapi 3rdparty/Optional 3rdparty/xxHash 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 -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' # <<WARNING>>: 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++-5
- gcc-5
- libstdc++-5-dev
- lib32stdc++6
- zlib1g-dev
# From the beineri PPA
- qt510-meta-minimal # <<WARNING>>: This needs to be updated manually whenever the QT Version changes.
- libudev-dev
- libevdev-dev
- libpulse-dev