mirror of
https://github.com/cemu-project/Cemu.git
synced 2024-12-02 05:54:18 +01:00
3bceb39966
Removes the -DPUBLIC_RELEASE flag. Cemu's debug asserts are now only enabled if the build configuration is Debug. Similarly, on Windows the console is only shown for Debug builds.
232 lines
8.1 KiB
YAML
232 lines
8.1 KiB
YAML
name: Build Cemu
|
|
|
|
on:
|
|
workflow_call:
|
|
inputs:
|
|
deploymode:
|
|
required: false
|
|
type: string
|
|
experimentalversion:
|
|
required: false
|
|
type: string
|
|
|
|
env:
|
|
VCPKG_ROOT: "${{github.workspace}}/dependencies/vcpkg"
|
|
VCPKG_BINARY_SOURCES: 'clear;nuget,GitHub,readwrite'
|
|
|
|
jobs:
|
|
build-ubuntu:
|
|
runs-on: ubuntu-20.04
|
|
steps:
|
|
- name: "Checkout repo"
|
|
uses: actions/checkout@v3
|
|
with:
|
|
submodules: "recursive"
|
|
|
|
- name: Setup release mode parameters (for deploy)
|
|
if: ${{ inputs.deploymode == 'release' }}
|
|
run: |
|
|
echo "BUILD_MODE=release" >> $GITHUB_ENV
|
|
echo "BUILD_FLAGS=" >> $GITHUB_ENV
|
|
echo "Build mode is release"
|
|
- name: Setup debug mode parameters (for continous build)
|
|
if: ${{ inputs.deploymode != 'release' }}
|
|
run: |
|
|
echo "BUILD_MODE=debug" >> $GITHUB_ENV
|
|
echo "BUILD_FLAGS=" >> $GITHUB_ENV
|
|
echo "Build mode is debug"
|
|
|
|
- name: Setup version for experimental
|
|
if: ${{ inputs.experimentalversion != '' }}
|
|
run: |
|
|
echo "[INFO] Experimental version ${{ inputs.experimentalversion }}"
|
|
echo "BUILD_FLAGS=${{ env.BUILD_FLAGS }} -DEXPERIMENTAL_VERSION=${{ inputs.experimentalversion }}" >> $GITHUB_ENV
|
|
|
|
- name: "Install system dependencies"
|
|
run: |
|
|
sudo apt update -qq
|
|
sudo apt install -y ninja-build cmake libgtk-3-dev libsecret-1-dev libgcrypt20-dev libsystemd-dev freeglut3-dev clang-12 nasm
|
|
- name: "Bootstrap vcpkg"
|
|
run: |
|
|
bash ./dependencies/vcpkg/bootstrap-vcpkg.sh
|
|
|
|
- name: 'Setup NuGet Credentials for vcpkg'
|
|
shell: 'bash'
|
|
run: |
|
|
mono `./dependencies/vcpkg/vcpkg fetch nuget | tail -n 1` \
|
|
sources add \
|
|
-source "https://nuget.pkg.github.com/${{ github.repository_owner }}/index.json" \
|
|
-storepasswordincleartext \
|
|
-name "GitHub" \
|
|
-username "${{ github.repository_owner }}" \
|
|
-password "${{ secrets.GITHUB_TOKEN }}"
|
|
mono `./dependencies/vcpkg/vcpkg fetch nuget | tail -n 1` \
|
|
setapikey "${{ secrets.GITHUB_TOKEN }}" \
|
|
-source "https://nuget.pkg.github.com/${{ github.repository_owner }}/index.json"
|
|
|
|
- name: "cmake"
|
|
run: |
|
|
mkdir -p build
|
|
cd build
|
|
cmake .. ${{ env.BUILD_FLAGS }} -DCMAKE_BUILD_TYPE=${{ env.BUILD_MODE }} -DCMAKE_C_COMPILER=/usr/bin/clang-12 -DCMAKE_CXX_COMPILER=/usr/bin/clang++-12 -G Ninja -DCMAKE_MAKE_PROGRAM=/usr/bin/ninja
|
|
|
|
- name: "Build Cemu"
|
|
run: |
|
|
cd build
|
|
ninja
|
|
|
|
- name: Prepare artifact
|
|
if: ${{ inputs.deploymode == 'release' }}
|
|
run: mv bin/Cemu_release bin/Cemu
|
|
|
|
- name: Upload artifact
|
|
uses: actions/upload-artifact@v3
|
|
if: ${{ inputs.deploymode == 'release' }}
|
|
with:
|
|
name: cemu-bin-linux-x64
|
|
path: ./bin/Cemu
|
|
|
|
|
|
build-windows:
|
|
runs-on: windows-2022
|
|
steps:
|
|
- name: "Checkout repo"
|
|
uses: actions/checkout@v3
|
|
with:
|
|
submodules: "recursive"
|
|
|
|
- name: Setup release mode parameters (for deploy)
|
|
if: ${{ inputs.deploymode == 'release' }}
|
|
run: |
|
|
echo "BUILD_MODE=release" | Out-File -FilePath $Env:GITHUB_ENV -Encoding utf8 -Append
|
|
echo "BUILD_FLAGS=" | Out-File -FilePath $Env:GITHUB_ENV -Encoding utf8 -Append
|
|
echo "Build mode is release"
|
|
|
|
- name: Setup debug mode parameters (for continous build)
|
|
if: ${{ inputs.deploymode != 'release' }}
|
|
run: |
|
|
echo "BUILD_MODE=debug" | Out-File -FilePath $Env:GITHUB_ENV -Encoding utf8 -Append
|
|
echo "BUILD_FLAGS=" | Out-File -FilePath $Env:GITHUB_ENV -Encoding utf8 -Append
|
|
echo "Build mode is debug"
|
|
- name: Setup version for experimental
|
|
if: ${{ inputs.experimentalversion != '' }}
|
|
run: |
|
|
echo "[INFO] Experimental version ${{ inputs.experimentalversion }}"
|
|
echo "BUILD_FLAGS=${{ env.BUILD_FLAGS }} -DEXPERIMENTAL_VERSION=${{ inputs.experimentalversion }}" | Out-File -FilePath $Env:GITHUB_ENV -Encoding utf8 -Append
|
|
|
|
- name: Configure MSVC
|
|
uses: ilammy/msvc-dev-cmd@v1
|
|
with:
|
|
arch: amd64
|
|
toolset: 14.33.31629
|
|
spectre: false
|
|
|
|
- name: "Bootstrap vcpkg"
|
|
run: |
|
|
./dependencies/vcpkg/bootstrap-vcpkg.bat
|
|
|
|
- name: 'Setup NuGet Credentials for vcpkg'
|
|
shell: 'bash'
|
|
run: |
|
|
`./dependencies/vcpkg/vcpkg.exe fetch nuget | tail -n 1` \
|
|
sources add \
|
|
-source "https://nuget.pkg.github.com/${{ github.repository_owner }}/index.json" \
|
|
-storepasswordincleartext \
|
|
-name "GitHub" \
|
|
-username "${{ github.repository_owner }}" \
|
|
-password "${{ secrets.GITHUB_TOKEN }}"
|
|
`./dependencies/vcpkg/vcpkg.exe fetch nuget | tail -n 1` \
|
|
setapikey "${{ secrets.GITHUB_TOKEN }}" \
|
|
-source "https://nuget.pkg.github.com/${{ github.repository_owner }}/index.json"
|
|
|
|
- name: "cmake"
|
|
run: |
|
|
mkdir -p build
|
|
cd build
|
|
echo "[INFO] BUILD_FLAGS: ${{ env.BUILD_FLAGS }}"
|
|
echo "[INFO] BUILD_MODE: ${{ env.BUILD_MODE }}"
|
|
cmake .. ${{ env.BUILD_FLAGS }} -DCMAKE_BUILD_TYPE=${{ env.BUILD_MODE }} -DVCPKG_INSTALL_OPTIONS="--clean-after-build"
|
|
|
|
- name: "Build Cemu"
|
|
run: |
|
|
cd build
|
|
cmake --build . --config ${{ env.BUILD_MODE }} -j 2
|
|
|
|
- name: Prepare artifact
|
|
if: ${{ inputs.deploymode == 'release' }}
|
|
run: Rename-Item bin/Cemu_release.exe Cemu.exe
|
|
|
|
- name: Upload artifact
|
|
uses: actions/upload-artifact@v3
|
|
if: ${{ inputs.deploymode == 'release' }}
|
|
with:
|
|
name: cemu-bin-windows-x64
|
|
path: ./bin/Cemu.exe
|
|
build-macos:
|
|
runs-on: macos-12
|
|
steps:
|
|
- name: "Checkout repo"
|
|
uses: actions/checkout@v3
|
|
with:
|
|
submodules: "recursive"
|
|
- name: Setup release mode parameters (for deploy)
|
|
if: ${{ inputs.deploymode == 'release' }}
|
|
run: |
|
|
echo "BUILD_MODE=release" >> $GITHUB_ENV
|
|
echo "BUILD_FLAGS=" >> $GITHUB_ENV
|
|
echo "Build mode is release"
|
|
- name: Setup debug mode parameters (for continous build)
|
|
if: ${{ inputs.deploymode != 'release' }}
|
|
run: |
|
|
echo "BUILD_MODE=debug" >> $GITHUB_ENV
|
|
echo "BUILD_FLAGS=" >> $GITHUB_ENV
|
|
echo "Build mode is debug"
|
|
|
|
- name: Setup version for experimental
|
|
if: ${{ inputs.experimentalversion != '' }}
|
|
run: |
|
|
echo "[INFO] Experimental version ${{ inputs.experimentalversion }}"
|
|
echo "BUILD_FLAGS=${{ env.BUILD_FLAGS }} -DEXPERIMENTAL_VERSION=${{ inputs.experimentalversion }}" >> $GITHUB_ENV
|
|
|
|
- name: "Install system dependencies"
|
|
run: |
|
|
brew install llvm@14 ninja nasm molten-vk
|
|
- name: "Bootstrap vcpkg"
|
|
run: |
|
|
bash ./dependencies/vcpkg/bootstrap-vcpkg.sh
|
|
|
|
- name: 'Setup NuGet Credentials for vcpkg'
|
|
shell: 'bash'
|
|
run: |
|
|
mono `./dependencies/vcpkg/vcpkg fetch nuget | tail -n 1` \
|
|
sources add \
|
|
-source "https://nuget.pkg.github.com/${{ github.repository_owner }}/index.json" \
|
|
-storepasswordincleartext \
|
|
-name "GitHub" \
|
|
-username "${{ github.repository_owner }}" \
|
|
-password "${{ secrets.GITHUB_TOKEN }}"
|
|
mono `./dependencies/vcpkg/vcpkg fetch nuget | tail -n 1` \
|
|
setapikey "${{ secrets.GITHUB_TOKEN }}" \
|
|
-source "https://nuget.pkg.github.com/${{ github.repository_owner }}/index.json"
|
|
|
|
- name: "cmake"
|
|
run: |
|
|
mkdir build
|
|
cd build
|
|
cmake .. ${{ env.BUILD_FLAGS }} -DCMAKE_BUILD_TYPE=${{ env.BUILD_MODE }} -DCMAKE_C_COMPILER=/usr/local/opt/llvm@14/bin/clang -DCMAKE_CXX_COMPILER=/usr/local/opt/llvm@14/bin/clang++ -G Ninja
|
|
|
|
- name: "Build Cemu"
|
|
run: |
|
|
cmake --build build
|
|
|
|
- name: Prepare artifact
|
|
if: ${{ inputs.deploymode == 'release' }}
|
|
run: chmod a+x bin/Cemu_release && mv bin/Cemu_release bin/Cemu
|
|
|
|
- name: Upload artifact
|
|
uses: actions/upload-artifact@v3
|
|
if: ${{ inputs.deploymode == 'release' }}
|
|
with:
|
|
name: cemu-bin-macos-x64
|
|
path: ./bin/Cemu
|