Integrate SDL2 into CI / Project

This commit is contained in:
Sergey Stepanov 2020-06-17 14:00:50 +03:00
parent 091b086bcb
commit 8b27445458
No known key found for this signature in database
GPG key ID: A56B4929BAA8556B
4 changed files with 17 additions and 24 deletions

View file

@ -40,12 +40,12 @@ jobs:
if: matrix.os == 'ubuntu-latest'
run: |
sudo apt-get update
sudo apt-get install -y make pkg-config libvpx-dev libopus-dev libopusfile-dev
sudo apt-get install -y make pkg-config libvpx-dev libopus-dev libopusfile-dev libsdl2-dev
- name: Get MacOS dev libraries and tools
if: matrix.os == 'macos-latest'
run: |
brew install libvpx pkg-config opus opusfile
brew install libvpx pkg-config opus opusfile sdl2
- name: Get Windows dev libraries and tools
if: matrix.os == 'windows-latest'
@ -72,6 +72,7 @@ jobs:
mingw-w64-x86_64-dlfcn
mingw-w64-x86_64-libvpx
mingw-w64-x86_64-opusfile
mingw-w64-x86_64-SDL2
msys2do make build

View file

@ -55,12 +55,12 @@ jobs:
if: matrix.os == 'ubuntu-latest'
run: |
sudo apt-get update
sudo apt-get install -y make pkg-config libvpx-dev libopus-dev libopusfile-dev
sudo apt-get install -y make pkg-config libvpx-dev libopus-dev libopusfile-dev libsdl2-dev
- name: Get MacOS dev libraries and tools
if: matrix.os == 'macos-latest'
run: |
brew install libvpx pkg-config opus opusfile
brew install libvpx pkg-config opus opusfile sdl2
- name: Get Windows dev libraries and tools
if: matrix.os == 'windows-latest'
@ -87,6 +87,7 @@ jobs:
mingw-w64-x86_64-dlfcn
mingw-w64-x86_64-libvpx
mingw-w64-x86_64-opusfile
mingw-w64-x86_64-SDL2
msys2do make release RELEASE_DIR=${{ env.release-dir }} DLIB_SEARCH_PATTERN=/mingw.*dll CORE_EXT=dll

2
Dockerfile vendored
View file

@ -13,6 +13,7 @@ RUN apt-get update && apt-get install -y \
libvpx-dev \
libopus-dev \
libopusfile-dev \
libsdl2-dev \
&& rm -rf /var/lib/apt/lists/*
# go deps layer
@ -32,6 +33,7 @@ RUN apt-get update && apt-get install -y \
libvpx5 \
libopus0 \
libopusfile0 \
libsdl2-2.0-0 \
&& rm -rf /var/lib/apt/lists/*
COPY --from=build ${BUILD_PATH}/bin/ ./

29
README.md vendored
View file

@ -36,31 +36,18 @@ Direct play an existing game: **[Pokemon Emerald](http://cloudretro.io/?id=652e4
Install Golang https://golang.org/doc/install . Because the project uses GoModule, so it requires Go1.11 version.
### (Window only) Extra setup
Setup MSYS2 (MinGW) environment if you are using Windows:
* Please refer to the Libretro [doc](https://docs.libretro.com/development/retroarch/compilation/windows/#environment-configuration) for initial environment setup
* Add Golang installation path into your .bashrc
```
$ echo 'export PATH=/c/Go/bin:$PATH' >> ~/.bashrc
```
* Install dependencies as described down bellow
* Copy required [Libretro Core DLLs](http://buildbot.libretro.com/nightly/windows/x86_64/latest/) into the `cloud-game\assets\emulator\libretro\cores` folder and replace existing Linux SOs in the `cloud-game\pkg\config\config.go` EmulatorConfig object.
* Use `C:\msys64\mingw64.exe` for building
* To run the app use either MinGw terminal or copy: libdl.dll, libogg-0.dll, libopenal-1.dll, libopus-0.dll, libopusfile-0.dll, libvpx-1.dll
files from `C:\msys64\mingw64\bin` into the `./bin` folder and then run.
### (All) Install Dependencies
* Install [libvpx](https://www.webmproject.org/code/), [libopus](http://opus-codec.org/), [pkg-config](https://www.freedesktop.org/wiki/Software/pkg-config/)
* Install [libvpx](https://www.webmproject.org/code/), [libopus](http://opus-codec.org/), [pkg-config](https://www.freedesktop.org/wiki/Software/pkg-config/), [sdl2](https://wiki.libsdl.org/Installation)
```
# Ubuntu / Windows (WSL2)
apt-get install -y pkg-config libvpx-dev libopus-dev libopusfile-dev
apt-get install -y pkg-config libvpx-dev libopus-dev libopusfile-dev libsdl2-dev
# MacOS
brew install libvpx pkg-config opus opusfile
brew install libvpx pkg-config opus opusfile sdl2
# Windows (MSYS2)
pacman -Sy --noconfirm --needed git make mingw-w64-x86_64-{gcc,pkg-config,dlfcn,libvpx,opusfile}
pacman -Sy --noconfirm --needed git make mingw-w64-x86_64-{gcc,pkg-config,dlfcn,libvpx,opusfile,SDL2}
```
Because the coordinator and workers need to run simultaneously. Workers connect to the coordinator.
@ -107,9 +94,11 @@ Synchronize a game session on multiple devices
</p>
## Contribution
- The project cannot be possible without the contribution with those amazing people:
- [sergystepanov](https://github.com/sergystepanov/) for Front end refactor; Audio re-implementation; bilinear, nearest neighbor interpolation scaling; Window setup document; build workflow on multi-os.
- [sadlil](https://github.com/sadlil) for massive code structure reogranization; log and monitor server introduction.
We are very much thankful to everyone who contributes to the project:
- [88hcsif](https://github.com/88hcsif)
- [sadlil](https://github.com/sadlil)
- [sergystepanov](https://github.com/sergystepanov/)
## Credits