diff mbox

[v1,2/3] .travis.yml: enable OSX builds

Message ID 1458651195-21176-3-git-send-email-alex.bennee@linaro.org
State New
Headers show

Commit Message

Alex Bennée March 22, 2016, 12:53 p.m. UTC
Travis has support for OSX builds. Making the setup work cleanly
involves a little hacking about with the .travis.yml file but rather
than make it too messy I've pushed all the "brew" install stuff into a
support script called ./scripts/macosx-brew.sh.

Currently only the default ./configure ${CONFIG} is built as I'm not
sure what extra coverage would come from the other build stanzas.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>

---
 .travis.yml            |  4 ++++
 scripts/macosx-brew.sh | 12 ++++++++++++
 2 files changed, 16 insertions(+)
 create mode 100755 scripts/macosx-brew.sh

-- 
2.7.3

Comments

Peter Maydell March 22, 2016, 1:49 p.m. UTC | #1
On 22 March 2016 at 12:53, Alex Bennée <alex.bennee@linaro.org> wrote:
> Travis has support for OSX builds. Making the setup work cleanly

> involves a little hacking about with the .travis.yml file but rather

> than make it too messy I've pushed all the "brew" install stuff into a

> support script called ./scripts/macosx-brew.sh.

>

> Currently only the default ./configure ${CONFIG} is built as I'm not

> sure what extra coverage would come from the other build stanzas.

>

> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>

> ---

>  .travis.yml            |  4 ++++

>  scripts/macosx-brew.sh | 12 ++++++++++++

>  2 files changed, 16 insertions(+)

>  create mode 100755 scripts/macosx-brew.sh

>

> diff --git a/.travis.yml b/.travis.yml

> index 18c04af..3f77bfa 100644

> --- a/.travis.yml

> +++ b/.travis.yml

> @@ -53,6 +53,7 @@ git:

>    # we want to do this ourselves

>    submodules: false

>  before_install:

> +  - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then ./scripts/macosx-brew.sh ; fi


[[ is a bash-ism, does travis guarantee we are using bash here?
(Alternatively just use single [] and the '=' operator.)

>    - wget -O - http://people.linaro.org/~alex.bennee/qemu-submodule-git-seed.tar.xz | tar -xvJ

>    - git submodule update --init --recursive

>  before_script:

> @@ -83,3 +84,6 @@ matrix:

>      - env: CONFIG="--with-coroutine=gthread"

>             TEST_CMD=""

>        compiler: gcc

> +    - env: CONFIG=""

> +      os: osx

> +      compiler: clang

> diff --git a/scripts/macosx-brew.sh b/scripts/macosx-brew.sh

> new file mode 100755

> index 0000000..fc0d588

> --- /dev/null

> +++ b/scripts/macosx-brew.sh

> @@ -0,0 +1,12 @@

> +#!/bin/sh


You should probably be using '-e' here.

Missing license/copyright info.

> +#

> +# Install MacOSX dependancies


"dependencies".

> +#

> +brew update

> +brew install libffi

> +brew install gettext

> +brew install pkg-config

> +brew install glib

> +brew install autoconf

> +brew install automake

> +brew install pixman

> --

> 2.7.3


If we're going to have an extra script, we should probably
either (a) note it as being for the benefit of the Travis install
or (b) better document whether/how end users should
use it.

I think the minimal code to do it inline in .travis.yml is:

  - [ "$TRAVIS_OS_NAME" = "osx" ] && brew update
  - [ "$TRAVIS_OS_NAME" = "osx" ] && brew install libffi gettext
pkg-config glib autoconf automake pixman

(you could skip pixman and rely on the submodule).

thanks
-- PMM
Alex Bennée March 22, 2016, 2:12 p.m. UTC | #2
Peter Maydell <peter.maydell@linaro.org> writes:

> On 22 March 2016 at 12:53, Alex Bennée <alex.bennee@linaro.org> wrote:

>> Travis has support for OSX builds. Making the setup work cleanly

>> involves a little hacking about with the .travis.yml file but rather

>> than make it too messy I've pushed all the "brew" install stuff into a

>> support script called ./scripts/macosx-brew.sh.

>>

>> Currently only the default ./configure ${CONFIG} is built as I'm not

>> sure what extra coverage would come from the other build stanzas.

>>

>> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>

>> ---

>>  .travis.yml            |  4 ++++

>>  scripts/macosx-brew.sh | 12 ++++++++++++

>>  2 files changed, 16 insertions(+)

>>  create mode 100755 scripts/macosx-brew.sh

>>

>> diff --git a/.travis.yml b/.travis.yml

>> index 18c04af..3f77bfa 100644

>> --- a/.travis.yml

>> +++ b/.travis.yml

>> @@ -53,6 +53,7 @@ git:

>>    # we want to do this ourselves

>>    submodules: false

>>  before_install:

>> +  - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then ./scripts/macosx-brew.sh ; fi

>

> [[ is a bash-ism, does travis guarantee we are using bash here?

> (Alternatively just use single [] and the '=' operator.)


Well I copied it directly from their docs so I'm assuming so:

   https://docs.travis-ci.com/user/multi-os/

>

>>    - wget -O - http://people.linaro.org/~alex.bennee/qemu-submodule-git-seed.tar.xz | tar -xvJ

>>    - git submodule update --init --recursive

>>  before_script:

>> @@ -83,3 +84,6 @@ matrix:

>>      - env: CONFIG="--with-coroutine=gthread"

>>             TEST_CMD=""

>>        compiler: gcc

>> +    - env: CONFIG=""

>> +      os: osx

>> +      compiler: clang

>> diff --git a/scripts/macosx-brew.sh b/scripts/macosx-brew.sh

>> new file mode 100755

>> index 0000000..fc0d588

>> --- /dev/null

>> +++ b/scripts/macosx-brew.sh

>> @@ -0,0 +1,12 @@

>> +#!/bin/sh

>

> You should probably be using '-e' here.

>

> Missing license/copyright info.

>

>> +#

>> +# Install MacOSX dependancies

>

> "dependencies".

>

>> +#

>> +brew update

>> +brew install libffi

>> +brew install gettext

>> +brew install pkg-config

>> +brew install glib

>> +brew install autoconf

>> +brew install automake

>> +brew install pixman

>> --

>> 2.7.3

>

> If we're going to have an extra script, we should probably

> either (a) note it as being for the benefit of the Travis install

> or (b) better document whether/how end users should

> use it.

>

> I think the minimal code to do it inline in .travis.yml is:

>

>   - [ "$TRAVIS_OS_NAME" = "osx" ] && brew update

>   - [ "$TRAVIS_OS_NAME" = "osx" ] && brew install libffi gettext

> pkg-config glib autoconf automake pixman


Ahh fair enough, when I started down the route I didn't know how complex
setting up the environment would be. I wonder if MinGW will be as easy
to setup?

>

> (you could skip pixman and rely on the submodule).

>

> thanks

> -- PMM



--
Alex Bennée
diff mbox

Patch

diff --git a/.travis.yml b/.travis.yml
index 18c04af..3f77bfa 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -53,6 +53,7 @@  git:
   # we want to do this ourselves
   submodules: false
 before_install:
+  - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then ./scripts/macosx-brew.sh ; fi
   - wget -O - http://people.linaro.org/~alex.bennee/qemu-submodule-git-seed.tar.xz | tar -xvJ
   - git submodule update --init --recursive
 before_script:
@@ -83,3 +84,6 @@  matrix:
     - env: CONFIG="--with-coroutine=gthread"
            TEST_CMD=""
       compiler: gcc
+    - env: CONFIG=""
+      os: osx
+      compiler: clang
diff --git a/scripts/macosx-brew.sh b/scripts/macosx-brew.sh
new file mode 100755
index 0000000..fc0d588
--- /dev/null
+++ b/scripts/macosx-brew.sh
@@ -0,0 +1,12 @@ 
+#!/bin/sh
+#
+# Install MacOSX dependancies
+#
+brew update
+brew install libffi
+brew install gettext
+brew install pkg-config
+brew install glib
+brew install autoconf
+brew install automake
+brew install pixman