From d4c2454cf48d566911cad61ee9ebe2a52af32a5a Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Fri, 10 Jul 2026 02:27:25 +0200 Subject: [PATCH] build spire plugins from source --- nix/sourcemod/plugins/banned.nix | 6 ++++- .../plugins/builder/spire-plugin.nix | 22 ++++++++++++++++--- nix/sourcemod/plugins/mapdownloader.nix | 6 ++++- nix/sourcemod/plugins/whitelist.nix | 6 ++++- 4 files changed, 34 insertions(+), 6 deletions(-) diff --git a/nix/sourcemod/plugins/banned.nix b/nix/sourcemod/plugins/banned.nix index 332f299..2869c8a 100644 --- a/nix/sourcemod/plugins/banned.nix +++ b/nix/sourcemod/plugins/banned.nix @@ -1,7 +1,11 @@ -{mkSpirePlugin}: +{ + mkSpirePlugin, + sourcemod-include-curl, +}: mkSpirePlugin { name = "banned"; version = "0-unstable-2026-06-18"; rev = "c8186c7bd56e15f2e2e8e5988c0d18058a02df8b"; hash = "sha256-JA9WeM0Je0aHB/z+6xImztTouJNGkaPwD9Cp4z8Ko+4="; + includes = [sourcemod-include-curl]; } diff --git a/nix/sourcemod/plugins/builder/spire-plugin.nix b/nix/sourcemod/plugins/builder/spire-plugin.nix index 2dc5c87..4f10851 100644 --- a/nix/sourcemod/plugins/builder/spire-plugin.nix +++ b/nix/sourcemod/plugins/builder/spire-plugin.nix @@ -3,17 +3,22 @@ stdenvNoCC, nix-update-script, lib, + sourcepawn, + sourcemod-includes, }: lib.extendMkDerivation { constructDrv = stdenvNoCC.mkDerivation; - excludeDrvArgNames = ["name" "version" "rev" "hash"]; + excludeDrvArgNames = ["name" "version" "rev" "hash" "includes"]; extendDrvArgs = finalAttrs: { name, version, rev, hash, + includes ? [sourcemod-includes], repo ? name, - }: { + }: let + spcomp = sourcepawn.buildEnv ([sourcemod-includes] ++ includes); + in { pname = "sourcemod-plugin-${name}"; inherit version; src = fetchFromGitea { @@ -22,11 +27,22 @@ lib.extendMkDerivation { inherit rev hash repo; }; + nativeBuildInputs = [spcomp]; + + buildPhase = '' + runHook preBuild + + spcomp plugin/*.sp + + runHook preBuild + + ''; + installPhase = '' runHook preInstall mkdir -p $out/addons/sourcemod/plugins/ - mv plugin/*.smx $out/addons/sourcemod/plugins/ + mv *.smx $out/addons/sourcemod/plugins/ runHook postInstall ''; diff --git a/nix/sourcemod/plugins/mapdownloader.nix b/nix/sourcemod/plugins/mapdownloader.nix index 058f981..27bace1 100644 --- a/nix/sourcemod/plugins/mapdownloader.nix +++ b/nix/sourcemod/plugins/mapdownloader.nix @@ -1,7 +1,11 @@ -{mkSpirePlugin}: +{ + mkSpirePlugin, + sourcemod-include-curl, +}: mkSpirePlugin { name = "mapdownloader"; version = "0-unstable-2025-10-27"; rev = "06dbac41712bd62ae3aa1fd442ab2265ee2f488f"; hash = "sha256-aNlrxrv2K73lKP7hYOER3um4P6fbiV/nF4GDcVaUNbo="; + includes = [sourcemod-include-curl]; } diff --git a/nix/sourcemod/plugins/whitelist.nix b/nix/sourcemod/plugins/whitelist.nix index 1bfeb75..e780573 100644 --- a/nix/sourcemod/plugins/whitelist.nix +++ b/nix/sourcemod/plugins/whitelist.nix @@ -1,8 +1,12 @@ -{mkSpirePlugin}: +{ + mkSpirePlugin, + sourcemod-include-curl, +}: mkSpirePlugin { name = "whitelist"; version = "0-unstable-2025-10-29"; rev = "333c5065514a6c5b2f11e57f8ef0bbe80ac28a74"; hash = "sha256-1za2Ii772ymjejI0LaT61hmqEmIMnD/7sVXpMJIwMrc="; repo = "sm_whitelist"; + includes = [sourcemod-include-curl]; }