diff --git a/.github/workflows/build-libs.yml b/.github/workflows/build-libs.yml index 01df29b..246713f 100644 --- a/.github/workflows/build-libs.yml +++ b/.github/workflows/build-libs.yml @@ -440,10 +440,35 @@ jobs: name: piton-apphosts-${{ matrix.target }} path: source/Piton/apphost/${{ matrix.lib_name }} + build-steamworks-net: + name: Steamworks.NET + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v3 + with: + sparse-checkout: source/Steamworks.NET + submodules: true + + - uses: actions/setup-dotnet@v4 + with: + dotnet-version: '8' + + - name: Build Steamworks.NET + working-directory: source/Steamworks.NET/Standalone + run: dotnet build -t:BatchBuild Steamworks.NET.Standard.sln + + - name: Upload Steamworks.NET binaries + uses: actions/upload-artifact@v4 + with: + name: steamworks-net + path: source/Steamworks.NET/Standalone/bin/x* + + generate-lib-ext: name: Generate lib-ext runs-on: ubuntu-latest - needs: [build-fnalibs, build-piton] + needs: [build-fnalibs, build-piton, build-steamworks-net] steps: - uses: actions/checkout@v4 @@ -485,20 +510,25 @@ jobs: mkdir -p ../lib-ext/lib64-win-x64 mkdir -p ../lib-ext/lib64-osx mkdir -p ../lib-ext/lib64-linux - + ### Vendored files cp README_lib-ext.md ../lib-ext/README.md cp source/SDL_GameControllerDB/gamecontrollerdb.txt ../lib-ext # Windows x86 - cp binaries/steamworks/windows-x86/CSteamworks.dll ../lib-ext/lib64-win-x86 + cp source/Steamworks.NET/com.rlabrecque.steamworks.net/Plugins/steam_api.dll ../lib-ext/lib64-win-x86 # Windows x64 - cp binaries/steamworks/windows-x64/CSteamworks.dll ../lib-ext/lib64-win-x64 - cp binaries/steamworks/windows-x64/steam_api64.dll ../lib-ext/lib64-win-x64 + cp source/Steamworks.NET/com.rlabrecque.steamworks.net/Plugins/steam_api64.dll ../lib-ext/lib64-win-x64 cp binaries/fmod/windows-x64/fmod64.dll ../lib-ext/lib64-win-x64 cp binaries/fmod/windows-x64/fmodstudio64.dll ../lib-ext/lib64-win-x64 + # OSX + cp source/Steamworks.NET/com.rlabrecque.steamworks.net/Plugins/steam_api.bundle/Contents/MacOS/libsteam_api.dylib ../lib-ext/lib64-osx + + # Linux x64 + cp source/Steamworks.NET/com.rlabrecque.steamworks.net/Plugins/libsteam_api.so ../lib-ext/lib64-linux + # Piton cp piton-runtime.yaml ../lib-ext/piton-runtime.yaml @@ -542,6 +572,11 @@ jobs: cp ../binaries/discord_game_sdk/lib/x86_64/discord_game_sdk.dylib lib64-osx/libdiscord_game_sdk.dylib cp ../binaries/discord_game_sdk/lib/x86_64/discord_game_sdk.so lib64-linux/libdiscord_game_sdk.so + cp ../binaries/steamworks-net/x86/Windows/netstandard2.1/Steamworks.NET.dll lib64-win-x86 + cp ../binaries/steamworks-net/x64/Windows/netstandard2.1/Steamworks.NET.dll lib64-win-x64 + cp ../binaries/steamworks-net/x64/OSX-Linux/netstandard2.1/Steamworks.NET.dll lib64-osx + cp ../binaries/steamworks-net/x64/OSX-Linux/netstandard2.1/Steamworks.NET.dll lib64-linux + ### Piton mv ../binaries/piton-apphosts piton diff --git a/.gitmodules b/.gitmodules index 4741fd3..c688e44 100644 --- a/.gitmodules +++ b/.gitmodules @@ -22,3 +22,6 @@ [submodule "source/FMOD_SDL"] path = source/FMOD_SDL url = https://github.com/flibitijibibo/FMOD_SDL +[submodule "source/Steamworks.NET"] + path = source/Steamworks.NET + url = https://github.com/rlabrecque/Steamworks.NET diff --git a/README.md b/README.md index 9b0775c..0a88d88 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ Some libraries have patches applied to them, to account for Everest-specific nee ## Libraries Versions ### Open-Source Libraries -These libraries are open source and are built in CI. +These libraries are open source and are built in CI. - SDL2 `2.28.5` - FNA `24.01` @@ -17,6 +17,7 @@ These libraries are open source and are built in CI. - Vulkan Loader `1.3.296` - Piton [21c7868](https://github.com/Popax21/Piton/tree/21c7868d06007f0c5e7d9030a0109fe892df1bf3) - FMOD_SDL [1f021ce](https://github.com/flibitijibibo/FMOD_SDL/tree/1f021ceb6cc13e3fe93e53e0f87d2673b24e54b7) +- Steamworks.NET [`2024.8.0`](https://github.com/rlabrecque/Steamworks.NET/tree/2024.8.0) ### Closed-Source Libraries These libraries are closed source and cannot be _built_ in CI. @@ -24,4 +25,4 @@ Some are not accessible without an account, and therefore need to be vendored as - DiscordGameSDK `3.2.1` (downloaded: https://dl-game-sdk.discordapp.net/3.2.1/discord_game_sdk.zip) - FMOD Engine `1.10.14` (binary and headers) (vendored: [Download (Requires account)](https://www.fmod.com/download#fmodengine), [License](https://github.com/EverestAPI/Everest-libs/blob/main/binaries/fmod/EULA-FMOD.txt)) -- Steamworks SDK `1.40` (with Steamworks.NET `10.0.0`) (vendored: [Download (Official, Requires account)](https://partner.steamgames.com/downloads/list), [Download (via Steamworks.NET)](https://github.com/rlabrecque/Steamworks.NET/releases/tag/10.0.0)) +- Steamworks SDK `1.60` (with Steamworks.NET `2024.8.0`) (vendored: [Download (Official, Requires account)](https://partner.steamgames.com/downloads/list), [Download (via Steamworks.NET)](https://github.com/rlabrecque/Steamworks.NET/releases/tag/2024.8.0)) diff --git a/binaries/steamworks/windows-x64/CSteamworks.dll b/binaries/steamworks/windows-x64/CSteamworks.dll deleted file mode 100644 index f932807..0000000 Binary files a/binaries/steamworks/windows-x64/CSteamworks.dll and /dev/null differ diff --git a/binaries/steamworks/windows-x64/steam_api64.dll b/binaries/steamworks/windows-x64/steam_api64.dll deleted file mode 100644 index 3398d35..0000000 Binary files a/binaries/steamworks/windows-x64/steam_api64.dll and /dev/null differ diff --git a/binaries/steamworks/windows-x86/CSteamworks.dll b/binaries/steamworks/windows-x86/CSteamworks.dll deleted file mode 100644 index cc419c9..0000000 Binary files a/binaries/steamworks/windows-x86/CSteamworks.dll and /dev/null differ diff --git a/source/Steamworks.NET b/source/Steamworks.NET new file mode 160000 index 0000000..a2fc889 --- /dev/null +++ b/source/Steamworks.NET @@ -0,0 +1 @@ +Subproject commit a2fc889ab2672981ec3e6225d551d86ce6923121