@@ -28,56 +28,64 @@ jobs:
28
28
cxx : clang++
29
29
30
30
# x86 (32-bit) gcc
31
- - arch : i686
31
+ - arch : x86
32
+ cpu : i686
32
33
cc_pkg : gcc-i686-linux-gnu
33
34
cxx_pkg : g++-i686-linux-gnu
34
35
cc : i686-linux-gnu-gcc
35
36
cxx : i686-linux-gnu-g++
36
37
37
38
# aarch64 gcc
38
39
- arch : aarch64
40
+ cpu : aarch64
39
41
cc_pkg : gcc-aarch64-linux-gnu
40
42
cxx_pkg : g++-aarch64-linux-gnu
41
43
cc : aarch64-linux-gnu-gcc
42
44
cxx : aarch64-linux-gnu-g++
43
45
44
46
# arm (32-bit) gcc
45
47
- arch : arm
48
+ cpu : arm
46
49
cc_pkg : gcc-arm-linux-gnueabi
47
50
cxx_pkg : g++-arm-linux-gnueabi
48
51
cc : arm-linux-gnueabi-gcc
49
52
cxx : arm-linux-gnueabi-g++
50
53
51
54
# powerpc64
52
- - arch : powerpc64
55
+ - arch : ppc64
56
+ cpu : ppc64
53
57
cc_pkg : gcc-powerpc64-linux-gnu
54
58
cxx_pkg : g++-powerpc64-linux-gnu
55
59
cc : powerpc64-linux-gnu-gcc
56
60
cxx : powerpc64-linux-gnu-g++
57
61
58
62
# powerpc
59
- - arch : powerpc
63
+ - arch : ppc
64
+ cpu : ppc
60
65
cc_pkg : gcc-powerpc-linux-gnu
61
66
cxx_pkg : g++-powerpc-linux-gnu
62
67
cc : powerpc-linux-gnu-gcc
63
68
cxx : powerpc-linux-gnu-g++
64
69
65
70
# alpha
66
71
- arch : alpha
72
+ cpu : alpha
67
73
cc_pkg : gcc-alpha-linux-gnu
68
74
cxx_pkg : g++-alpha-linux-gnu
69
75
cc : alpha-linux-gnu-gcc
70
76
cxx : alpha-linux-gnu-g++
71
77
72
78
# mips64
73
79
- arch : mips64
80
+ cpu : mips64
74
81
cc_pkg : gcc-mips64-linux-gnuabi64
75
82
cxx_pkg : g++-mips64-linux-gnuabi64
76
83
cc : mips64-linux-gnuabi64-gcc
77
84
cxx : mips64-linux-gnuabi64-g++
78
85
79
86
# mips
80
87
- arch : mips
88
+ cpu : mips
81
89
cc_pkg : gcc-mips-linux-gnu
82
90
cxx_pkg : g++-mips-linux-gnu
83
91
cc : mips-linux-gnu-gcc
90
98
- name : Checkout source
91
99
uses : actions/checkout@v2
92
100
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
+
93
110
- name : Install Compilers
94
111
run : |
95
112
if [[ "${{matrix.cc_pkg}}" == "clang" ]]; then \
@@ -107,17 +124,37 @@ jobs:
107
124
${{matrix.cc}} --version;
108
125
${{matrix.cxx}} --version;
109
126
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
+
110
138
- name : Build
111
139
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;
114
151
115
152
- name : Build nolibc
116
153
run : |
117
154
if [[ "${{matrix.arch}}" == "x86_64" || "${{matrix.arch}}" == "i686" ]]; then \
118
155
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); \
121
158
else \
122
159
echo "Skipping nolibc build, this arch doesn't support building liburing without libc"; \
123
160
fi;
0 commit comments