Floating-point fix-ups #662
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: CI | |
on: | |
push: | |
branches: [ master ] | |
pull_request: | |
branches: [ master ] | |
env: | |
# Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.) | |
BUILD_TYPE: Release | |
jobs: | |
build: | |
# The CMake configure and build commands are platform agnostic and should work equally well on Windows or Mac. | |
# You can convert this to a matrix build if you need cross-platform coverage. | |
# See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: install_dependencies | |
run: | | |
sudo apt-get update -y -qq | |
sudo apt-get install libsdl2-dev | |
- name: init_submodules | |
run: git submodule update --init --recursive | |
- name: Configure CMake | |
# Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make. | |
# See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type | |
run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DDPPC_68K_DEBUGGER=ON | |
- name: Build | |
# Build your program with the given configuration | |
run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} | |
- name: Upload artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: DingusPPC-LINUX | |
path: ${{github.workspace}}/build/bin | |
- name: Test | |
working-directory: ${{github.workspace}}/build | |
# Execute tests defined by the CMake configuration. | |
# See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail | |
run: ctest -C ${{env.BUILD_TYPE}} | |
build-windows: | |
runs-on: windows-latest | |
strategy: | |
matrix: | |
cache-name: [msys64-cache] | |
env: | |
MSYSTEM: MINGW64 | |
FF_SCRIPT_SECTIONS: '0' | |
CONFIGURE_ARGS: '--target-list=x86_64-softmmu --without-default-devices -Ddebug=false -Doptimization=0' | |
TEST_ARGS: '--no-suite qtest' | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v2 | |
- name: Set up MSYS2 | |
run: | | |
Write-Output "Acquiring msys2.exe installer at $(Get-Date -Format u)" | |
If ( !(Test-Path -Path msys64\var\cache ) ) { | |
mkdir msys64\var\cache | |
} | |
Invoke-WebRequest "https://repo.msys2.org/distrib/msys2-x86_64-latest.sfx.exe.sig" -outfile "msys2.exe.sig" | |
if ( Test-Path -Path msys64\var\cache\msys2.exe.sig ) { | |
Write-Output "Cached installer sig" ; | |
if ( ((Get-FileHash msys2.exe.sig).Hash -ne (Get-FileHash msys64\var\cache\msys2.exe.sig).Hash) ) { | |
Write-Output "Mis-matched installer sig, new installer download required" ; | |
Remove-Item -Path msys64\var\cache\msys2.exe.sig ; | |
if ( Test-Path -Path msys64\var\cache\msys2.exe ) { | |
Remove-Item -Path msys64\var\cache\msys2.exe | |
} | |
} else { | |
Write-Output "Matched installer sig, cached installer still valid" | |
} | |
} else { | |
Write-Output "No cached installer sig, new installer download required" ; | |
if ( Test-Path -Path msys64\var\cache\msys2.exe ) { | |
Remove-Item -Path msys64\var\cache\msys2.exe | |
} | |
} | |
if ( !(Test-Path -Path msys64\var\cache\msys2.exe ) ) { | |
Write-Output "Fetching latest installer" ; | |
Invoke-WebRequest "https://repo.msys2.org/distrib/msys2-x86_64-latest.sfx.exe" -outfile "msys64\var\cache\msys2.exe" ; | |
Copy-Item -Path msys2.exe.sig -Destination msys64\var\cache\msys2.exe.sig | |
} else { | |
Write-Output "Using cached installer" | |
} | |
Write-Output "Invoking msys2.exe installer at $(Get-Date -Format u)" | |
msys64\var\cache\msys2.exe -y | |
((Get-Content -path .\msys64\etc\post-install\07-pacman-key.post -Raw) -replace '--refresh-keys', '--version') | Set-Content -Path .\msys64\etc\post-install\07-pacman-key.post | |
.\msys64\usr\bin\bash -lc "sed -i 's/^CheckSpace/#CheckSpace/g' /etc/pacman.conf" | |
.\msys64\usr\bin\bash -lc 'pacman --noconfirm -Syuu' # Core update | |
.\msys64\usr\bin\bash -lc 'pacman --noconfirm -Syuu' # Normal update | |
taskkill /F /FI "MODULES eq msys-2.0.dll" | |
- name: Install dependencies | |
run: | | |
Write-Output "Installing mingw packages at $(Get-Date -Format u)" | |
.\msys64\usr\bin\bash -lc 'pacman -Sy --noconfirm --needed \ | |
bison \ | |
diffutils \ | |
flex \ | |
tar \ | |
doxygen \ | |
cmake \ | |
wget \ | |
git \ | |
grep \ | |
make \ | |
rsync \ | |
ninja \ | |
glib2-devel \ | |
patch \ | |
sed \ | |
mingw-w64-x86_64-cmake \ | |
mingw-w64-x86_64-binutils \ | |
mingw-w64-x86_64-doxygen \ | |
mingw-w64-x86_64-capstone \ | |
mingw-w64-x86_64-ccache \ | |
mingw-w64-x86_64-curl \ | |
mingw-w64-x86_64-cyrus-sasl \ | |
mingw-w64-x86_64-dtc \ | |
mingw-w64-x86_64-gcc \ | |
mingw-w64-x86_64-glib2 \ | |
mingw-w64-x86_64-gnutls \ | |
mingw-w64-x86_64-gtk3 \ | |
mingw-w64-x86_64-libgcrypt \ | |
mingw-w64-x86_64-libjpeg-turbo \ | |
mingw-w64-x86_64-libnfs \ | |
mingw-w64-x86_64-libpng \ | |
mingw-w64-x86_64-libssh \ | |
mingw-w64-x86_64-libtasn1 \ | |
mingw-w64-x86_64-libusb \ | |
mingw-w64-x86_64-lzo2 \ | |
mingw-w64-x86_64-libslirp \ | |
mingw-w64-x86_64-nettle \ | |
mingw-w64-x86_64-clang \ | |
mingw-w64-x86_64-ninja \ | |
mingw-w64-x86_64-pixman \ | |
mingw-w64-x86_64-pkgconf \ | |
mingw-w64-x86_64-python \ | |
mingw-w64-x86_64-SDL2 \ | |
mingw-w64-x86_64-SDL2_image \ | |
mingw-w64-x86_64-snappy \ | |
mingw-w64-x86_64-spice \ | |
mingw-w64-x86_64-usbredir \ | |
mingw-w64-x86_64-zstd \ | |
mingw-w64-x86_64-make' | |
- name: init_submodules | |
run: git submodule update --init --recursive | |
- name: Build | |
run: | | |
Write-Output "Running build at $(Get-Date -Format u)" | |
$env:CHERE_INVOKING = 'yes' # Preserve the current working directory | |
$env:MSYS = 'winsymlinks:native' # Enable native Windows symlink | |
$env:CCACHE_BASEDIR = "$env:CI_PROJECT_DIR" | |
$env:CCACHE_DIR = "$env:CCACHE_BASEDIR/ccache" | |
$env:CCACHE_MAXSIZE = "500M" | |
$env:CCACHE_DEPEND = 1 # cache misses are too expensive with preprocessor mode | |
$env:CC = "ccache gcc" | |
mkdir build | |
cd build | |
D:\a\dingusppc\dingusppc\msys64\usr\bin\bash -lc "ccache --zero-stats" | |
D:\a\dingusppc\dingusppc\msys64\usr\bin\bash -lc "cmake -DCMAKE_BUILD_TYPE=Release -DPPC_BUILD_PPC_TESTS=True .. && ninja" | |
D:\a\dingusppc\dingusppc\msys64\usr\bin\bash -lc "ccache --show-stats" | |
Write-Output "Finished build at $(Get-Date -Format u)" | |
vsbuild-CLANG: | |
runs-on: windows-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Setup msbuild | |
if: inputs.configuration != 'CMake' | |
uses: microsoft/setup-msbuild@v1 | |
- name: Setup VCPKG | |
run: | | |
vcpkg integrate install | |
vcpkg install pthread:x64-windows | |
vcpkg install pthreads:x64-windows | |
vcpkg install pthread-stubs:x64-windows | |
vcpkg install pthreadpool:x64-windows | |
vcpkg install | |
- name: init_submodules | |
run: git submodule update --init --recursive | |
- name: Build | |
shell: cmd | |
run: | | |
mkdir build | |
cd build | |
call "%ProgramFiles%\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat" | |
cmake -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=clang-cl -DCMAKE_CXX_COMPILER=clang-cl -DPPC_BUILD_PPC_TESTS=True -DCMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x64-windows .. | |
nmake | |
- name: Upload artifact | |
if: always() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: DingusPPC-CLANG | |
path: ${{github.workspace}}/build/bin | |
vsbuild-MSVC: | |
runs-on: windows-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Setup msbuild | |
if: inputs.configuration != 'CMake' | |
uses: microsoft/setup-msbuild@v1 | |
- name: Setup VCPKG | |
run: | | |
vcpkg integrate install | |
vcpkg install pthread:x64-windows | |
vcpkg install pthreads:x64-windows | |
vcpkg install pthread-stubs:x64-windows | |
vcpkg install pthreadpool:x64-windows | |
vcpkg install | |
- name: init_submodules | |
run: git submodule update --init --recursive | |
- name: Build | |
shell: cmd | |
run: | | |
mkdir build | |
cd build | |
call "%ProgramFiles%\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat" | |
cmake -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=Release -DPPC_BUILD_PPC_TESTS=True -DCMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x64-windows .. | |
nmake | |
- name: Upload artifact | |
if: always() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: DingusPPC-MSVC | |
path: ${{github.workspace}}/build/bin | |
vsbuild-MSVC-MSBUILD: | |
runs-on: windows-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Setup msbuild | |
if: inputs.configuration != 'CMake' | |
uses: microsoft/setup-msbuild@v1 | |
- name: Setup VCPKG | |
run: | | |
vcpkg integrate install | |
vcpkg install pthread:x64-windows | |
vcpkg install pthreads:x64-windows | |
vcpkg install pthread-stubs:x64-windows | |
vcpkg install pthreadpool:x64-windows | |
vcpkg install | |
- name: init_submodules | |
run: git submodule update --init --recursive | |
- name: Build | |
shell: cmd | |
run: | | |
mkdir build | |
cd build | |
call "%ProgramFiles%\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat" | |
cmake -G "Visual Studio 17 2022" -DCMAKE_BUILD_TYPE=Release -DPPC_BUILD_PPC_TESTS=True -DCMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x64-windows .. | |
msbuild dingusppc.sln | |
- name: Upload artifact | |
if: always() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: DingusPPC-MSBUILD | |
path: ${{github.workspace}}/build/bin |