1name: Mac OS X
2
3on:
4  push:
5    branches:
6      - main
7  pull_request:
8    branches:
9      - main
10
11jobs:
12  macos:
13    runs-on: macos-latest
14    strategy:
15      matrix:
16        meson_flags: [
17          "",
18
19          # Math configurations
20          "-Dnewlib-obsolete-math=false",
21          "-Dnewlib-obsolete-math=false -Dwant-math-errno=true",
22          "-Dnewlib-obsolete-math-float=true -Dnewlib-obsolete-math-double=false",
23          "-Dnewlib-obsolete-math=true",
24          "-Dnewlib-obsolete-math=true -Dwant-math-errno=true",
25
26          # Tinystdio configurations
27          "-Dio-float-exact=false",
28          "-Dio-long-long=true",
29          "-Dformat-default=integer",
30          "-Dformat-default=float",
31
32          # Malloc configurations
33          "-Dnewlib-nano-malloc=false",
34
35          # Locale configurations
36          "-Dnewlib-locale-info=true -Dnewlib-locale-info-extended=true -Dnewlib-mb=true",
37
38          # Iconv configurations
39          "-Dnewlib-iconv-external-ccs=true"
40        ]
41        test: [
42          "./.github/do-test native -Dnative-tests=false -Dtests-enable-posix-io=false",
43        ]
44
45    steps:
46      - name: 'Clone picolibc'
47        uses: actions/checkout@v2
48
49      - name: 'Setup python'
50        uses: actions/setup-python@v1
51        with:
52          python-version: '3.x'
53
54      - name: 'Install meson and ninja'
55        run: pip install meson ninja
56
57      - name: 'MacOS test'
58        run: ${{ matrix.test }} ${{ matrix.meson_flags }}
59