Add build scripts for travis-ci

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@39994 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
Niels Grewe 2016-07-13 08:43:56 +00:00
parent c9e0bddfd3
commit 34d39727f0
2 changed files with 114 additions and 0 deletions

61
.travis.yml Normal file
View file

@ -0,0 +1,61 @@
language: cpp
dist: trusty
compiler:
- clang
- gcc
env:
- LIBRARY_COMBO=gnu-gnu-gnu
- LIBRARY_COMBO=gnu-gnu-gnu SORT_ALG=timsort
- LIBRARY_COMBO=ng-gnu-gnu
- LIBRARY_COMBO=ng-gnu-gnu SORT_ALG=timsort
- LIBRARY_COMBO=ng-gnu-gnu BASE_ABI=--disable-mixed-abi
- LIBRARY_COMBO=ng-gnu-gnu BASE_ABI=--disable-mixed-abi SORT_ALG=timsort
matrix:
exclude:
- compiler: gcc
env: LIBRARY_COMBO=ng-gnu-gnu
- compiler: gcc
env: LIBRARY_COMBO=ng-gnu-gnu SORT_ALG=timsort
- compiler: gcc
env: LIBRARY_COMBO=ng-gnu-gnu BASE_ABI=--disable-mixed-abi
- compiler: gcc
env: LIBRARY_COMBO=ng-gnu-gnu BASE_ABI=--disable-mixed-abi SORT_ALG=timsort
- compiler: clang
env: LIBRARY_COMBO=gnu-gnu-gnu
- compiler: clang
env: LIBRARY_COMBO=gnu-gnu-gnu SORT_ALG=timsort
sudo: required
before_install:
- sudo apt-get -qq update
- sudo apt-get install -y cmake pkg-config libgnutls28-dev libgmp-dev libffi-dev libicu-dev libxml2-dev libxslt1-dev libssl-dev libavahi-client-dev zlib1g-dev
- >
if [ $LIBRARY_COMBO = 'gnu-gnu-gnu' ];
then
if [ $CC = 'gcc' ];
then
sudo apt-get install -y gobjc;
fi;
sudo apt-get install -y libobjc-4.8-dev;
else
sudo apt-get install -y libkqueue-dev libpthread-workqueue-dev;
fi;
install: ./travis-deps.sh
before_script: >
export LIBRARY_PATH=$HOME/staging/lib:$LIBRARY_PATH;
export LD_LIBRARY_PATH=$HOME/staging/lib:$LD_LIBRARY_PATH;
if [ $LIBRARY_COMBO = 'ng-gnu-gnu' ];
then
export CPATH=$HOME/staging/include;
else
export CPATH=/usr/lib/gcc/x86_64-linux-gnu/4.8/include;
fi;
export PATH=$HOME/staging/bin:$PATH;
export GNUSTEP_MAKEFILES=$HOME/staging/share/GNUstep/Makefiles;
. $HOME/staging/share/GNUstep/Makefiles/GNUstep.sh;
script: >
if [ -z "$SORT_ALG" ];
then
SORT_ALG=shellsort
fi;
./configure --with-sort-algorithm=$SORT_ALG $BASE_ABI;
make && make install && make check || (cat Tests/tests.log && false);

53
travis-deps.sh Executable file
View file

@ -0,0 +1,53 @@
#! /usr/bin/env sh
set -ex
DEP_SRC=$HOME/dependency_source/
install_gnustep_make() {
cd $DEP_SRC
git clone https://github.com/gnustep/make.git
cd make
if [ $LIBRARY_COMBO = 'ng-gnu-gnu' ]
then
ADDITIONAL_FLAGS="--enable-objc-nonfragile-abi"
else
ADDITIONAL_FLAGS=""
fi
./configure --prefix=$HOME/staging --with-library-combo=$LIBRARY_COMBO $ADDITIONAL_FLAGS
make install
}
install_ng_runtime() {
cd $DEP_SRC
git clone https://github.com/gnustep/libobjc2.git
mkdir libobjc2/build
cd libobjc2/build
export CC="clang"
export CXX="clang++"
cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -DGNUSTEP_INSTALL_TYPE=NONE -DCMAKE_INSTALL_PREFIX:PATH=$HOME/staging ../
make install
}
install_libdispatch() {
cd $DEP_SRC
git clone https://github.com/ngrewe/libdispatch.git
mkdir libdispatch/build
cd libdispatch/build
export CC="clang"
export CXX="clang++"
export LIBRARY_PATH=$HOME/staging/lib;
export LD_LIBRARY_PATH=$HOME/staging/lib:$LD_LIBRARY_PATH;
export CPATH=$HOME/staging/include;
cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_INSTALL_PREFIX:PATH=$HOME/staging ../
make install
}
mkdir -p $DEP_SRC
if [ $LIBRARY_COMBO = 'ng-gnu-gnu' ]
then
install_ng_runtime
install_libdispatch
fi
install_gnustep_make