Skip to content

Commit 34cf9dc

Browse files
author
Mitsutoshi Aoe
authored
Merge pull request #68 from maoe/travis-macos
travis: Use the cabal-install builds for OSX
2 parents 1829611 + 860c245 commit 34cf9dc

File tree

2 files changed

+58
-16
lines changed

2 files changed

+58
-16
lines changed

.travis.yml

Lines changed: 5 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ cache:
1616
- $HOME/.cabal/packages
1717
- $HOME/.cabal/store
1818
- $HOME/Library/Caches/Homebrew
19-
- $HOME/cabal
19+
- $HOME/.ghc-install
2020

2121
before_cache:
2222
- rm -fv $HOME/.cabal/packages/hackage.haskell.org/build-reports.log
@@ -44,30 +44,19 @@ matrix:
4444
- compiler: "ghc-8.2.1"
4545
# env: TEST=--disable-tests BENCH=--disable-benchmarks
4646
addons: {apt: {packages: [ghc-ppa-tools,cabal-install-head,ghc-8.2.1,libgtk2.0-dev], sources: [hvr-ghc]}}
47-
- compiler: "ghc"
47+
- compiler: "ghc-8.2.1"
48+
# env: TEST=--disable-tests BENCH=--disable-benchmarks
4849
os: osx
4950

5051
before_install:
5152
- HC=${CC}
5253
- unset CC
53-
- PATH=$HOME/.cabal/bin:/opt/ghc/bin:/opt/ghc-ppa-tools/bin:$PATH
54+
- sh scripts/install-on-osx.sh $HC
55+
- PATH=/opt/ghc/bin:/opt/ghc-ppa-tools/bin:$HOME/.ghc-install/bin:$PATH
5456
- PKGNAME='threadscope'
5557
- |
5658
if [ `uname` = "Darwin" ]; then
5759
brew install ghc gtk+ gtk-mac-integration
58-
pushd $HOME
59-
if [ -d cabal/.git ]; then
60-
cd cabal
61-
git fetch origin
62-
else
63-
git clone https://github.com/haskell/cabal.git
64-
fi
65-
cd $HOME/cabal/cabal-install
66-
git checkout 3751ec6
67-
NO_DOCUMENTATION=1 EXTRA_CONFIGURE_OPTS="" ./bootstrap.sh -j --sandbox
68-
mkdir -p $HOME/.cabal/bin
69-
cp -v .cabal-sandbox/bin/cabal $HOME/.cabal/bin/cabal
70-
popd
7160
fi
7261
7362
install:

scripts/install-on-osx.sh

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
#!/bin/sh
2+
3+
HC=$1
4+
5+
set -ex
6+
7+
CABALPKG="cabal-c92b4ea7ce036fae6ebf3c2965d6ecc0ef252775-20170725-123913.xz"
8+
CABALCHECKSUM="2aa74ff75ee97745eb562360ed4e8f95f3eba4ce40c8621b6b23e29633f6ed3a"
9+
10+
GHCPKG="ghc-8.2.1-x86_64-apple-darwin.tar.xz"
11+
GHCURL="https://downloads.haskell.org/~ghc/8.2.1/$GHCPKG"
12+
GHCCHECKSUM="900c802025fb630060dbd30f9738e5d107a4ca5a50d5c1262cd3e69fe4467188"
13+
14+
if [ $(uname) != "Darwin" ]; then
15+
exit 0
16+
fi
17+
18+
if [ "x$HC" != "xghc-8.2.1" ]; then
19+
echo "Only GHC-8.2.1 is supported at the moment"
20+
exit 1
21+
fi
22+
23+
ROOTDIR=$(pwd)
24+
BUILDDIR=$(mktemp -d /tmp/build-cabal-nightly.XXXXXX)
25+
26+
travis_retry () {
27+
$* || (sleep 1 && $*) || (sleep 2 && $*)
28+
}
29+
30+
if [ ! -f $HOME/.ghc-install/bin/ghc-8.2.1 ]; then
31+
cd $BUILDDIR
32+
33+
travis_retry curl -OL $GHCURL
34+
# Two spaces seems to be important
35+
echo "$GHCCHECKSUM ./$GHCPKG" | shasum -c -a 256
36+
37+
tar -xJf $GHCPKG
38+
cd ghc-*
39+
./configure --prefix=$HOME/.ghc-install
40+
make install
41+
fi
42+
43+
if [ ! -f $HOME/.ghc-install/bin/cabal ]; then
44+
cd $BUILDDIR
45+
46+
travis_retry curl -OL https://haskell.futurice.com/files/$CABALPKG
47+
echo "$CABALCHECKSUM ./$CABALPKG" | shasum -c -a 256
48+
49+
# gunzip knows how to handle .xz
50+
gunzip -c $CABALPKG > $HOME/.ghc-install/bin/cabal
51+
mkdir -p $HOME/.ghc-install/bin
52+
chmod a+x $HOME/.ghc-install/bin/cabal
53+
fi

0 commit comments

Comments
 (0)