mirror of
https://codeberg.org/spire/nix.git
synced 2026-06-03 18:04:10 +02:00
proper per-system sdks
This commit is contained in:
parent
f3a8debf10
commit
8919632524
6 changed files with 69 additions and 20 deletions
|
|
@ -1,6 +1,6 @@
|
|||
final: prev: {
|
||||
hl2sdk = (import ./hl2sdk.nix) {
|
||||
inherit (final) fetchFromGitHub;
|
||||
inherit (final) fetchFromGitHub lib;
|
||||
inherit (final.stdenvNoCC) mkDerivation;
|
||||
};
|
||||
ambuild = final.python3Packages.callPackage ./ambuild.nix {};
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
{fetchFromGitHub, mkDerivation}: let
|
||||
inherit (builtins) mapAttrs;
|
||||
{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=";};
|
||||
|
|
@ -27,6 +28,11 @@
|
|||
css = {rev = "ef291082a9efa01225001626e2b14bee8c2c63be"; sha256 = "sha256-x4tZ+fUTb+i2HoKIXgkpXjOUQIWurmHTLyJVuOm/lD0=";};
|
||||
doi = {rev = "a4a0aa9de0a648d7f91fbb9ad8aecb119bd44314"; sha256 = "sha256-qMVHEeJqHyg9Kq1Y2+MNTjChiIUyO6PkbWmKPoGZa/Q=";};
|
||||
};
|
||||
# from https://github.com/alliedmodders/metamod-source/blob/master/sample_mm/AMBuildScript
|
||||
linuxX86Sdks = ["episode1" "css" "hl2dm" "dods" "sdk2013" "tf2" "l4d" "l4d2" "nucleardawn" "csgo" "doi" "bms"];
|
||||
linuxX64Sdks = ["dota"];
|
||||
isX86 = name: elem name linuxX86Sdks;
|
||||
isX64 = name: elem name linuxX64Sdks;
|
||||
fetchRev = {rev, sha256}: fetchFromGitHub {
|
||||
inherit rev sha256;
|
||||
owner = "alliedmodders";
|
||||
|
|
@ -39,6 +45,15 @@
|
|||
mkdir -p $out
|
||||
cp -r $src $out/${name}
|
||||
'';
|
||||
passthru.platforms = {
|
||||
x86 = isX86 sdkName;
|
||||
x64 = isX64 sdkName;
|
||||
};
|
||||
|
||||
meta = {
|
||||
platforms = optionals passthru.platforms.x86 ["i686-linux"] ++
|
||||
optionals passthru.platforms.x64 ["x86_64-linux"];
|
||||
};
|
||||
};
|
||||
sdks = mapAttrs buildSdk revisions;
|
||||
in sdks
|
||||
|
|
@ -1,34 +1,47 @@
|
|||
{ clangMultiStdenv, fetchFromGitHub, ambuild, metamod-source, symlinkJoin, sdks ? {} }: let
|
||||
{ clangStdenv, fetchFromGitHub, ambuild, metamod-source, symlinkJoin, lib, writeShellScriptBin, zlib, sdks ? {} }: let
|
||||
inherit (builtins) concatStringsSep attrNames attrValues;
|
||||
sdkNames = attrNames sdks;
|
||||
inherit (lib) optionals;
|
||||
combinedSdks = symlinkJoin {
|
||||
name = "hl2sdk-${concatStringsSep "-" (attrNames sdks)}";
|
||||
paths = attrValues sdks;
|
||||
};
|
||||
in clangMultiStdenv.mkDerivation rec {
|
||||
ambuildArchs = {
|
||||
"x86_64-linux" = "x86_64";
|
||||
"i686-linux" = "x86";
|
||||
};
|
||||
ambuildArch = ambuildArchs.${clangStdenv.system};
|
||||
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.10";
|
||||
version = "1.11";
|
||||
|
||||
NIX_CFLAGS_COMPILE = "-Wno-error=implicit-const-int-float-conversion -Wno-error=tautological-overlap-compare";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "alliedmodders";
|
||||
repo = pname;
|
||||
rev = "39c2dc60e0c0d963cfbe39bee3a7cf953cc8055c";
|
||||
sha256 = "sha256-SwrBuOAebmLq5bgjw5i8CFuEDTtvDqLYY/dk4holrzw=";
|
||||
rev = "b09a675eb01c65dd95d7ac1a522fb62";
|
||||
sha256 = "sha256-FQBYxBt2AoM7OQYhz+qZuLddT9tIfW7ZlRg1Zkd5qE0=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
ambuild
|
||||
] ++ optionals (clangStdenv.cc.targetPrefix != "") [arWrapper];
|
||||
|
||||
buildInputs = [
|
||||
zlib
|
||||
];
|
||||
|
||||
hardeningDisable = [ "all" ];
|
||||
# hardeningDisable = [ "all" ];
|
||||
|
||||
configurePhase = ''
|
||||
mkdir build
|
||||
cd build
|
||||
python ../configure.py --sdks present --no-mysql --disable-auto-versioning --mms-path=${metamod-source.src} --hl2sdk-root=${combinedSdks}
|
||||
python ../configure.py --targets ${ambuildArch} --enable-optimize --sdks=${sdkNames} \
|
||||
--no-mysql --disable-auto-versioning --mms-path=${metamod-source.src} --hl2sdk-root=${combinedSdks}
|
||||
'';
|
||||
|
||||
buildPhase = ''
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue