Merge pull request #608 from hg/master

CI builds for Linux/FreeBSD/macOS/libretro cores, + binary downloads
This commit is contained in:
OV2 2020-01-21 21:12:24 +01:00 committed by GitHub
commit 8e5a1af9db
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 268 additions and 2 deletions

206
.cirrus.yml Normal file
View File

@ -0,0 +1,206 @@
# vim: sts=2 sw=2 ai
################################################################################
# snes9x
################################################################################
snes9x_linux-gtk-amd64_task:
container:
image: gcc:latest
setup_script:
- git submodule update --init shaders/SPIRV-Cross
- apt-get update && DEBIAN_FRONTEND=noninteractive apt-get -y install meson gettext libsdl2-dev libgtk-3-dev libminizip-dev portaudio19-dev glslang-dev
compile_script:
- meson build gtk --buildtype=release --strip
- ninja -j2 -C build
package_script:
- mkdir snes9x
- cp -ar build/snes9x-gtk README.md LICENSE docs data gtk/AUTHORS snes9x/
- tar -caf "snes9x-gtk-${CIRRUS_CHANGE_IN_REPO}.txz" snes9x
build_artifacts:
path: "snes9x-gtk-${CIRRUS_CHANGE_IN_REPO}.txz"
snes9x_linux-x11-amd64_task:
container:
image: gcc:latest
setup_script:
- apt-get update && DEBIAN_FRONTEND=noninteractive apt-get -y install libxv-dev libxinerama-dev
compile_script:
- cd unix
- touch configure
- ./configure
- make -j2
package_script:
- mkdir snes9x
- cp -ar unix/snes9x unix/docs unix/snes9x.conf.default README.md LICENSE data snes9x/
- tar -caf "snes9x-x11-${CIRRUS_CHANGE_IN_REPO}.txz" snes9x
build_artifacts:
path: "snes9x-x11-${CIRRUS_CHANGE_IN_REPO}.txz"
snes9x_freebsd-x11-amd64_task:
freebsd_instance:
image: freebsd-12-1-release-amd64
setup_script:
- pkg install -y gmake pkgconf minizip libX11 libXext
compile_script:
- cd unix
- touch configure
- ./configure
- gmake -j2
package_script:
- mkdir snes9x
- cp -a unix/snes9x unix/docs unix/snes9x.conf.default README.md LICENSE data snes9x/
- tar -caf "snes9x-x11-${CIRRUS_CHANGE_IN_REPO}.txz" snes9x
build_artifacts:
path: "snes9x-x11-${CIRRUS_CHANGE_IN_REPO}.txz"
snes9x_macOS-amd64_task:
osx_instance:
image: mojave-xcode
compile_script:
- xcodebuild -project macosx/snes9x.xcodeproj -target Snes9x -configuration Release build CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO
package_script:
- mkdir snes9x
- cp -R macosx/build/Release/Snes9x.app macosx/docs README.md LICENSE snes9x/
- zip -r "snes9x-${CIRRUS_CHANGE_IN_REPO}.zip" snes9x
build_artifacts:
path: "snes9x-${CIRRUS_CHANGE_IN_REPO}.zip"
################################################################################
# libretro
################################################################################
libretro_linux-amd64_task:
container:
image: gcc:latest
compile_script:
- make -j2 -C libretro
build_artifacts:
path: "libretro/snes9x_libretro.so"
libretro_linux-i386_task:
container:
image: dockcross/linux-x86
compile_script:
- make -j2 -C libretro
build_artifacts:
path: "libretro/snes9x_libretro.so"
libretro_linux-armhf_task:
container:
image: dockcross/linux-armv7
compile_script:
- make -j2 -C libretro
build_artifacts:
path: "libretro/snes9x_libretro.so"
libretro_linux-armv7-neon-hf_task:
container:
image: dockcross/linux-armv7
compile_script:
- make -j2 -C libretro platform=unix-armv7-neon-hardfloat
build_artifacts:
path: "libretro/snes9x_libretro.so"
libretro_linux-arm64_task:
container:
image: dockcross/linux-arm64
compile_script:
- make -j2 -C libretro
build_artifacts:
path: "libretro/snes9x_libretro.so"
libretro_android-arm_task:
container:
image: dockcross/android-arm
compile_script:
- make -j2 -C libretro platform=unix
build_artifacts:
path: "libretro/snes9x_libretro.so"
libretro_android-arm64_task:
container:
image: dockcross/android-arm64
compile_script:
- make -j2 -C libretro platform=unix-arm64
build_artifacts:
path: "libretro/snes9x_libretro.so"
libretro_emscripten_task:
container:
image: gcc:latest
compile_script:
- make -j2 -C libretro platform=emscripten
build_artifacts:
path: "libretro/snes9x_libretro_emscripten.bc"
libretro_macOS-amd64_task:
osx_instance:
image: mojave-xcode
compile_script:
- make -j2 -C libretro
build_artifacts:
path: "libretro/snes9x_libretro.dylib"
libretro_nintendo-wii_task:
container:
image: devkitpro/devkitppc
compile_script:
- make -j2 -C libretro platform=wii
build_artifacts:
path: "libretro/snes9x_libretro_wii.a"
libretro_nintendo-switch-libnx_task:
container:
image: devkitpro/devkita64
compile_script:
- make -j2 -C libretro platform=libnx
build_artifacts:
path: "libretro/snes9x_libretro_libnx.a"
libretro_nintendo-ngc_task:
container:
image: devkitpro/devkitppc
compile_script:
- make -j2 -C libretro platform=ngc
build_artifacts:
path: "libretro/snes9x_libretro_ngc.a"
libretro_playstation-psp_task:
container:
image: bkcsoft/psptoolchain
compile_script:
- make -j2 -C libretro platform=unix
build_artifacts:
path: "libretro/snes9x_libretro.so"

4
.gitignore vendored
View File

@ -495,3 +495,7 @@ healthchecksdb
MigrationBackup/
# End of https://www.gitignore.io/api/c,c++,xcode,visualstudio
# vim
*.swp

View File

@ -4,3 +4,58 @@
This is the official source code repository for the Snes9x project.
Please check the [Wiki](https://github.com/snes9xgit/snes9x/wiki) for additional information.
## Nightly builds
Download nightly builds from continuous integration:
### snes9x
| OS | status |
|---------------|--------------------------------------------------|
| Windows | [![Status][s9x-win-all]][appveyor] |
| Linux (GTK) | [![Status][snes9x_linux-gtk-amd64]][cirrus-ci] |
| Linux (X11) | [![Status][snes9x_linux-x11-amd64]][cirrus-ci] |
| FreeBSD (X11) | [![Status][snes9x_freebsd-x11-amd64]][cirrus-ci] |
| macOS | [![Status][snes9x_macOS-amd64]][cirrus-ci] |
[appveyor]: https://ci.appveyor.com/project/snes9x/snes9x
[cirrus-ci]: http://cirrus-ci.com/github/snes9xgit/snes9x
[s9x-win-all]: https://ci.appveyor.com/api/projects/status/github/snes9xgit/snes9x?branch=master&svg=true
[snes9x_linux-gtk-amd64]: https://api.cirrus-ci.com/github/snes9xgit/snes9x.svg?task=snes9x_linux-gtk-amd64
[snes9x_linux-x11-amd64]: https://api.cirrus-ci.com/github/snes9xgit/snes9x.svg?task=snes9x_linux-x11-amd64
[snes9x_freebsd-x11-amd64]: https://api.cirrus-ci.com/github/snes9xgit/snes9x.svg?task=snes9x_freebsd-x11-amd64
[snes9x_macOS-amd64]: https://api.cirrus-ci.com/github/snes9xgit/snes9x.svg?task=snes9x_macOS-amd64
### libretro core
| OS | status |
|---------------------|---------------------------------------------------------|
| Linux/amd64 | [![Status][libretro_linux-amd64]][cirrus-ci] |
| Linux/i386 | [![Status][libretro_linux-i386]][cirrus-ci] |
| Linux/armhf | [![Status][libretro_linux-armhf]][cirrus-ci] |
| Linux/armv7-neon-hf | [![Status][libretro_linux-armv7-neon-hf]][cirrus-ci] |
| Linux/arm64 | [![Status][libretro_linux-arm64]][cirrus-ci] |
| Android/arm | [![Status][libretro_android-arm]][cirrus-ci] |
| Android/arm64 | [![Status][libretro_android-arm64]][cirrus-ci] |
| Emscripten | [![Status][libretro_emscripten]][cirrus-ci] |
| macOS/amd64 | [![Status][libretro_macOS-amd64]][cirrus-ci] |
| Nintendo Wii | [![Status][libretro_nintendo-wii]][cirrus-ci] |
| Nintendo Switch | [![Status][libretro_nintendo-switch-libnx]][cirrus-ci] |
| Nintendo GameCube | [![Status][libretro_nintendo-ngc]][cirrus-ci] |
| PSP | [![Status][libretro_playstation-psp]][cirrus-ci] |
[libretro_linux-amd64]: https://api.cirrus-ci.com/github/snes9xgit/snes9x.svg?task=libretro_linux-amd64
[libretro_linux-i386]: https://api.cirrus-ci.com/github/snes9xgit/snes9x.svg?task=libretro_linux-i386
[libretro_linux-armhf]: https://api.cirrus-ci.com/github/snes9xgit/snes9x.svg?task=libretro_linux-armhf
[libretro_linux-armv7-neon-hf]: https://api.cirrus-ci.com/github/snes9xgit/snes9x.svg?task=libretro_linux-armv7-neon-hf
[libretro_linux-arm64]: https://api.cirrus-ci.com/github/snes9xgit/snes9x.svg?task=libretro_linux-arm64
[libretro_android-arm]: https://api.cirrus-ci.com/github/snes9xgit/snes9x.svg?task=libretro_android-arm
[libretro_android-arm64]: https://api.cirrus-ci.com/github/snes9xgit/snes9x.svg?task=libretro_android-arm64
[libretro_emscripten]: https://api.cirrus-ci.com/github/snes9xgit/snes9x.svg?task=libretro_emscripten
[libretro_macOS-amd64]: https://api.cirrus-ci.com/github/snes9xgit/snes9x.svg?task=libretro_macOS-amd64
[libretro_nintendo-wii]: https://api.cirrus-ci.com/github/snes9xgit/snes9x.svg?task=libretro_nintendo-wii
[libretro_nintendo-switch-libnx]: https://api.cirrus-ci.com/github/snes9xgit/snes9x.svg?task=libretro_nintendo-switch-libnx
[libretro_nintendo-ngc]: https://api.cirrus-ci.com/github/snes9xgit/snes9x.svg?task=libretro_nintendo-ngc
[libretro_playstation-psp]: https://api.cirrus-ci.com/github/snes9xgit/snes9x.svg?task=libretro_playstation-psp

View File

@ -93,13 +93,14 @@ endif
if slang and opengl
glslang_dep = c_compiler.find_library('glslang', required: false)
hlsl_dep = c_compiler.find_library('HLSL', required: false)
spirv_dep = c_compiler.find_library('SPIRV', required: false)
osdependent_dep = c_compiler.find_library('OSDependent', required: false)
ogl_compiler_dep = c_compiler.find_library('OGLCompiler', required: false)
spv_remapper_dep = c_compiler.find_library('SPVRemapper', required: false)
if glslang_dep.found() and spirv_dep.found() and osdependent_dep.found() and ogl_compiler_dep.found() and spv_remapper_dep.found()
deps += [glslang_dep, spirv_dep, osdependent_dep, ogl_compiler_dep, spv_remapper_dep]
if glslang_dep.found() and hlsl_dep.found() and spirv_dep.found() and osdependent_dep.found() and ogl_compiler_dep.found() and spv_remapper_dep.found()
deps += [glslang_dep, hlsl_dep, spirv_dep, osdependent_dep, ogl_compiler_dep, spv_remapper_dep]
args += ['-DUSE_SLANG',
'-DSPIRV_CROSS_EXCEPTIONS_TO_ASSERTIONS',