name: build-crpc on: - push jobs: build: runs-on: ubuntu-20.04 strategy: matrix: build_type: - Debug - Release toolchain: - mingw-w64-x86_64.toolchain.cmake - mingw-w64-xi686.toolchain.cmake - host.toolchain.cmake steps: - name: Install Dependencies run: | # uuid-dev is required by antlr4 apt-get update -y apt-get install -y \ cmake make g++ libssl-dev pkg-config autoconf libtool libantlr4-runtime-dev default-jre-headless mingw-w64 \ uuid-dev - uses: actions/checkout@v4 - name: Generate Lexer and Parser run: | cd ${{ github.workspace }}/src/grammar wget -q -t 3 https://www.antlr.org/download/antlr-4.13.1-complete.jar -O antlr.jar java -jar antlr.jar -Dlanguage=Cpp -o ./ ProtoLexer.g4 java -jar antlr.jar -Dlanguage=Cpp -o ./ ProtoParser.g4 ls -lh - name: Configure CRPC run: | cd ${{ github.workspace }} # use static link cmake . -Bbuild \ -DCMAKE_TOOLCHAIN_FILE=toolchains/${{ matrix.toolchain }} \ -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} \ -DCMAKE_VERBOSE_MAKEFILE=ON \ -DCMAKE_CXX_FLAGS="-static-libgcc -static-libstdc++" \ -DCMAKE_C_FLAGS="-static-libgcc -static-libstdc++" - name: Build CRPC run: | cmake --build build --config ${{ matrix.build_type }} --target all -- -j `nproc` - name: Upload Artifact uses: actions/upload-artifact@v2 with: name: crpc-${{ matrix.toolchain }}-${{ matrix.build_type }} path: ${{ github.workspace }}/build/crpc