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
name: Emscripten
 
on: [push, pull_request]
 
jobs:
  build-linux:
    defaults:
      run:
        shell: bash
    name: Emscripten-C++${{matrix.std}}-${{matrix.build_type}}-${{matrix.lib}}
    runs-on: ubuntu-latest
    container: emscripten/emsdk
    strategy:
      fail-fast: true
      matrix:
        build_type: [Release, Debug]
        lib: [static]
        std: [14, 17, 20]
 
    steps:
      - uses: actions/checkout@v3
 
      - name: Setup Dependencies
        run: |
          apt-get update
          DEBIAN_FRONTEND=noninteractive sudo apt-get install -y \
            cmake \
            ninja-build
 
      - name: Configure
        env:
          CXXFLAGS: -Wall -Wextra -Wsign-conversion -Wtautological-compare -Wformat-nonliteral -Wundef -Werror -Wno-error=wasm-exception-spec ${{env.CXXFLAGS}}
        run: |
          cmake -S . -B build_${{matrix.build_type}} \
            -DBUILD_SHARED_LIBS=${{matrix.lib == 'shared'}} \
            -DCMAKE_AR=$(which emar) \
            -DCMAKE_CXX_COMPILER=$(which em++) \
            -DCMAKE_CXX_STANDARD=${{matrix.std}} \
            -DCMAKE_CXX_STANDARD_REQUIRED=ON \
            -DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY \
            -DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY \
            -DCMAKE_FIND_ROOT_PATH_MODE_PACKAGE=ONLY \
            -DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER \
            -DCMAKE_INSTALL_PREFIX=${{github.workspace}}/install \
            -DCMAKE_RANLIB=$(which emranlib) \
            -G Ninja \
            -Werror
 
      - name: Build
        run: |
          cmake --build build_${{matrix.build_type}} \
                --config ${{matrix.build_type}}