nix/nix/sourcemod/plugins/curl.nix

89 lines
2.1 KiB
Nix

{
fetchFromGitHub,
stdenv,
nix-update-script,
sourcemod,
metamod-source,
curl,
gsasl,
curl-3-compat,
sourcepawn,
sourcemod-includes,
sourcemod-include-curl,
system,
lib,
}: let
inherit (lib) optionalString;
in
stdenv.mkDerivation (finalAttrs: {
pname = "sourcemod-addon-curl";
version = "2.0.1-beta1";
src = fetchFromGitHub {
owner = "sapphonie";
repo = "SM-neocurl-ext";
rev = "v${finalAttrs.version}";
hash = "sha256-R4DnH8oJ1dsh/NfCNRHx8/yTSAo7liWrbQALk4u2esI=";
};
postPatch = ''
substituteInPlace extension/Makefile \
--replace-fail "../build/mm-1.11" ${metamod-source.src} \
--replace-fail "../build/sm-1.11" ${sourcemod.src} \
--replace-fail " -m32" "" \
--replace-fail "-lbrotlidec-static -lbrotlienc-static -lbrotlicommon-static" "-lbrotlidec -lbrotlienc -lbrotlicommon"
rm -r extension/lib extension/curl
substituteInPlace extension/curlmanager.cpp \
--replace-fail "CURLSSLBACKEND_OPENSSL" "CURLSSLBACKEND_GNUTLS"
'';
buildInputs = [gsasl curl-3-compat.dev];
nativeBuildInputs = [
(
sourcepawn.buildEnv [sourcemod-includes sourcemod-include-curl]
)
];
buildPhase = ''
runHook preBuild
mkdir -p build/extensions build/scripting build/plugins
pushd extension
make
mv Release/curl.ext.so ../build/extensions/ -v
popd
cp -Rfv pawn/* build/
spcomp build/scripting/curl_self_test.sp
mv curl_self_test.smx build/plugins
runHook postBuild
'';
installPhase = ''
runHook preInstall
mkdir -p $out/addons/sourcemod
mv build/* $out/addons/sourcemod/
runHook postInstall
'';
postInstall = optionalString (system == "x86_64-linux") ''
mkdir -p $out/addons/sourcemod/extensions/x64
mv $out/addons/sourcemod/extensions/curl.ext.so $out/addons/sourcemod/extensions/x64
'';
passthru = {
updateScript = nix-update-script {
extraArgs = [
"--flake"
"--version=unstable"
];
};
};
})