Lizerui9926
2023-04-26 b78d47f1efb3d0662fce1b8d45a9eb11b3caef02
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
name: Android
 
on: [push, pull_request]
 
jobs:
  build-android:
    name: NDK-C++${{matrix.std}}-${{matrix.abi}}-${{matrix.build_type}}
    runs-on: ubuntu-latest
    defaults:
      run:
        shell: bash
    env:
      NDK_VERSION: 25.0.8775105
    strategy:
      fail-fast: true
      matrix:
        std: [14, 17, 20]
        abi: [arm64-v8a, armeabi-v7a, x86_64, x86]
        build_type: [Debug, Release]
 
    steps:
      - uses: actions/checkout@v3
 
      - name: Setup Ninja
        uses: ashutoshvarma/setup-ninja@master
        with:
          version: 1.10.0
 
      - name: Setup NDK
        env:
          ANDROID_SDK_ROOT: /usr/local/lib/android/sdk
        run: |
          echo 'y' | ${{env.ANDROID_SDK_ROOT}}/cmdline-tools/latest/bin/sdkmanager --install 'ndk;${{env.NDK_VERSION}}'
 
      - name: Configure
        env:
          CXXFLAGS: -Wall -Wextra -Wpedantic -Wsign-conversion -Wtautological-compare -Wformat-nonliteral -Wundef -Werror ${{env.CXXFLAGS}}
        run: |
          cmake -S . -B build_${{matrix.abi}} \
                -DCMAKE_ANDROID_API=28 \
                -DCMAKE_ANDROID_ARCH_ABI=${{matrix.abi}} \
                -DCMAKE_ANDROID_NDK=/usr/local/lib/android/sdk/ndk/${{env.NDK_VERSION}} \
                -DCMAKE_ANDROID_STL_TYPE=c++_shared \
                -DCMAKE_BUILD_TYPE=${{matrix.build_type}} \
                -DCMAKE_CXX_EXTENSIONS=OFF \
                -DCMAKE_CXX_STANDARD=${{matrix.std}} \
                -DCMAKE_CXX_STANDARD_REQUIRED=ON \
                -DCMAKE_SYSTEM_NAME=Android \
                -G Ninja \
                -Werror
 
      - name: Build
        run: |
          cmake --build build_${{matrix.abi}} \
                --config ${{matrix.build_type}}