improve sdk handling

This commit is contained in:
Robin Appelman 2023-07-08 23:03:42 +02:00
commit f695af20ce
3 changed files with 23 additions and 12 deletions

View file

@ -1,5 +1,8 @@
final: prev: {
hl2sdk = (import ./hl2sdk.nix) {inherit (final) fetchFromGitHub;};
hl2sdk = (import ./hl2sdk.nix) {
inherit (final) fetchFromGitHub;
inherit (final.stdenvNoCC) mkDerivation;
};
ambuild = final.python3Packages.callPackage ./ambuild.nix {};
metamod-source = final.callPackage ./metamod-source.nix {};
sourcemod = final.callPackage ./sourcemod.nix {};

View file

@ -1,4 +1,4 @@
{fetchFromGitHub}: let
{fetchFromGitHub, mkDerivation}: let
inherit (builtins) mapAttrs;
revisions = {
csgo = {rev = "4e0975afe5b2994c76ec9b40951b6347b8788463"; sha256 = "sha256-Z5LD3I4uPKGIXTeSC3yQcJl6455XFwQVuiitND8ULEQ=";};
@ -32,4 +32,13 @@
owner = "alliedmodders";
repo = "hl2sdk";
};
in mapAttrs (key: sdk: fetchRev sdk) revisions
buildSdk = sdkName: sdk: mkDerivation rec {
name = "hl2sdk-${sdkName}";
src = fetchRev sdk;
installPhase = ''
mkdir -p $out
cp -r $src $out/${name}
'';
};
sdks = mapAttrs buildSdk revisions;
in sdks

View file

@ -1,8 +1,10 @@
{ multiStdenv, fetchFromGitHub, ambuild, metamod-source, git, sdks ? {} }: let
inherit (builtins) attrNames concatStringsSep;
{ stdenv, multiStdenv, fetchFromGitHub, ambuild, metamod-source, symlinkJoin, sdks ? {} }: let
inherit (builtins) concatStringsSep attrNames attrValues;
sdkNames = attrNames sdks;
links = map (sdk: "ln -s ${sdks.${sdk}} hl2sdk-${sdk}") sdkNames;
metamod-sdks = metamod-source.override {inherit sdks;};
combinedSdks = symlinkJoin {
name = "hl2sdk-${concatStringsSep "-" (attrNames sdks)}";
paths = attrValues sdks;
};
in multiStdenv.mkDerivation rec {
pname = "sourcemod";
version = "1.10";
@ -17,19 +19,16 @@ in multiStdenv.mkDerivation rec {
fetchSubmodules = true;
};
buildInputs = [
nativeBuildInputs = [
ambuild
git
];
hardeningDisable = [ "all" ];
configurePhase = ''
${concatStringsSep "\n" links}
ln -s ${metamod-sdks.src} metamod-source
mkdir build
cd build
python ../configure.py --sdks present --no-mysql --disable-auto-versioning
python ../configure.py --sdks present --no-mysql --disable-auto-versioning --mms-path=${metamod-source.src} --hl2sdk-root=${combinedSdks}
'';
buildPhase = ''