mirror of
https://codeberg.org/spire/nix.git
synced 2026-06-03 18:04:10 +02:00
fmt
This commit is contained in:
parent
3edf9df237
commit
f1707cebd8
9 changed files with 314 additions and 174 deletions
19
flake.nix
19
flake.nix
|
|
@ -9,17 +9,18 @@
|
|||
nixpkgs,
|
||||
utils,
|
||||
}: let
|
||||
inherit (nixpkgs.lib.lists) concatMap;
|
||||
inherit (builtins) map;
|
||||
systems = with utils.lib.system; [x86_64-linux i686-linux];
|
||||
in utils.lib.eachSystem systems (system: let
|
||||
inherit (nixpkgs.lib.lists) concatMap;
|
||||
inherit (builtins) map;
|
||||
systems = with utils.lib.system; [x86_64-linux i686-linux];
|
||||
in
|
||||
utils.lib.eachSystem systems (system: let
|
||||
inherit (builtins) mapAttrs attrNames elem;
|
||||
inherit (pkgs) lib;
|
||||
inherit (lib.attrsets) filterAttrs;
|
||||
overlays = [(import ./pkgs)];
|
||||
pkgs = (import nixpkgs) {
|
||||
inherit system overlays;
|
||||
# crossSystem = { config = "i686-unknown-linux-gnu"; };
|
||||
# crossSystem = { config = "i686-unknown-linux-gnu"; };
|
||||
};
|
||||
testScript = pkgs.fetchurl {
|
||||
url = "https://raw.githubusercontent.com/spiretf/nocheats/master/plugin/nocheats.sp";
|
||||
|
|
@ -30,7 +31,10 @@
|
|||
packages = rec {
|
||||
inherit (pkgs) ambuild sourcemod sourcepawn sourcemod-includes buildSourcePawnScript hl2sdk;
|
||||
sourcemods = mapAttrs (name: sdk: pkgs.sourcemod.override {sdks = {${name} = sdk;};}) hl2sdk;
|
||||
buildTestScript = buildSourcePawnScript {name = "test"; src = testScript;};
|
||||
buildTestScript = buildSourcePawnScript {
|
||||
name = "test";
|
||||
src = testScript;
|
||||
};
|
||||
};
|
||||
|
||||
devShells.default = pkgs.mkShell {
|
||||
|
|
@ -40,7 +44,8 @@
|
|||
sdks = attrNames platformSdks;
|
||||
|
||||
overlays.default = import ./pkgs;
|
||||
}) // {
|
||||
})
|
||||
// {
|
||||
matrix = {
|
||||
include = concatMap (system: map (sdk: {inherit system sdk;}) self.sdks.${system}) systems;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,5 +1,8 @@
|
|||
{ lib, buildPythonPackage, fetchFromGitHub }:
|
||||
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
}:
|
||||
buildPythonPackage rec {
|
||||
pname = "ambuild";
|
||||
version = "2.2.3-dev";
|
||||
|
|
@ -18,4 +21,4 @@ buildPythonPackage rec {
|
|||
description = "AMBuild is a lightweight build system designed for performance and accuracy";
|
||||
license = licenses.bsd3;
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,30 +1,43 @@
|
|||
{ lib, stdenv, sourcemod-includes, sourcepawn, which }:
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
sourcemod-includes,
|
||||
sourcepawn,
|
||||
which,
|
||||
}: {
|
||||
defaultIncludes ? true,
|
||||
includes ? [],
|
||||
src,
|
||||
outPath ? "",
|
||||
...
|
||||
}@args: let
|
||||
} @ args: let
|
||||
inherit (lib) optionals;
|
||||
inherit (builtins) removeAttrs;
|
||||
allIncludes = includes ++ optionals defaultIncludes [sourcemod-includes];
|
||||
forwardAttrs = removeAttrs args ["defaultIncludes" "includes" "entrypoint"];
|
||||
spEnv = sourcepawn.buildEnv allIncludes;
|
||||
outPathRelative = if outPath == "" then "" else "/${outPath}";
|
||||
mkdirOut = if outPath == "" then "" else "mkdir -p $out";
|
||||
in stdenv.mkDerivation (rec {
|
||||
nativeBuildInputs = [spEnv which];
|
||||
dontUnpack = true;
|
||||
buildPhase = ''
|
||||
# absolute path is needed for spcomp to find the includes
|
||||
${spEnv}/bin/spcomp ${src} -o out.smx
|
||||
'';
|
||||
installPhase = ''
|
||||
${mkdirOut}
|
||||
cp out.smx $out${outPathRelative}
|
||||
'';
|
||||
testPhase = ''
|
||||
verifier out.smx
|
||||
'';
|
||||
} // args)
|
||||
outPathRelative =
|
||||
if outPath == ""
|
||||
then ""
|
||||
else "/${outPath}";
|
||||
mkdirOut =
|
||||
if outPath == ""
|
||||
then ""
|
||||
else "mkdir -p $out";
|
||||
in
|
||||
stdenv.mkDerivation (rec {
|
||||
nativeBuildInputs = [spEnv which];
|
||||
dontUnpack = true;
|
||||
buildPhase = ''
|
||||
# absolute path is needed for spcomp to find the includes
|
||||
spcomp ${src} -o out.smx
|
||||
'';
|
||||
installPhase = ''
|
||||
${mkdirOut}
|
||||
cp out.smx $out${outPathRelative}
|
||||
'';
|
||||
testPhase = ''
|
||||
verifier out.smx
|
||||
'';
|
||||
}
|
||||
// args)
|
||||
|
|
|
|||
|
|
@ -9,4 +9,4 @@ final: prev: {
|
|||
sourcepawn = final.callPackage ./sourcepawn.nix {};
|
||||
sourcemod-includes = final.callPackage ./sourcemod-includes.nix {};
|
||||
buildSourcePawnScript = final.callPackage ./build-sourcepawn-script.nix {};
|
||||
}
|
||||
}
|
||||
|
|
|
|||
174
pkgs/hl2sdk.nix
174
pkgs/hl2sdk.nix
|
|
@ -1,55 +1,143 @@
|
|||
{fetchFromGitHub, mkDerivation, lib}: let
|
||||
{
|
||||
fetchFromGitHub,
|
||||
mkDerivation,
|
||||
lib,
|
||||
}: let
|
||||
inherit (builtins) mapAttrs elem;
|
||||
inherit (lib) optionals;
|
||||
revisions = {
|
||||
csgo = {rev = "4e0975afe5b2994c76ec9b40951b6347b8788463"; sha256 = "sha256-Z5LD3I4uPKGIXTeSC3yQcJl6455XFwQVuiitND8ULEQ=";};
|
||||
tf2 = {rev = "2d3560994fbc31aebbe3a250048bbbc7f76d2803"; sha256 = "sha256-hKwF1cqg08NRPoZk77+lpC2cPMZeKVhsYFpGNi5IH30=";};
|
||||
swarm = {rev = "f6026555a7227b2ff8ebed4f86dd760e50de96db"; sha256 = "sha256-jU3yCEVZUWkiOhqPbbX3oEx26tQaZCpaneMGNSQVnxI=";};
|
||||
portal2 = {rev = "4555a278a5f3a6cf956a0b78f9c481b40664aa4f"; sha256 = "sha256-Zx5d1qhzoqTybFQQWdJw9/QqbnHUcOB3IyRVbZ/5YyA=";};
|
||||
gmod = {rev = "c12fac7c95d9ef5eca89627f944f397af16ae9b4"; sha256 = "sha256-zO1MJIY0ZgHOt9NKtWBi494bOQixk9wo5ybiQI7Esc8=";};
|
||||
nucleardawn = {rev = "568c25dcc3ded2123f851d77f27bf2a3c15382b7"; sha256 = "sha256-81O9XVd39Zq15uiTI4vNVtwTtx/qyyR+xZKNjkEze70=";};
|
||||
ep2 = {rev = "968ec84e340343f42e3d0552dbd74500ef3034d1"; sha256 = "sha256-XZYJvsIeH+Wh5xzTFHm9fB6JPJh1CELIq/F8ERivZcc="; dirName = "orangebox";};
|
||||
bgt = {rev = "a9a75c4d74e87d53b190680e4d71e93f59b3539e"; sha256 = "sha256-e7XgRvfWod6gEElNvqLC09HiUy3affoed3eqFOizk/I=";};
|
||||
darkm = {rev = "e659cbdd058fe197a2a5ead4038a591c75063331"; sha256 = "sha256-4RMOMUHLjStsqTMHToxMnxzV2TrP/buiFP3pECYf5IE=";};
|
||||
eye = {rev = "f152e66ac838fb5b8eca1a9076eb26122ac3cb51"; sha256 = "sha256-Zy/rKDKPx3pv9uZD9XhrGBoOiY8/zCBXnc9+LPEwWoQ=";};
|
||||
bms = {rev = "058ed4de4a5db08052937b91798c303bc27b4a14"; sha256 = "sha256-h9+I+lOf4PiTw6U4taQrMLZt1vbPZbucJmf4Td6ltTg=";};
|
||||
l4d = {rev = "a628c16a21f95752d021a16a0c5816ef1f18c37b"; sha256 = "sha256-TqHVJK0nWhg5Gd0KJ4wYQ1Q3QhIidDUxpYSIXKu32G8=";};
|
||||
contagion = {rev = "cbab58f4da31c6a88a4fc1f1bad92dc748343314"; sha256 = "sha256-TitcR3CUHmvlVi6ZlAYC7tojQIldL/01IFHOHiAhev0=";};
|
||||
blade = {rev = "a14ad10afc41d0150ab945cfa1b0e2a64995a503"; sha256 = "sha256-i/1TT/+NJ44Eip9B4RvQFXPd2NQhGBrjgrXdeE+3f7U=";};
|
||||
insurgency = {rev = "29da165490c70f00b2b3d56e38ba97be5287f222"; sha256 = "sha256-ECbTsgbGowUbMhPN5H6sofS5OZRRDmLlNHC/oNkweWE=";};
|
||||
pvkii = {rev = "6769441f9f283c96b3915c5a9399ca8949b1ecb0"; sha256 = "sha256-Z3OYaAuLxBuaznQm6eU0d4dWpOUl1S943b8BazSW6Ug=";};
|
||||
episode1 = {rev = "b3addd57ec0304e03b8a52a5f1f869609538df0a"; sha256 = "sha256-AhjxQ86NEvKwANihD123QSMWrBhw/17mkvcfXQA2q0Q=";};
|
||||
dota = {rev = "8626bfe25f17f98e4a55e71133e1d368780daa37"; sha256 = "sha256-n7HBnEBzf8eBUqOAGZLJWOrPAGNW68nJ9y80OCB0z8c=";};
|
||||
mcv = {rev = "6ef5dfa3f5b504e0ad33dffc1596509caa2cbb04"; sha256 = "sha256-xP2pTBfzNGY/1saGaaISaUp+QKETJjVmhJP50GB9f4c=";};
|
||||
dods = {rev = "d82a11ffc0b3164721f4f919aab289c461e5a375"; sha256 = "sha256-gCbVqyi5Q8zuiTcMMDwb1DUU2XUXiiY+Lxj2wUzM0a8=";};
|
||||
sdk2013 = {rev = "78dab58646d5983c77af44c45a877b89196eb82c"; sha256 = "sha256-2RHuzT6r4WIKYWZaPWFtiDgCAnKgeD9HUyeg1daNCnU=";};
|
||||
hl2dm = {rev = "6f8b684753626bbedc463f2ed5a382ff54e5de3d"; sha256 = "sha256-KMMH0/kM4e1SQ/sr87Bdb81ZwvZoN3N20LrHBMuxNAM=";};
|
||||
l4d2 = {rev = "66743d0eeef0537201104e94affde4e446897822"; sha256 = "sha256-JvcAV6U5hbnfMdOc4YfGLumZqAFWLvnWAFoFUfMgtFQ=";};
|
||||
css = {rev = "ef291082a9efa01225001626e2b14bee8c2c63be"; sha256 = "sha256-x4tZ+fUTb+i2HoKIXgkpXjOUQIWurmHTLyJVuOm/lD0=";};
|
||||
doi = {rev = "a4a0aa9de0a648d7f91fbb9ad8aecb119bd44314"; sha256 = "sha256-qMVHEeJqHyg9Kq1Y2+MNTjChiIUyO6PkbWmKPoGZa/Q=";};
|
||||
csgo = {
|
||||
rev = "4e0975afe5b2994c76ec9b40951b6347b8788463";
|
||||
sha256 = "sha256-Z5LD3I4uPKGIXTeSC3yQcJl6455XFwQVuiitND8ULEQ=";
|
||||
};
|
||||
tf2 = {
|
||||
rev = "2d3560994fbc31aebbe3a250048bbbc7f76d2803";
|
||||
sha256 = "sha256-hKwF1cqg08NRPoZk77+lpC2cPMZeKVhsYFpGNi5IH30=";
|
||||
};
|
||||
swarm = {
|
||||
rev = "f6026555a7227b2ff8ebed4f86dd760e50de96db";
|
||||
sha256 = "sha256-jU3yCEVZUWkiOhqPbbX3oEx26tQaZCpaneMGNSQVnxI=";
|
||||
};
|
||||
portal2 = {
|
||||
rev = "4555a278a5f3a6cf956a0b78f9c481b40664aa4f";
|
||||
sha256 = "sha256-Zx5d1qhzoqTybFQQWdJw9/QqbnHUcOB3IyRVbZ/5YyA=";
|
||||
};
|
||||
gmod = {
|
||||
rev = "c12fac7c95d9ef5eca89627f944f397af16ae9b4";
|
||||
sha256 = "sha256-zO1MJIY0ZgHOt9NKtWBi494bOQixk9wo5ybiQI7Esc8=";
|
||||
};
|
||||
nucleardawn = {
|
||||
rev = "568c25dcc3ded2123f851d77f27bf2a3c15382b7";
|
||||
sha256 = "sha256-81O9XVd39Zq15uiTI4vNVtwTtx/qyyR+xZKNjkEze70=";
|
||||
};
|
||||
ep2 = {
|
||||
rev = "968ec84e340343f42e3d0552dbd74500ef3034d1";
|
||||
sha256 = "sha256-XZYJvsIeH+Wh5xzTFHm9fB6JPJh1CELIq/F8ERivZcc=";
|
||||
dirName = "orangebox";
|
||||
};
|
||||
bgt = {
|
||||
rev = "a9a75c4d74e87d53b190680e4d71e93f59b3539e";
|
||||
sha256 = "sha256-e7XgRvfWod6gEElNvqLC09HiUy3affoed3eqFOizk/I=";
|
||||
};
|
||||
darkm = {
|
||||
rev = "e659cbdd058fe197a2a5ead4038a591c75063331";
|
||||
sha256 = "sha256-4RMOMUHLjStsqTMHToxMnxzV2TrP/buiFP3pECYf5IE=";
|
||||
};
|
||||
eye = {
|
||||
rev = "f152e66ac838fb5b8eca1a9076eb26122ac3cb51";
|
||||
sha256 = "sha256-Zy/rKDKPx3pv9uZD9XhrGBoOiY8/zCBXnc9+LPEwWoQ=";
|
||||
};
|
||||
bms = {
|
||||
rev = "058ed4de4a5db08052937b91798c303bc27b4a14";
|
||||
sha256 = "sha256-h9+I+lOf4PiTw6U4taQrMLZt1vbPZbucJmf4Td6ltTg=";
|
||||
};
|
||||
l4d = {
|
||||
rev = "a628c16a21f95752d021a16a0c5816ef1f18c37b";
|
||||
sha256 = "sha256-TqHVJK0nWhg5Gd0KJ4wYQ1Q3QhIidDUxpYSIXKu32G8=";
|
||||
};
|
||||
contagion = {
|
||||
rev = "cbab58f4da31c6a88a4fc1f1bad92dc748343314";
|
||||
sha256 = "sha256-TitcR3CUHmvlVi6ZlAYC7tojQIldL/01IFHOHiAhev0=";
|
||||
};
|
||||
blade = {
|
||||
rev = "a14ad10afc41d0150ab945cfa1b0e2a64995a503";
|
||||
sha256 = "sha256-i/1TT/+NJ44Eip9B4RvQFXPd2NQhGBrjgrXdeE+3f7U=";
|
||||
};
|
||||
insurgency = {
|
||||
rev = "29da165490c70f00b2b3d56e38ba97be5287f222";
|
||||
sha256 = "sha256-ECbTsgbGowUbMhPN5H6sofS5OZRRDmLlNHC/oNkweWE=";
|
||||
};
|
||||
pvkii = {
|
||||
rev = "6769441f9f283c96b3915c5a9399ca8949b1ecb0";
|
||||
sha256 = "sha256-Z3OYaAuLxBuaznQm6eU0d4dWpOUl1S943b8BazSW6Ug=";
|
||||
};
|
||||
episode1 = {
|
||||
rev = "b3addd57ec0304e03b8a52a5f1f869609538df0a";
|
||||
sha256 = "sha256-AhjxQ86NEvKwANihD123QSMWrBhw/17mkvcfXQA2q0Q=";
|
||||
};
|
||||
dota = {
|
||||
rev = "8626bfe25f17f98e4a55e71133e1d368780daa37";
|
||||
sha256 = "sha256-n7HBnEBzf8eBUqOAGZLJWOrPAGNW68nJ9y80OCB0z8c=";
|
||||
};
|
||||
mcv = {
|
||||
rev = "6ef5dfa3f5b504e0ad33dffc1596509caa2cbb04";
|
||||
sha256 = "sha256-xP2pTBfzNGY/1saGaaISaUp+QKETJjVmhJP50GB9f4c=";
|
||||
};
|
||||
dods = {
|
||||
rev = "d82a11ffc0b3164721f4f919aab289c461e5a375";
|
||||
sha256 = "sha256-gCbVqyi5Q8zuiTcMMDwb1DUU2XUXiiY+Lxj2wUzM0a8=";
|
||||
};
|
||||
sdk2013 = {
|
||||
rev = "78dab58646d5983c77af44c45a877b89196eb82c";
|
||||
sha256 = "sha256-2RHuzT6r4WIKYWZaPWFtiDgCAnKgeD9HUyeg1daNCnU=";
|
||||
};
|
||||
hl2dm = {
|
||||
rev = "6f8b684753626bbedc463f2ed5a382ff54e5de3d";
|
||||
sha256 = "sha256-KMMH0/kM4e1SQ/sr87Bdb81ZwvZoN3N20LrHBMuxNAM=";
|
||||
};
|
||||
l4d2 = {
|
||||
rev = "66743d0eeef0537201104e94affde4e446897822";
|
||||
sha256 = "sha256-JvcAV6U5hbnfMdOc4YfGLumZqAFWLvnWAFoFUfMgtFQ=";
|
||||
};
|
||||
css = {
|
||||
rev = "ef291082a9efa01225001626e2b14bee8c2c63be";
|
||||
sha256 = "sha256-x4tZ+fUTb+i2HoKIXgkpXjOUQIWurmHTLyJVuOm/lD0=";
|
||||
};
|
||||
doi = {
|
||||
rev = "a4a0aa9de0a648d7f91fbb9ad8aecb119bd44314";
|
||||
sha256 = "sha256-qMVHEeJqHyg9Kq1Y2+MNTjChiIUyO6PkbWmKPoGZa/Q=";
|
||||
};
|
||||
};
|
||||
# from https://github.com/alliedmodders/sourcemod/blob/5addaffa5665f353c874f45505914ab692535c24/AMBuildScript#L51
|
||||
linuxX86Sdks = ["episode1" "ep2" "css" "hl2dm" "dods" "sdk2013" "tf2" "l4d" "l4d2" "nucleardawn" "csgo" "insurgency" "bms" "doi"];
|
||||
linuxX64Sdks = ["blade" "csgo"];
|
||||
isX86 = name: elem name linuxX86Sdks;
|
||||
isX64 = name: elem name linuxX64Sdks;
|
||||
fetchRev = {rev, sha256, ...}: fetchFromGitHub {
|
||||
inherit rev sha256;
|
||||
owner = "alliedmodders";
|
||||
repo = "hl2sdk";
|
||||
};
|
||||
buildSdk = sdkName: sdk: mkDerivation rec {
|
||||
name = "hl2sdk-${sdkName}";
|
||||
src = fetchRev sdk;
|
||||
installPhase = ''
|
||||
mkdir -p $out
|
||||
cp -r $src $out/hl2sdk-${sdk.dirName or sdkName}
|
||||
'';
|
||||
fetchRev = {
|
||||
rev,
|
||||
sha256,
|
||||
...
|
||||
}:
|
||||
fetchFromGitHub {
|
||||
inherit rev sha256;
|
||||
owner = "alliedmodders";
|
||||
repo = "hl2sdk";
|
||||
};
|
||||
buildSdk = sdkName: sdk:
|
||||
mkDerivation rec {
|
||||
name = "hl2sdk-${sdkName}";
|
||||
src = fetchRev sdk;
|
||||
installPhase = ''
|
||||
mkdir -p $out
|
||||
cp -r $src $out/hl2sdk-${sdk.dirName or sdkName}
|
||||
'';
|
||||
|
||||
meta = {
|
||||
platforms = optionals (isX86 sdkName) ["i686-linux"] ++
|
||||
optionals (isX64 sdkName) ["x86_64-linux"];
|
||||
meta = {
|
||||
platforms =
|
||||
optionals (isX86 sdkName) ["i686-linux"]
|
||||
++ optionals (isX64 sdkName) ["x86_64-linux"];
|
||||
};
|
||||
};
|
||||
};
|
||||
sdks = mapAttrs buildSdk revisions;
|
||||
in sdks
|
||||
in
|
||||
sdks
|
||||
|
|
|
|||
|
|
@ -1,41 +1,48 @@
|
|||
{ multiStdenv, fetchFromGitHub, ambuild, git, sdks ? {} }: let
|
||||
{
|
||||
multiStdenv,
|
||||
fetchFromGitHub,
|
||||
ambuild,
|
||||
git,
|
||||
sdks ? {},
|
||||
}: let
|
||||
inherit (builtins) attrNames concatStringsSep;
|
||||
sdkNames = attrNames sdks;
|
||||
links = map (sdk: "ln -s ${sdks.${sdk}} hl2sdk-${sdk}") sdkNames;
|
||||
in multiStdenv.mkDerivation rec {
|
||||
pname = "metamod-source";
|
||||
version = "1.10";
|
||||
in
|
||||
multiStdenv.mkDerivation rec {
|
||||
pname = "metamod-source";
|
||||
version = "1.10";
|
||||
|
||||
NIX_CFLAGS_COMPILE = "-Wno-error=class-memaccess -Wno-error=format-truncation";
|
||||
NIX_CFLAGS_COMPILE = "-Wno-error=class-memaccess -Wno-error=format-truncation";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "alliedmodders";
|
||||
repo = pname;
|
||||
# rev = version;
|
||||
rev = "b8d1fd401d685fe711ad27e4e169742bd8a51978";
|
||||
sha256 = "sha256-8rQJ99f+XxD+rSP7OpyU5Ml+Wwp/SqJ9+B9EEWmcqDY=";
|
||||
};
|
||||
src = fetchFromGitHub {
|
||||
owner = "alliedmodders";
|
||||
repo = pname;
|
||||
# rev = version;
|
||||
rev = "b8d1fd401d685fe711ad27e4e169742bd8a51978";
|
||||
sha256 = "sha256-8rQJ99f+XxD+rSP7OpyU5Ml+Wwp/SqJ9+B9EEWmcqDY=";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
ambuild
|
||||
git
|
||||
];
|
||||
buildInputs = [
|
||||
ambuild
|
||||
git
|
||||
];
|
||||
|
||||
hardeningDisable = [ "all" ];
|
||||
hardeningDisable = ["all"];
|
||||
|
||||
CFLAGS="-Wno-error=class-memaccess";
|
||||
CFLAGS = "-Wno-error=class-memaccess";
|
||||
|
||||
buildPhase = ''
|
||||
${concatStringsSep "\n" links}
|
||||
mkdir build
|
||||
cd build
|
||||
python ../configure.py --sdks present --disable-auto-versioning
|
||||
ambuild
|
||||
'';
|
||||
buildPhase = ''
|
||||
${concatStringsSep "\n" links}
|
||||
mkdir build
|
||||
cd build
|
||||
python ../configure.py --sdks present --disable-auto-versioning
|
||||
ambuild
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
mkdir $out
|
||||
mv package $out/share
|
||||
cp -r $src $out/include
|
||||
'';
|
||||
}
|
||||
installPhase = ''
|
||||
mkdir $out
|
||||
mv package $out/share
|
||||
cp -r $src $out/include
|
||||
'';
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,7 @@
|
|||
{ stdenv, fetchFromGitHub }:
|
||||
{
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
}:
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "sourcemod-includes";
|
||||
version = "1.11";
|
||||
|
|
@ -17,4 +20,4 @@ stdenv.mkDerivation rec {
|
|||
mkdir $out
|
||||
cp -r plugins/include $out
|
||||
'';
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,14 @@
|
|||
{ clangStdenv, fetchFromGitHub, ambuild, metamod-source, symlinkJoin, lib, writeShellScriptBin, zlib, sdks ? {} }: let
|
||||
{
|
||||
clangStdenv,
|
||||
fetchFromGitHub,
|
||||
ambuild,
|
||||
metamod-source,
|
||||
symlinkJoin,
|
||||
lib,
|
||||
writeShellScriptBin,
|
||||
zlib,
|
||||
sdks ? {},
|
||||
}: let
|
||||
inherit (builtins) concatStringsSep attrNames attrValues;
|
||||
inherit (lib) optionals;
|
||||
combinedSdks = symlinkJoin {
|
||||
|
|
@ -13,43 +23,46 @@
|
|||
sdkNames = concatStringsSep "," (attrNames sdks);
|
||||
# ambuild doesn't allow configuring a target prefix for "ar"
|
||||
arWrapper = writeShellScriptBin "ar" "exec -a $0 ${clangStdenv.cc.targetPrefix}ar $@";
|
||||
in clangStdenv.mkDerivation rec {
|
||||
pname = "sourcemod";
|
||||
version = "1.11";
|
||||
in
|
||||
clangStdenv.mkDerivation rec {
|
||||
pname = "sourcemod";
|
||||
version = "1.11";
|
||||
|
||||
NIX_CFLAGS_COMPILE = "-Wno-error=implicit-const-int-float-conversion -Wno-error=tautological-overlap-compare";
|
||||
NIX_CFLAGS_COMPILE = "-Wno-error=implicit-const-int-float-conversion -Wno-error=tautological-overlap-compare";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "alliedmodders";
|
||||
repo = pname;
|
||||
rev = "b09a675eb01c65dd95d7ac1a522fb62";
|
||||
sha256 = "sha256-FQBYxBt2AoM7OQYhz+qZuLddT9tIfW7ZlRg1Zkd5qE0=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
src = fetchFromGitHub {
|
||||
owner = "alliedmodders";
|
||||
repo = pname;
|
||||
rev = "b09a675eb01c65dd95d7ac1a522fb62";
|
||||
sha256 = "sha256-FQBYxBt2AoM7OQYhz+qZuLddT9tIfW7ZlRg1Zkd5qE0=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
ambuild
|
||||
] ++ optionals (clangStdenv.cc.targetPrefix != "") [arWrapper];
|
||||
nativeBuildInputs =
|
||||
[
|
||||
ambuild
|
||||
]
|
||||
++ optionals (clangStdenv.cc.targetPrefix != "") [arWrapper];
|
||||
|
||||
buildInputs = [
|
||||
zlib
|
||||
];
|
||||
buildInputs = [
|
||||
zlib
|
||||
];
|
||||
|
||||
# hardeningDisable = [ "all" ];
|
||||
# hardeningDisable = [ "all" ];
|
||||
|
||||
configurePhase = ''
|
||||
mkdir build
|
||||
cd build
|
||||
python ../configure.py --targets ${ambuildArch} --enable-optimize --sdks=${sdkNames} \
|
||||
--no-mysql --disable-auto-versioning --mms-path=${metamod-source.src} --hl2sdk-root=${combinedSdks}
|
||||
'';
|
||||
configurePhase = ''
|
||||
mkdir build
|
||||
cd build
|
||||
python ../configure.py --targets ${ambuildArch} --enable-optimize --sdks=${sdkNames} \
|
||||
--no-mysql --disable-auto-versioning --mms-path=${metamod-source.src} --hl2sdk-root=${combinedSdks}
|
||||
'';
|
||||
|
||||
buildPhase = ''
|
||||
ambuild
|
||||
'';
|
||||
buildPhase = ''
|
||||
ambuild
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
mkdir $out
|
||||
mv package $out/share
|
||||
'';
|
||||
}
|
||||
installPhase = ''
|
||||
mkdir $out
|
||||
mv package $out/share
|
||||
'';
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,41 +1,49 @@
|
|||
{ stdenv, fetchFromGitHub, ambuild, python3Packages, buildEnv }:
|
||||
let self = stdenv.mkDerivation rec {
|
||||
pname = "sourcepawn";
|
||||
version = "1.11";
|
||||
{
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
ambuild,
|
||||
python3Packages,
|
||||
buildEnv,
|
||||
}: let
|
||||
self = stdenv.mkDerivation rec {
|
||||
pname = "sourcepawn";
|
||||
version = "1.11";
|
||||
|
||||
NIX_CFLAGS_COMPILE = "-Wno-error=sign-compare -Wno-error=unused-but-set-variable -Wno-error=maybe-uninitialized";
|
||||
NIX_CFLAGS_COMPILE = "-Wno-error=sign-compare -Wno-error=unused-but-set-variable -Wno-error=maybe-uninitialized";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "alliedmodders";
|
||||
repo = pname;
|
||||
rev = "9cf9f31d4560fe7e76c6be75a2245088d03a3937";
|
||||
hash = "sha256-lqd6aN5FLCJo8+B+tabABqkkgIFH+o0/0WpnYLse/o4=";
|
||||
fetchSubmodules = true;
|
||||
src = fetchFromGitHub {
|
||||
owner = "alliedmodders";
|
||||
repo = pname;
|
||||
rev = "9cf9f31d4560fe7e76c6be75a2245088d03a3937";
|
||||
hash = "sha256-lqd6aN5FLCJo8+B+tabABqkkgIFH+o0/0WpnYLse/o4=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
ambuild
|
||||
python3Packages.setuptools
|
||||
];
|
||||
|
||||
configurePhase = ''
|
||||
mkdir build
|
||||
cd build
|
||||
python ../configure.py
|
||||
'';
|
||||
|
||||
buildPhase = ''
|
||||
ambuild
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin
|
||||
cp spcomp/*/spcomp spshell/*/spshell verifier/*/verifier $out/bin
|
||||
'';
|
||||
|
||||
passthru.buildEnv = imports:
|
||||
buildEnv {
|
||||
name = "sourcepawn-env";
|
||||
paths = imports ++ [self];
|
||||
};
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
ambuild
|
||||
python3Packages.setuptools
|
||||
];
|
||||
|
||||
configurePhase = ''
|
||||
mkdir build
|
||||
cd build
|
||||
python ../configure.py
|
||||
'';
|
||||
|
||||
buildPhase = ''
|
||||
ambuild
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin
|
||||
cp spcomp/*/spcomp spshell/*/spshell verifier/*/verifier $out/bin
|
||||
'';
|
||||
|
||||
passthru.buildEnv = imports: buildEnv {
|
||||
name = "sourcepawn-env";
|
||||
paths = imports ++ [self];
|
||||
};
|
||||
};
|
||||
in self
|
||||
in
|
||||
self
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue