Update build-cmake-conan.yml #11
This file contains 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: reLCS 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-18.04' | |
# platform: 'gl3' | |
# gl3_gfxlib: 'glfw' | |
# audio: 'openal' | |
# - os: 'ubuntu-18.04' | |
# 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@v4 | |
with: | |
submodules: true | |
- name: "Checkout Miles SDK Import Library project" | |
uses: actions/checkout@v4 | |
if: ${{ matrix.audio == 'miles' }} | |
with: | |
repository: 'withmorten/re3mss' | |
path: 're3mss' | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: '3.x' | |
- name: "Use XCode 15 as default (conan-center-index does not provide XCode 16 binaries at the moment)" | |
if: startsWith(matrix.os, 'macos') | |
run: | | |
sudo xcode-select --switch /Applications/Xcode_15.4.app | |
- name: "Setup conan" | |
run: | | |
python -m pip install conan==1.65.0 | |
conan config init | |
conan config set log.print_run_commands=True | |
conan config set general.revisions_enabled=1 | |
# conan remote add bincrafters https://bincrafters.jfrog.io/artifactory/api/conan/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/ps2/cmaketoolchain 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 }} reLCS/master@ -if build -o reLCS: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 reLCS:build_type=RelWithDebInfo -s librw:build_type=RelWithDebInfo | |
env: | |
CONAN_SYSREQUIRES_MODE: enabled | |
- name: "Build reLCS (conan build)" | |
run: | | |
conan build ${{ github.workspace }} -if build -bf build -pf package | |
- name: "Package reLCS (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@v4 | |
with: | |
name: "${{ matrix.os }}-${{ matrix.platform }}" | |
path: build/*.tar.xz | |
if-no-files-found: error |