diff --git a/.github/workflows/android-clang.yaml b/.github/workflows/android-clang.yaml new file mode 100644 index 0000000..6301bcd --- /dev/null +++ b/.github/workflows/android-clang.yaml @@ -0,0 +1,35 @@ +name: Build for Android with Clang using the NDK + +on: + workflow_dispatch: + pull_request: + branches: + - main + +jobs: + build: + runs-on: ubuntu-22.04 + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Set up JDK + uses: actions/setup-java@v4 + with: + distribution: 'zulu' + java-version: '21' + + - name: Download and set up Android NDK + run: | + wget https://dl.google.com/android/repository/android-ndk-r27-linux.zip + unzip android-ndk-r27-linux.zip + echo "export ANDROID_NDK_HOME=$GITHUB_WORKSPACE/android-ndk-r27" >> $GITHUB_ENV + echo "export PATH=$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/linux/bin:$PATH" >> $GITHUB_ENV + + - name: Build with Clang and Android NDK + run: | + mkdir -p build + cd build + cmake -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK_HOME/build/cmake/android.toolchain.cmake -DANDROID_ABI=arm64-v8a -DANDROID_PLATFORM=android-23 .. + make diff --git a/.github/workflows/linux-clang.yaml b/.github/workflows/linux-clang.yaml new file mode 100644 index 0000000..2f61353 --- /dev/null +++ b/.github/workflows/linux-clang.yaml @@ -0,0 +1,25 @@ +name: Build for Linux with Clang + +on: + workflow_dispatch: + pull_request: + branches: + - main + +jobs: + build: + runs-on: ubuntu-22.04 + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Set up Clang + run: sudo apt-get install -y clang + + - name: Build with Clang + run: | + mkdir -p build + cd build + cmake -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ .. + make diff --git a/.github/workflows/linux-gcc.yaml b/.github/workflows/linux-gcc.yaml new file mode 100644 index 0000000..8ccd891 --- /dev/null +++ b/.github/workflows/linux-gcc.yaml @@ -0,0 +1,25 @@ +name: Build for Linux with GCC + +on: + workflow_dispatch: + pull_request: + branches: + - main + +jobs: + build: + runs-on: ubuntu-22.04 + + steps: + - name: Git checkout + uses: actions/checkout@v4 + + - name: Set up GCC + run: sudo apt-get install -y build-essential + + - name: Build with GCC + run: | + mkdir -p build + cd build + cmake -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ .. + make