@@ -21,6 +21,9 @@ addons:
25+ env: CABALVER="1.24" GHCVER="8.0.1" TESTS="test_c"
26+ compiler: ": #GHC 8.0.1"
24 - env: CABALVER="1.20" GHCVER="7.6.3" TESTS="test_c"
27 - env: CABALVER="1.20" GHCVER="7.6.3" TESTS="test_c"
25 # separate caches for different compiler versions
28 # separate caches for different compiler versions
26 # until https://github.com/travis-ci/travis-ci/issues/4393 is resolved
29 # until https://github.com/travis-ci/travis-ci/issues/4393 is resolved
@@ -51,26 +54,40 @@ before_cache:
52before_install:
55before_install:
53 - unset CC
56 - unset CC
57+ - if [[ $TRAVIS_OS_NAME == 'linux' ]];
54− - export PATH=/opt/ghc/$GHCVER/bin:/opt/cabal/$CABALVER/bin:$HOME/.cabal/bin:$PATH
59+ export PATH=/opt/ghc/$GHCVER/bin:/opt/cabal/$CABALVER/bin:$HOME/.cabal/bin:$PATH;
64+ - if [[ $TRAVIS_OS_NAME == 'osx' ]];
66+ brew update; brew install ghc; brew install cabal-install;
67+ brew install libffi; brew install pkg-config; brew install cppcheck;
68+ brew install gnu-sed;
69+ export PATH=$HOME/.cabal/bin:$PATH;
72+ export PKG_CONFIG_PATH=/usr/local/opt/libffi/lib/pkgconfig:$PKG_CONFIG_PATH;
58 - cabal --version
76 - cabal --version
59 - echo "$(ghc --version) [$(ghc --print-project-git-commit-id 2> /dev/null || echo '?')]"
77 - echo "$(ghc --version) [$(ghc --print-project-git-commit-id 2> /dev/null || echo '?')]"
60 - if [ -f $HOME/.cabal/packages/hackage.haskell.org/00-index.tar.gz ];
78 - if [ -f $HOME/.cabal/packages/hackage.haskell.org/00-index.tar.gz ];
62− zcat $HOME/.cabal/packages/hackage.haskell.org/00-index.tar.gz >
80+ $ZCAT $HOME/.cabal/packages/hackage.haskell.org/00-index.tar.gz >
63− $HOME/.cabal/packages/hackage.haskell.org/00-index.tar;
81+ $HOME/.cabal/packages/hackage.haskell.org/00-index.tar;
65 - travis_retry cabal update -v
83 - travis_retry cabal update -v
66 # Run build with 2 parallel jobs
84 # Run build with 2 parallel jobs
67 # The container environment reports 16 cores,
85 # The container environment reports 16 cores,
68 # causing cabal's default configuration (jobs: $ncpus)
86 # causing cabal's default configuration (jobs: $ncpus)
69 # to run into the GHC #9221 bug which can result in longer build-times.
87 # to run into the GHC #9221 bug which can result in longer build-times.
70− - sed -i -r 's/(^jobs:).*/\1 2/' $HOME/.cabal/config
88+ - $SED -i -r 's/(^jobs:).*/\1 2/' $HOME/.cabal/config
71 - cabal install -f FFI --only-dependencies --enable-tests --dry -v > installplan.txt
89 - cabal install -f FFI --only-dependencies --enable-tests --dry -v > installplan.txt
72− - sed -i -e '1,/^Resolving /d' installplan.txt; cat installplan.txt
90+ - $SED -i -e '1,/^Resolving /d' installplan.txt; cat installplan.txt
74 # check whether current requested install-plan matches cached package-db snapshot
91 # check whether current requested install-plan matches cached package-db snapshot
75 - if diff -u installplan.txt $HOME/.cabsnap/installplan.txt;
92 - if diff -u installplan.txt $HOME/.cabsnap/installplan.txt;
@@ -84,7 +101,6 @@ install:
84 mkdir -p $HOME/.ghc $HOME/.cabal/lib $HOME/.cabal/share $HOME/.cabal/bin;
101 mkdir -p $HOME/.ghc $HOME/.cabal/lib $HOME/.cabal/share $HOME/.cabal/bin;
85 cabal install -f FFI --only-dependencies --enable-tests;
102 cabal install -f FFI --only-dependencies --enable-tests;
88 # snapshot package-db on cache miss
104 # snapshot package-db on cache miss
89 - if [ ! -d $HOME/.cabsnap ];
105 - if [ ! -d $HOME/.cabsnap ];