build spire plugins from source

This commit is contained in:
Robin Appelman 2026-07-10 02:27:25 +02:00
commit d4c2454cf4
4 changed files with 34 additions and 6 deletions

View file

@ -1,7 +1,11 @@
{mkSpirePlugin}: {
mkSpirePlugin,
sourcemod-include-curl,
}:
mkSpirePlugin { mkSpirePlugin {
name = "banned"; name = "banned";
version = "0-unstable-2026-06-18"; version = "0-unstable-2026-06-18";
rev = "c8186c7bd56e15f2e2e8e5988c0d18058a02df8b"; rev = "c8186c7bd56e15f2e2e8e5988c0d18058a02df8b";
hash = "sha256-JA9WeM0Je0aHB/z+6xImztTouJNGkaPwD9Cp4z8Ko+4="; hash = "sha256-JA9WeM0Je0aHB/z+6xImztTouJNGkaPwD9Cp4z8Ko+4=";
includes = [sourcemod-include-curl];
} }

View file

@ -3,17 +3,22 @@
stdenvNoCC, stdenvNoCC,
nix-update-script, nix-update-script,
lib, lib,
sourcepawn,
sourcemod-includes,
}: }:
lib.extendMkDerivation { lib.extendMkDerivation {
constructDrv = stdenvNoCC.mkDerivation; constructDrv = stdenvNoCC.mkDerivation;
excludeDrvArgNames = ["name" "version" "rev" "hash"]; excludeDrvArgNames = ["name" "version" "rev" "hash" "includes"];
extendDrvArgs = finalAttrs: { extendDrvArgs = finalAttrs: {
name, name,
version, version,
rev, rev,
hash, hash,
includes ? [sourcemod-includes],
repo ? name, repo ? name,
}: { }: let
spcomp = sourcepawn.buildEnv ([sourcemod-includes] ++ includes);
in {
pname = "sourcemod-plugin-${name}"; pname = "sourcemod-plugin-${name}";
inherit version; inherit version;
src = fetchFromGitea { src = fetchFromGitea {
@ -22,11 +27,22 @@ lib.extendMkDerivation {
inherit rev hash repo; inherit rev hash repo;
}; };
nativeBuildInputs = [spcomp];
buildPhase = ''
runHook preBuild
spcomp plugin/*.sp
runHook preBuild
'';
installPhase = '' installPhase = ''
runHook preInstall runHook preInstall
mkdir -p $out/addons/sourcemod/plugins/ mkdir -p $out/addons/sourcemod/plugins/
mv plugin/*.smx $out/addons/sourcemod/plugins/ mv *.smx $out/addons/sourcemod/plugins/
runHook postInstall runHook postInstall
''; '';

View file

@ -1,7 +1,11 @@
{mkSpirePlugin}: {
mkSpirePlugin,
sourcemod-include-curl,
}:
mkSpirePlugin { mkSpirePlugin {
name = "mapdownloader"; name = "mapdownloader";
version = "0-unstable-2025-10-27"; version = "0-unstable-2025-10-27";
rev = "06dbac41712bd62ae3aa1fd442ab2265ee2f488f"; rev = "06dbac41712bd62ae3aa1fd442ab2265ee2f488f";
hash = "sha256-aNlrxrv2K73lKP7hYOER3um4P6fbiV/nF4GDcVaUNbo="; hash = "sha256-aNlrxrv2K73lKP7hYOER3um4P6fbiV/nF4GDcVaUNbo=";
includes = [sourcemod-include-curl];
} }

View file

@ -1,8 +1,12 @@
{mkSpirePlugin}: {
mkSpirePlugin,
sourcemod-include-curl,
}:
mkSpirePlugin { mkSpirePlugin {
name = "whitelist"; name = "whitelist";
version = "0-unstable-2025-10-29"; version = "0-unstable-2025-10-29";
rev = "333c5065514a6c5b2f11e57f8ef0bbe80ac28a74"; rev = "333c5065514a6c5b2f11e57f8ef0bbe80ac28a74";
hash = "sha256-1za2Ii772ymjejI0LaT61hmqEmIMnD/7sVXpMJIwMrc="; hash = "sha256-1za2Ii772ymjejI0LaT61hmqEmIMnD/7sVXpMJIwMrc=";
repo = "sm_whitelist"; repo = "sm_whitelist";
includes = [sourcemod-include-curl];
} }