Merge pull request #492 from Hedgehogsoft/main #2440
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Build WebAssembly | |
| on: | |
| push: | |
| branches: | |
| - main | |
| pull_request: | |
| branches: | |
| - main | |
| release: | |
| types: [published] | |
| jobs: | |
| build: | |
| runs-on: ubuntu-latest | |
| env: | |
| RELEASE_NAME: RGFW-dev_web_${{ matrix.ARCH_NAME }} | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v2 | |
| - name: Set up Emscripten | |
| uses: mymindstorm/setup-emsdk@v14 | |
| with: | |
| version: 3.1.52 | |
| - name: Build doxygen docs | |
| uses: mattnotmitt/doxygen-action@v1.9.5 | |
| with: | |
| working-directory: './' | |
| doxyfile-path: './Doxyfile' | |
| - name: Setup Release Version | |
| run: | | |
| echo "RELEASE_NAME=RGFW-web-${{ github.event.release.tag_name }}__${{ matrix.ARCH_NAME }}" >> $GITHUB_ENV | |
| shell: bash | |
| if: github.event_name == 'release' && github.event.action == 'published' | |
| - name: Setup paths | |
| run: | | |
| mkdir build | |
| cd build | |
| mkdir ${{ env.RELEASE_NAME }} | |
| cd ${{ env.RELEASE_NAME }} | |
| mkdir include | |
| mkdir lib | |
| cd ../../../RGFW | |
| - name: Compile to WebAssembly | |
| run: | | |
| git clone https://github.com/NishiOwO/osmesa | |
| rm -r -f osmesa/.git | |
| cd osmesa | |
| make TARGET=emscripten CC=emcc AR=emar | |
| cd .. | |
| make CC=em++ examples/osmesa_demo/osmesa_demo NO_OSMESA=0 CFLAGS="-Iosmesa/include -Losmesa" | |
| make clean | |
| make CC=em++ NO_OSMESA=1 | |
| make clean | |
| make CC=emcc NO_OSMESA=1 | |
| make CC=emcc examples/osmesa_demo/osmesa_demo NO_OSMESA=0 CFLAGS="-Iosmesa/include -Losmesa" | |
| mv html docs | |
| - name: get nuklear wasm | |
| run: | | |
| cd wasm | |
| wget https://github.com/ColleagueRiley/nuklear_rgfw/raw/main/rgfw_opengl2/rgfw-nuklear.wasm | |
| wget https://raw.githubusercontent.com/ColleagueRiley/nuklear_rgfw/main/rgfw_opengl2/rgfw-nuklear.js | |
| - name: Deploy Pages | |
| if: github.event_name != 'pull_request' | |
| uses: peaceiris/actions-gh-pages@v4 | |
| with: | |
| github_token: ${{ secrets.GITHUB_TOKEN }} | |
| publish_dir: ./ | |
| - name: Build Library | |
| run: | | |
| make CC=emcc libRGFW.a | |
| make CC=emcc libRGFW.so | |
| cp -v ./libRGFW.so ./build/${{ env.RELEASE_NAME }}/lib | |
| if: matrix.bits == 64 | |
| - name: Generate Artifacts | |
| run: | | |
| cp -v ./RGFW.h ./build/${{ env.RELEASE_NAME }}/include | |
| cp -v ./libRGFW.a ./build/${{ env.RELEASE_NAME }}/lib | |
| cp -v ./README.md ./build/${{ env.RELEASE_NAME }}/README.md | |
| cp -v ./LICENSE ./build/${{ env.RELEASE_NAME }}/LICENSE | |
| cd build | |
| tar -czvf ${{ env.RELEASE_NAME }}.tar.gz ${{ env.RELEASE_NAME }} | |
| - name: Upload Artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: ${{ env.RELEASE_NAME }}.tar.gz | |
| path: ./build/${{ env.RELEASE_NAME }}.tar.gz | |
| - name: Upload Artifact to Release | |
| uses: softprops/action-gh-release@v1 | |
| with: | |
| files: ./build/${{ env.RELEASE_NAME }}.tar.gz | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| if: github.event_name == 'release' && github.event.action == 'published' |