[PATCH liburing 8/9] github bot: add jobs for meson

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



* Use meson CPU family names in matrix
* Install meson and ninja
* Create a cross compilation file
* Build with meson
* Build nolibc variant with meson
* Test installation with meson

Acked-by: Ammar Faizi <ammarfaizi2@xxxxxxxxxxx>
Signed-off-by: Florian Fischer <florian.fischer@muhq.space>
---
 .github/workflows/build.yml | 45 +++++++++++++++++++++++++++++++++----
 1 file changed, 41 insertions(+), 4 deletions(-)

diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 333929c..95fd892 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -28,7 +28,7 @@ jobs:
             cxx: clang++
 
           # x86 (32-bit) gcc
-          - arch: i686
+          - arch: x86
             cc_pkg: gcc-i686-linux-gnu
             cxx_pkg: g++-i686-linux-gnu
             cc: i686-linux-gnu-gcc
@@ -49,14 +49,14 @@ jobs:
             cxx: arm-linux-gnueabi-g++
 
           # powerpc64
-          - arch: powerpc64
+          - arch: ppc64
             cc_pkg: gcc-powerpc64-linux-gnu
             cxx_pkg: g++-powerpc64-linux-gnu
             cc: powerpc64-linux-gnu-gcc
             cxx: powerpc64-linux-gnu-g++
 
           # powerpc
-          - arch: powerpc
+          - arch: ppc
             cc_pkg: gcc-powerpc-linux-gnu
             cxx_pkg: g++-powerpc-linux-gnu
             cc: powerpc-linux-gnu-gcc
@@ -85,6 +85,8 @@ jobs:
 
     env:
       FLAGS: -g -O3 -Wall -Wextra -Werror
+      MESON_BUILDDIR: build
+      MESON_CROSS_FILE: /tmp/cross-env.txt
 
     steps:
     - name: Checkout source
@@ -114,7 +116,7 @@ jobs:
 
     - name: Build nolibc
       run: |
-        if [[ "${{matrix.arch}}" == "x86_64" || "${{matrix.arch}}" == "i686" || "${{matrix.arch}}" == "aarch64" ]]; then \
+        if [[ "${{matrix.arch}}" == "x86_64" || "${{matrix.arch}}" == "x86" || "${{matrix.arch}}" == "aarch64" ]]; then \
             make clean; \
             ./configure --cc=${{matrix.cc}} --cxx=${{matrix.cxx}} --nolibc; \
             make -j$(nproc) V=1 CPPFLAGS="-Werror" CFLAGS="$FLAGS" CXXFLAGS="$FLAGS"; \
@@ -125,3 +127,38 @@ jobs:
     - name: Test install command
       run: |
         sudo make install;
+
+    - name: Install meson
+      run: |
+        sudo apt-get update -y;
+        sudo apt-get install -y meson;
+
+    - name: Generate meson cross file
+      run: |
+        { \
+          echo -e "[host_machine]\nsystem = 'linux'"; \
+          echo "cpu_family = '${{matrix.arch}}'"; \
+          echo "cpu = '${{matrix.arch}}'"; \
+          echo "endian = 'big'"; \
+          echo -e "[binaries]\nc = '/usr/bin/${{matrix.cc}}'"; \
+          echo "cpp = '/usr/bin/${{matrix.cxx}}'"; \
+        } > "$MESON_CROSS_FILE"
+
+    - name: Build with meson
+      run: |
+        meson setup "$MESON_BUILDDIR" -Dtests=true -Dexamples=true --cross-file "$MESON_CROSS_FILE";
+        ninja -C "$MESON_BUILDDIR";
+
+    - name: Build nolibc with meson
+      run: |
+        if [[ "${{matrix.arch}}" == "x86_64" || "${{matrix.arch}}" == "x86" || "${{matrix.arch}}" == "aarch64" ]]; then \
+            rm -r "$MESON_BUILDDIR"; \
+            meson setup "$MESON_BUILDDIR" -Dnolibc=true -Dtests=true -Dexamples=true --cross-file "$MESON_CROSS_FILE"; \
+            ninja -C "$MESON_BUILDDIR"; \
+        else \
+            echo "Skipping nolibc build, this arch doesn't support building liburing without libc"; \
+        fi;
+
+    - name: Test meson install
+      run: |
+       sudo meson install -C "$MESON_BUILDDIR"
-- 
2.37.1




[Index of Archives]     [Linux Samsung SoC]     [Linux Rockchip SoC]     [Linux Actions SoC]     [Linux for Synopsys ARC Processors]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]


  Powered by Linux