Skip to content

Commit b71c445

Browse files
committed
github bot: port the build workflow to meson
* Install meson and ninja * Create a cross compilation file when cross compiling Signed-off-by: Florian Fischer <[email protected]>
1 parent 1e76ec6 commit b71c445

File tree

1 file changed

+44
-7
lines changed

1 file changed

+44
-7
lines changed

.github/workflows/build.yml

Lines changed: 44 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -28,56 +28,64 @@ jobs:
2828
cxx: clang++
2929

3030
# x86 (32-bit) gcc
31-
- arch: i686
31+
- arch: x86
32+
cpu: i686
3233
cc_pkg: gcc-i686-linux-gnu
3334
cxx_pkg: g++-i686-linux-gnu
3435
cc: i686-linux-gnu-gcc
3536
cxx: i686-linux-gnu-g++
3637

3738
# aarch64 gcc
3839
- arch: aarch64
40+
cpu: aarch64
3941
cc_pkg: gcc-aarch64-linux-gnu
4042
cxx_pkg: g++-aarch64-linux-gnu
4143
cc: aarch64-linux-gnu-gcc
4244
cxx: aarch64-linux-gnu-g++
4345

4446
# arm (32-bit) gcc
4547
- arch: arm
48+
cpu: arm
4649
cc_pkg: gcc-arm-linux-gnueabi
4750
cxx_pkg: g++-arm-linux-gnueabi
4851
cc: arm-linux-gnueabi-gcc
4952
cxx: arm-linux-gnueabi-g++
5053

5154
# powerpc64
52-
- arch: powerpc64
55+
- arch: ppc64
56+
cpu: ppc64
5357
cc_pkg: gcc-powerpc64-linux-gnu
5458
cxx_pkg: g++-powerpc64-linux-gnu
5559
cc: powerpc64-linux-gnu-gcc
5660
cxx: powerpc64-linux-gnu-g++
5761

5862
# powerpc
59-
- arch: powerpc
63+
- arch: ppc
64+
cpu: ppc
6065
cc_pkg: gcc-powerpc-linux-gnu
6166
cxx_pkg: g++-powerpc-linux-gnu
6267
cc: powerpc-linux-gnu-gcc
6368
cxx: powerpc-linux-gnu-g++
6469

6570
# alpha
6671
- arch: alpha
72+
cpu: alpha
6773
cc_pkg: gcc-alpha-linux-gnu
6874
cxx_pkg: g++-alpha-linux-gnu
6975
cc: alpha-linux-gnu-gcc
7076
cxx: alpha-linux-gnu-g++
7177

7278
# mips64
7379
- arch: mips64
80+
cpu: mips64
7481
cc_pkg: gcc-mips64-linux-gnuabi64
7582
cxx_pkg: g++-mips64-linux-gnuabi64
7683
cc: mips64-linux-gnuabi64-gcc
7784
cxx: mips64-linux-gnuabi64-g++
7885

7986
# mips
8087
- arch: mips
88+
cpu: mips
8189
cc_pkg: gcc-mips-linux-gnu
8290
cxx_pkg: g++-mips-linux-gnu
8391
cc: mips-linux-gnu-gcc
@@ -90,6 +98,15 @@ jobs:
9098
- name: Checkout source
9199
uses: actions/checkout@v2
92100

101+
- name: Install meson
102+
run: |
103+
sudo pip install meson;
104+
105+
- name: Install ninja
106+
run: |
107+
wget -qO /tmp/ninja.gz https://github.com/ninja-build/ninja/releases/latest/download/ninja-linux.zip;
108+
sudo bash -c 'cd /tmp; gunzip /tmp/ninja.gz; install -m 755 ninja /usr/bin/ninja';
109+
93110
- name: Install Compilers
94111
run: |
95112
if [[ "${{matrix.cc_pkg}}" == "clang" ]]; then \
@@ -107,17 +124,37 @@ jobs:
107124
${{matrix.cc}} --version;
108125
${{matrix.cxx}} --version;
109126
127+
- name: Generate meson cross file
128+
run: |
129+
if [[ "${{matrix.arch}}" != "x86_64" ]]; then \
130+
echo -e "[host_machine]\nsystem = 'linux'"; \
131+
echo "cpu_family = '${{matrix.arch}}'"; \
132+
echo "cpu = '${{matrix.arch}}'"; \
133+
echo "endian = 'big'"; \
134+
echo -e "[binaries]\nc = '/usr/bin/${{matrix.cc}}'"; \
135+
echo "cpp = '/usr/bin/${{matrix.cxx}}'"; \
136+
fi > /tmp/cross-env.txt;
137+
110138
- name: Build
111139
run: |
112-
./configure --cc=${{matrix.cc}} --cxx=${{matrix.cxx}};
113-
make -j$(nproc) V=1 CPPFLAGS="-Werror" CFLAGS="$FLAGS" CXXFLAGS="$FLAGS";
140+
if [[ "${{matrix.arch}}" == "x86_64" ]]; then \
141+
if [[ "${{matrix.cc}}" == "clang" ]]; then \
142+
make CC=${{matrix.cc}} CXX=${{matrix.cxx}} CPPFLAGS="-Werror" CFLAGS="$FLAGS" CXXFLAGS="$FLAGS"; \
143+
else \
144+
145+
make CPPFLAGS="-Werror" CFLAGS="$FLAGS" CXXFLAGS="$FLAGS"; \
146+
fi; \
147+
else \
148+
CPPFLAGS="-Werror" CFLAGS="$FLAGS" CXXFLAGS="$FLAGS" meson build --cross-file /tmp/cross-env.txt; \
149+
ninja -C build -j$(nproc); \
150+
fi;
114151
115152
- name: Build nolibc
116153
run: |
117154
if [[ "${{matrix.arch}}" == "x86_64" || "${{matrix.arch}}" == "i686" ]]; then \
118155
make clean; \
119-
./configure --cc=${{matrix.cc}} --cxx=${{matrix.cxx}} --nolibc; \
120-
make -j$(nproc) V=1 CPPFLAGS="-Werror" CFLAGS="$FLAGS" CXXFLAGS="$FLAGS"; \
156+
CC=${{matrix.cc}} CXX=${{matrix.cxx}} CPPFLAGS="-Werror" CFLAGS="$FLAGS" CXXFLAGS="$FLAGS" meson setup build -Dnolibc=true -Dtests=true -Dexamples=true; \
157+
ninja -C build -j$(nproc); \
121158
else \
122159
echo "Skipping nolibc build, this arch doesn't support building liburing without libc"; \
123160
fi;

0 commit comments

Comments
 (0)