Matthias Volk
8 years ago
4 changed files with 270 additions and 25 deletions
@ -1,30 +1,72 @@ |
|||
sudo: required |
|||
# |
|||
# This file was inspired from https://github.com/google/fruit |
|||
# |
|||
branches: |
|||
only: |
|||
- master |
|||
dist: trusty |
|||
language: cpp |
|||
|
|||
matrix: |
|||
include: |
|||
- compiler: clang |
|||
os: osx |
|||
osx_image: xcode8 |
|||
|
|||
fast_finish: true |
|||
|
|||
before_install: |
|||
- brew update |
|||
- brew install gmp --c++11 |
|||
- brew install cln |
|||
- brew install ginac |
|||
- brew install doxygen |
|||
- brew install boost --c++11 |
|||
- brew tap homebrew/science |
|||
- brew install homebrew/science/glpk |
|||
- brew install homebrew/science/hwloc |
|||
|
|||
script: |
|||
- mkdir build |
|||
- cd build |
|||
- cmake .. |
|||
- make |
|||
include: |
|||
# - compiler: gcc |
|||
# env: COMPILER=gcc-6 UBUNTU=17.04 TEST=DebugValgrind |
|||
# install: export OS=linux; export COMPILER='gcc-6'; export UBUNTU='17.04'; extras/scripts/travis_ci_install_linux.sh |
|||
# os: linux |
|||
# script: export OS=linux; export COMPILER='gcc-6'; export UBUNTU='17.04'; extras/scripts/postsubmit.sh |
|||
# DebugValgrind |
|||
# - compiler: gcc |
|||
# env: COMPILER=gcc-6 UBUNTU=17.04 TEST=DebugPlain |
|||
# install: export OS=linux; export COMPILER='gcc-6'; export UBUNTU='17.04'; extras/scripts/travis_ci_install_linux.sh |
|||
# os: linux |
|||
# script: export OS=linux; export COMPILER='gcc-6'; export UBUNTU='17.04'; extras/scripts/postsubmit.sh |
|||
# DebugPlain |
|||
# - compiler: gcc |
|||
# env: COMPILER=gcc-6 UBUNTU=17.04 TEST=ReleasePlain |
|||
# install: export OS=linux; export COMPILER='gcc-6'; export UBUNTU='17.04'; extras/scripts/travis_ci_install_linux.sh |
|||
# os: linux |
|||
# script: export OS=linux; export COMPILER='gcc-6'; export UBUNTU='17.04'; extras/scripts/postsubmit.sh |
|||
# ReleasePlain |
|||
# - compiler: clang |
|||
# env: COMPILER=clang-4.0 STL=libstdc++ UBUNTU=17.04 TEST=DebugPlain |
|||
# install: export OS=linux; export COMPILER='clang-4.0'; export STL='libstdc++'; |
|||
# export UBUNTU='17.04'; extras/scripts/travis_ci_install_linux.sh |
|||
# os: linux |
|||
# script: export OS=linux; export COMPILER='clang-4.0'; export STL='libstdc++'; |
|||
# export UBUNTU='17.04'; extras/scripts/postsubmit.sh DebugPlain |
|||
# - compiler: clang |
|||
# env: COMPILER=clang-4.0 STL=libstdc++ UBUNTU=17.04 TEST=ReleasePlain |
|||
# install: export OS=linux; export COMPILER='clang-4.0'; export STL='libstdc++'; |
|||
# export UBUNTU='17.04'; extras/scripts/travis_ci_install_linux.sh |
|||
# os: linux |
|||
# script: export OS=linux; export COMPILER='clang-4.0'; export STL='libstdc++'; |
|||
# export UBUNTU='17.04'; extras/scripts/postsubmit.sh ReleasePlain |
|||
# - compiler: gcc |
|||
# env: COMPILER=gcc-6 TEST=DebugPlain |
|||
# install: export OS=osx; export COMPILER='gcc-6'; export INSTALL_VALGRIND=1; extras/scripts/travis_ci_install_osx.sh |
|||
# os: osx |
|||
# osx_image: xcode8 |
|||
# script: export OS=osx; export COMPILER='gcc-6'; export INSTALL_VALGRIND=1; extras/scripts/postsubmit.sh |
|||
# DebugPlain |
|||
- compiler: clang |
|||
env: COMPILER=clang-4.0 STL=libc++ TEST=DebugPlain |
|||
install: export OS=osx; export COMPILER='clang-4.0'; export STL='libc++'; |
|||
travis/install_osx.sh |
|||
os: osx |
|||
osx_image: xcode8 |
|||
script: export OS=osx; export COMPILER='clang-4.0'; export STL='libc++'; |
|||
travis/postsubmit.sh DebugPlain |
|||
# - compiler: clang |
|||
# env: COMPILER=clang-default STL=libc++ TEST=DebugPlain |
|||
# install: export OS=osx; export COMPILER='clang-default'; export STL='libc++'; |
|||
# extras/scripts/travis_ci_install_osx.sh |
|||
# os: osx |
|||
# osx_image: xcode8.2 |
|||
# script: export OS=osx; export COMPILER='clang-default'; export STL='libc++'; extras/scripts/postsubmit.sh |
|||
# DebugPlain |
|||
|
|||
# Linux |
|||
#- sudo apt-get update -qq |
|||
#- sudo apt-get install -qq git cmake libboost-all-dev libcln-dev libgmp-dev libginac-dev automake doxygen libglpk-dev libhwloc-dev |
|||
services: |
|||
- docker |
|||
sudo: required |
@ -0,0 +1,52 @@ |
|||
#!/bin/bash -x |
|||
# Script installing dependencies |
|||
# Inspired by https://github.com/google/fruit |
|||
|
|||
set -e |
|||
|
|||
# Helper for installing packages via homebrew |
|||
install_brew_package() { |
|||
if brew list -1 | grep -q "^$1\$"; then |
|||
# Package is installed, upgrade if needed |
|||
brew outdated "$1" || brew upgrade "$@" |
|||
else |
|||
# Package not installed yet, install. |
|||
# If there are conflicts, try overwriting the files (these are in /usr/local anyway so it should be ok). |
|||
brew install "$@" || brew link --overwrite gcc49 |
|||
fi |
|||
} |
|||
|
|||
# Update packages |
|||
brew update |
|||
|
|||
# For md5sum |
|||
install_brew_package md5sha1sum |
|||
# For `timeout' |
|||
install_brew_package coreutils |
|||
|
|||
which cmake &>/dev/null || install_brew_package cmake |
|||
|
|||
# Install compiler |
|||
case "${COMPILER}" in |
|||
gcc-4.8) install_brew_package gcc@4.8 ;; |
|||
gcc-4.9) install_brew_package gcc@4.9 ;; |
|||
gcc-5) install_brew_package gcc@5 ;; |
|||
gcc-6) install_brew_package gcc@6 ;; |
|||
clang-default) ;; |
|||
clang-3.7) install_brew_package llvm@3.7 --with-clang --with-libcxx;; |
|||
clang-3.8) install_brew_package llvm@3.8 --with-clang --with-libcxx;; |
|||
clang-3.9) install_brew_package llvm@3.9 --with-clang --with-libcxx;; |
|||
clang-4.0) install_brew_package llvm --with-clang --with-libcxx;; |
|||
*) echo "Compiler not supported: ${COMPILER}. See travis_ci_install_osx.sh"; exit 1 ;; |
|||
esac |
|||
|
|||
|
|||
# Install dependencies |
|||
install_brew_package gmp --c++11 |
|||
install_brew_package cln |
|||
install_brew_package ginac |
|||
install_brew_package doxygen |
|||
install_brew_package boost --c++11 |
|||
brew tap homebrew/science |
|||
install_brew_package homebrew/science/glpk |
|||
install_brew_package homebrew/science/hwloc |
@ -0,0 +1,106 @@ |
|||
#!/bin/bash -x |
|||
# Inspired by https://github.com/google/fruit |
|||
|
|||
set -e |
|||
|
|||
# This only exists in OS X, but it doesn't cause issues in Linux (the dir doesn't exist, so it's |
|||
# ignored). |
|||
export PATH="/usr/local/opt/coreutils/libexec/gnubin:$PATH" |
|||
|
|||
case $COMPILER in |
|||
gcc-4.8) |
|||
export CC=gcc-4.8 |
|||
export CXX=g++-4.8 |
|||
;; |
|||
|
|||
gcc-4.9) |
|||
export CC=gcc-4.9 |
|||
export CXX=g++-4.9 |
|||
;; |
|||
|
|||
gcc-5) |
|||
export CC=gcc-5 |
|||
export CXX=g++-5 |
|||
;; |
|||
|
|||
gcc-6) |
|||
export CC=gcc-6 |
|||
export CXX=g++-6 |
|||
;; |
|||
|
|||
clang-3.5) |
|||
export CC=clang-3.5 |
|||
export CXX=clang++-3.5 |
|||
;; |
|||
|
|||
clang-3.6) |
|||
export CC=clang-3.6 |
|||
export CXX=clang++-3.6 |
|||
;; |
|||
|
|||
clang-3.7) |
|||
export CC=clang-3.7 |
|||
export CXX=clang++-3.7 |
|||
;; |
|||
|
|||
clang-3.8) |
|||
export CC=clang-3.8 |
|||
export CXX=clang++-3.8 |
|||
;; |
|||
|
|||
clang-3.9) |
|||
export CC=clang-3.9 |
|||
export CXX=clang++-3.9 |
|||
;; |
|||
|
|||
clang-4.0) |
|||
case "$OS" in |
|||
linux) |
|||
export CC=clang-4.0 |
|||
export CXX=clang++-4.0 |
|||
;; |
|||
osx) |
|||
export CC=/usr/local/opt/llvm/bin/clang-4.0 |
|||
export CXX=/usr/local/opt/llvm/bin/clang++ |
|||
;; |
|||
*) echo "Error: unexpected OS: $OS"; exit 1 ;; |
|||
esac |
|||
;; |
|||
|
|||
clang-default) |
|||
export CC=clang |
|||
export CXX=clang++ |
|||
;; |
|||
|
|||
*) |
|||
echo "Unrecognized value of COMPILER: $COMPILER" |
|||
exit 1 |
|||
esac |
|||
|
|||
run_make() { |
|||
make -j$N_JOBS |
|||
} |
|||
|
|||
# Build |
|||
echo CXX version: $($CXX --version) |
|||
echo C++ Standard library location: $(echo '#include <vector>' | $CXX -x c++ -E - | grep 'vector\"' | awk '{print $3}' | sed 's@/vector@@;s@\"@@g' | head -n 1) |
|||
echo Normalized C++ Standard library location: $(readlink -f $(echo '#include <vector>' | $CXX -x c++ -E - | grep 'vector\"' | awk '{print $3}' | sed 's@/vector@@;s@\"@@g' | head -n 1)) |
|||
|
|||
case "$1" in |
|||
DebugPlain) CMAKE_ARGS=(-DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_FLAGS="$STLARG") ;; |
|||
ReleasePlain) CMAKE_ARGS=(-DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="$STLARG") ;; |
|||
*) echo "Error: you need to specify one of the supported postsubmit modes (see postsubmit.sh)."; exit 1 ;; |
|||
esac |
|||
|
|||
rm -rf build |
|||
mkdir build |
|||
cd build |
|||
cmake .. "${CMAKE_ARGS[@]}" |
|||
echo |
|||
echo "Content of CMakeFiles/CMakeError.log:" |
|||
if [ -f "CMakeFiles/CMakeError.log" ] |
|||
then |
|||
cat CMakeFiles/CMakeError.log |
|||
fi |
|||
echo |
|||
run_make |
@ -0,0 +1,45 @@ |
|||
#!/bin/bash |
|||
# Inspired by https://github.com/google/fruit |
|||
|
|||
set -e |
|||
|
|||
: ${N_JOBS:=2} |
|||
|
|||
if [ "$STL" != "" ] |
|||
then |
|||
STLARG="-stdlib=$STL" |
|||
fi |
|||
|
|||
case $OS in |
|||
linux) |
|||
echo "Linux currently unsupported" |
|||
exit 2 |
|||
# docker rm -f fruit &>/dev/null || true |
|||
# docker run -d -it --name fruit --privileged polettimarco/fruit-basesystem:ubuntu-$UBUNTU |
|||
# docker exec fruit mkdir fruit |
|||
# docker cp . fruit:/fruit |
|||
# |
|||
# docker exec fruit bash -c " |
|||
# export COMPILER=$COMPILER; |
|||
# export N_JOBS=$N_JOBS; |
|||
# export STLARG=$STLARG; |
|||
# export ASAN_OPTIONS=$ASAN_OPTIONS; |
|||
# export OS=$OS; |
|||
# cd fruit; extras/scripts/postsubmit-helper.sh $1" |
|||
# exit $? |
|||
;; |
|||
|
|||
osx) |
|||
export COMPILER |
|||
export N_JOBS |
|||
export STLARG |
|||
export ASAN_OPTIONS |
|||
export OS |
|||
extras/scripts/postsubmit-helper.sh "$@" |
|||
exit $? |
|||
;; |
|||
|
|||
*) |
|||
echo "Unsupported OS: $OS" |
|||
exit 1 |
|||
esac |
Write
Preview
Loading…
Cancel
Save
Reference in new issue