Travis: Use Docker to build for Linux
This commit is contained in:
parent
2415bad9ad
commit
fa64309aac
4 changed files with 26 additions and 50 deletions
20
.travis-build-docker.sh
Normal file
20
.travis-build-docker.sh
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
set -e
|
||||||
|
set -x
|
||||||
|
|
||||||
|
cd /citra
|
||||||
|
|
||||||
|
apt-get update
|
||||||
|
apt-get install -y build-essential libsdl2-dev qtbase5-dev libqt5opengl5-dev libcurl4-openssl-dev libssl-dev wget git
|
||||||
|
|
||||||
|
# Get a recent version of CMake
|
||||||
|
wget https://cmake.org/files/v3.9/cmake-3.9.0-Linux-x86_64.sh
|
||||||
|
echo y | sh cmake-3.9.0-Linux-x86_64.sh --prefix=cmake
|
||||||
|
export PATH=/citra/cmake/cmake-3.9.0-Linux-x86_64/bin:$PATH
|
||||||
|
|
||||||
|
mkdir build && cd build
|
||||||
|
cmake .. -DCMAKE_BUILD_TYPE=Release
|
||||||
|
make -j4
|
||||||
|
|
||||||
|
ctest -VV -C Release
|
|
@ -44,15 +44,7 @@ fi
|
||||||
|
|
||||||
#if OS is linux or is not set
|
#if OS is linux or is not set
|
||||||
if [ "$TRAVIS_OS_NAME" = "linux" -o -z "$TRAVIS_OS_NAME" ]; then
|
if [ "$TRAVIS_OS_NAME" = "linux" -o -z "$TRAVIS_OS_NAME" ]; then
|
||||||
export CC=gcc-6
|
docker run -v $(pwd):/citra ubuntu:16.04 /bin/bash /citra/.travis-build-docker.sh
|
||||||
export CXX=g++-6
|
|
||||||
export PKG_CONFIG_PATH=$HOME/.local/lib/pkgconfig:$PKG_CONFIG_PATH
|
|
||||||
|
|
||||||
mkdir build && cd build
|
|
||||||
cmake ..
|
|
||||||
make -j4
|
|
||||||
|
|
||||||
ctest -VV -C Release
|
|
||||||
elif [ "$TRAVIS_OS_NAME" = "osx" ]; then
|
elif [ "$TRAVIS_OS_NAME" = "osx" ]; then
|
||||||
set -o pipefail
|
set -o pipefail
|
||||||
|
|
||||||
|
|
|
@ -5,35 +5,7 @@ set -x
|
||||||
|
|
||||||
#if OS is linux or is not set
|
#if OS is linux or is not set
|
||||||
if [ "$TRAVIS_OS_NAME" = "linux" -o -z "$TRAVIS_OS_NAME" ]; then
|
if [ "$TRAVIS_OS_NAME" = "linux" -o -z "$TRAVIS_OS_NAME" ]; then
|
||||||
export CC=gcc-6
|
docker pull ubuntu:16.04
|
||||||
export CXX=g++-6
|
|
||||||
mkdir -p $HOME/.local
|
|
||||||
|
|
||||||
if [ ! -e $HOME/.local/bin/cmake ]; then
|
|
||||||
echo "CMake not found in the cache, get and extract it..."
|
|
||||||
curl -L http://www.cmake.org/files/v3.6/cmake-3.6.3-Linux-x86_64.tar.gz \
|
|
||||||
| tar -xz -C $HOME/.local --strip-components=1
|
|
||||||
else
|
|
||||||
echo "Using cached CMake"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ ! -e $HOME/.local/lib/libSDL2.la ]; then
|
|
||||||
echo "SDL2 not found in cache, get and build it..."
|
|
||||||
wget http://libsdl.org/release/SDL2-2.0.5.tar.gz -O - | tar xz
|
|
||||||
cd SDL2-2.0.5
|
|
||||||
./configure --prefix=$HOME/.local
|
|
||||||
make -j4 && make install
|
|
||||||
else
|
|
||||||
echo "Using cached SDL2"
|
|
||||||
fi
|
|
||||||
|
|
||||||
export DEBIAN_FRONTEND=noninteractive
|
|
||||||
# Amazing placebo security
|
|
||||||
curl http://apt.llvm.org/llvm-snapshot.gpg.key | sudo -E apt-key add -
|
|
||||||
sudo -E add-apt-repository "deb http://apt.llvm.org/trusty/ llvm-toolchain-trusty-3.9 main"
|
|
||||||
sudo -E apt-get -yq update
|
|
||||||
sudo -E apt-get -yq install clang-format-3.9
|
|
||||||
|
|
||||||
elif [ "$TRAVIS_OS_NAME" = "osx" ]; then
|
elif [ "$TRAVIS_OS_NAME" = "osx" ]; then
|
||||||
brew update
|
brew update
|
||||||
brew install qt5 sdl2 dylibbundler p7zip
|
brew install qt5 sdl2 dylibbundler p7zip
|
||||||
|
|
16
.travis.yml
16
.travis.yml
|
@ -8,23 +8,15 @@ matrix:
|
||||||
sudo: false
|
sudo: false
|
||||||
osx_image: xcode7.3
|
osx_image: xcode7.3
|
||||||
|
|
||||||
|
services:
|
||||||
|
- docker
|
||||||
|
|
||||||
addons:
|
addons:
|
||||||
apt:
|
apt:
|
||||||
sources:
|
|
||||||
- ubuntu-toolchain-r-test
|
|
||||||
packages:
|
packages:
|
||||||
- gcc-6
|
- clang-format-3.9
|
||||||
- g++-6
|
|
||||||
- qt5-default
|
|
||||||
- libqt5opengl5-dev
|
|
||||||
- xorg-dev
|
|
||||||
- lib32stdc++6 # For CMake
|
|
||||||
- p7zip-full
|
- p7zip-full
|
||||||
|
|
||||||
cache:
|
|
||||||
directories:
|
|
||||||
- "$HOME/.local"
|
|
||||||
|
|
||||||
install: "./.travis-deps.sh"
|
install: "./.travis-deps.sh"
|
||||||
script: "./.travis-build.sh"
|
script: "./.travis-build.sh"
|
||||||
after_success: "./.travis-upload.sh"
|
after_success: "./.travis-upload.sh"
|
||||||
|
|
Loading…
Reference in a new issue