80 lines
1.7 KiB
Nix
80 lines
1.7 KiB
Nix
{
|
|
lib,
|
|
fetchzip,
|
|
stdenv,
|
|
buildPythonPackage,
|
|
fetchFromGitHub,
|
|
|
|
setuptools,
|
|
}:
|
|
let
|
|
rev = "26780de81b8c14d48fe8d757c642086f2af2a66b";
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "philippj";
|
|
repo = "SteamworksPy";
|
|
inherit rev;
|
|
hash = "sha256-nSGkEP6tny/Kv2+YjldFCYrLe1jnKOTa+w1/KCpSLsU=";
|
|
|
|
};
|
|
steamworksSrc = fetchzip {
|
|
url = "https://web.archive.org/web/20250527013243/https://partner.steamgames.com/downloads/steamworks_sdk_162.zip";
|
|
hash = "sha256-yDA92nGj3AKTNI4vnoLaa+7mDqupQv0E4YKRRUWqyZw=";
|
|
};
|
|
|
|
library = stdenv.mkDerivation {
|
|
pname = "steamworkspy-c";
|
|
version = rev;
|
|
|
|
unpackPhase = ''
|
|
runHook preUnpack
|
|
|
|
cp -r ${src} source
|
|
chmod -R 755 source
|
|
cp -r ${steamworksSrc}/public/steam source/library/sdk/
|
|
cp ${steamworksSrc}/redistributable_bin/linux64/libsteam_api.so source/library/
|
|
|
|
runHook postUnpack
|
|
'';
|
|
|
|
sourceRoot = "source/library";
|
|
|
|
installPhase = ''
|
|
mkdir -p $out
|
|
cp SteamworksPy.so $out/
|
|
'';
|
|
};
|
|
in
|
|
|
|
buildPythonPackage {
|
|
pname = "steamworkspy";
|
|
version = rev;
|
|
pyproject = true;
|
|
|
|
inherit src;
|
|
|
|
build-system = [ setuptools ];
|
|
|
|
postInstall = ''
|
|
cp ${library}/SteamworksPy.so $out/lib
|
|
'';
|
|
|
|
meta = {
|
|
description = "Python API system for Valve's Steamworks";
|
|
homepage = "https://github.com/philippj/SteamworksPy";
|
|
license = with lib.licenses; [
|
|
mit
|
|
# For steamworks headers and libsteamapi.so
|
|
(
|
|
unfreeRedistributable
|
|
// {
|
|
url = "https://partner.steamgames.com/documentation/sdk_access_agreement";
|
|
}
|
|
)
|
|
];
|
|
# steamworksSrc is x86_64-linux only
|
|
platforms = [ "x86_64-linux" ];
|
|
maintainers = with lib.maintainers; [ weirdrock ];
|
|
};
|
|
}
|