nix/nix/sourcemod/plugins/socket.nix

63 lines
1.5 KiB
Nix

{
fetchFromGitHub,
fetchzip,
stdenv,
writeScript,
amtl,
sourcemod,
metamod-source,
sourcepawn,
boost186,
}: let
msinttypes = fetchzip {
url = "https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/msinttypes/msinttypes-r26.zip";
hash = "sha256-uMSuHXikaHQSt35FQ3o5uUjTjyP950O0DYTtQstbBvo=";
stripRoot = false;
};
in
stdenv.mkDerivation (finalAttrs: {
pname = "sourcemod-addon-socket";
version = "3.0.1";
src = fetchFromGitHub {
owner = "nefarius";
repo = "sm-ext-socket";
rev = "ed6bf7a12bd3f801610592301e12062b367fa27b";
hash = "sha256-M13Nt58tlXXBO1fB2Y3vQLyD4Wlzrwd6mHWSf5JTUwY=";
};
postPatch = ''
substituteInPlace Makefile \
--replace-fail " -m32" "" \
--replace-fail "LINK = -lpthread -Wl,-Bstatic -static-libgcc -lboost_thread -lboost_system -lstdc++ -Wl,-Bdynamic" \
"LINK = -lpthread -lboost_thread -lstdc++" \
substituteInPlace Socket.cpp \
--replace-fail "boost::system::posix_error" "boost::system::errc"
'';
nativebuildInputs = [
boost186
];
buildInputs = [
boost186
sourcemod.dev
amtl
msinttypes
sourcepawn.dev
metamod-source.dev
];
installPhase = ''
runHook preInstall
mkdir -p $out/addons/sourcemod/extensions/x64
cp Release/socket.ext.so $out/addons/sourcemod/extensions/x64
runHook postInstall
'';
passthru = {
updateScript = writeScript "update-null" "";
};
})