This repository has been archived by the owner. It is now read-only.
| name: re3 conan+cmake | |
| on: | |
| pull_request: | |
| push: | |
| release: | |
| types: published | |
| jobs: | |
| build-cmake: | |
| strategy: | |
| matrix: | |
| include: | |
| - os: 'windows-latest' | |
| platform: 'gl3' | |
| gl3_gfxlib: 'glfw' | |
| audio: 'openal' | |
| # - os: 'windows-latest' | |
| # platform: 'gl3' | |
| # gl3_gfxlib: 'sdl2' | |
| # audio: 'openal' | |
| - os: 'windows-latest' | |
| platform: 'd3d9' | |
| audio: 'openal' | |
| # - os: 'windows-latest' | |
| # platform: 'd3d9' | |
| # audio: 'miles' | |
| - os: 'ubuntu-latest' | |
| platform: 'gl3' | |
| gl3_gfxlib: 'glfw' | |
| audio: 'openal' | |
| # - os: 'ubuntu-latest' | |
| # platform: 'gl3' | |
| # gl3_gfxlib: 'sdl2' | |
| # audio: 'openal' | |
| - os: 'macos-latest' | |
| platform: 'gl3' | |
| gl3_gfxlib: 'glfw' | |
| audio: 'openal' | |
| # - os: 'macos-latest' | |
| # platform: 'gl3' | |
| # gl3_gfxlib: 'sdl2' | |
| # audio: 'openal' | |
| runs-on: ${{ matrix.os }} | |
| continue-on-error: ${{ matrix.platform == 'ps2' || matrix.gl3_gfxlib == 'sdl2' || matrix.audio == 'miles' }} | |
| steps: | |
| - uses: actions/checkout@v2 | |
| with: | |
| submodules: true | |
| - name: "Checkout Miles SDK Import Library project" | |
| uses: actions/checkout@v2 | |
| if: ${{ matrix.audio == 'miles' }} | |
| with: | |
| repository: 'withmorten/re3mss' | |
| path: 're3mss' | |
| - uses: actions/setup-python@v2 | |
| with: | |
| python-version: '3.x' | |
| - name: "Use XCode 11 as default (conan-center-index does not provide XCode 12 binaries at the moment)" | |
| if: startsWith(matrix.os, 'macos') | |
| run: | | |
| sudo xcode-select --switch /Applications/Xcode_11.7.app | |
| - name: "Setup conan" | |
| run: | | |
| python -m pip install conan | |
| conan config init | |
| conan config set log.print_run_commands=True | |
| conan remote add bincrafters https://api.bintray.com/conan/bincrafters/public-conan | |
| conan remote add madebr_ps2dev https://api.bintray.com/conan/madebr/ps2dev | |
| - name: "Add os=playstation2 + gcc.version=3.2 to .conan/settings.yml" | |
| shell: python | |
| run: | | |
| import os, yaml | |
| settings_path = os.path.expanduser("~/.conan/settings.yml") | |
| yml = yaml.safe_load(open(settings_path)) | |
| yml["os"]["playstation2"] = None | |
| yml["compiler"]["gcc"]["version"].append("3.2") | |
| yml["compiler"]["gcc"]["version"].sort() | |
| yaml.safe_dump(yml, open(settings_path, "w")) | |
| - name: "Create host profile" | |
| shell: bash | |
| run: | | |
| if test "${{ matrix.platform }}" = "ps2"; then | |
| cp vendor/librw/conan/playstation2 host_profile | |
| else | |
| cp ~/.conan/profiles/default host_profile | |
| fi | |
| - name: "Export Playstation 2 CMake toolchain conan recipe" | |
| run: | | |
| conan export vendor/librw/cmake/ps2toolchain ps2dev-cmaketoolchain/master@ | |
| - name: "Export librw conan recipe" | |
| run: | | |
| conan export vendor/librw librw/master@ | |
| - name: "Export Miles SDK conan recipe" | |
| if: ${{ matrix.audio == 'miles' }} | |
| run: | | |
| conan export re3mss miles-sdk/master@ | |
| - name: "Download/build dependencies (conan install)" | |
| run: | | |
| conan install ${{ github.workspace }} re3/master@ -if build -o re3:audio=${{ matrix.audio }} -o librw:platform=${{ matrix.platform }} -o librw:gl3_gfxlib=${{ matrix.gl3_gfxlib || 'glfw' }} --build missing -pr:h ./host_profile -pr:b default -s re3:build_type=RelWithDebInfo -s librw:build_type=RelWithDebInfo | |
| env: | |
| CONAN_SYSREQUIRES_MODE: enabled | |
| - name: "Build re3 (conan build)" | |
| run: | | |
| conan build ${{ github.workspace }} -if build -bf build -pf package | |
| - name: "Package re3 (conan package)" | |
| run: | | |
| conan package ${{ github.workspace }} -if build -bf build -pf package | |
| - name: "Create binary package (cpack)" | |
| working-directory: ./build | |
| run: | | |
| cpack -C RelWithDebInfo | |
| - name: "Archive binary package (github artifacts)" | |
| uses: actions/upload-artifact@v2 | |
| with: | |
| name: "${{ matrix.os }}-${{ matrix.platform }}" | |
| path: build/*.zip | |
| if-no-files-found: error |