uboot: (firmwareOdroidC2/C4) don't invoke patch tool, use patches = [] instead
https://github.com/NixOS/nixpkgs/blob/master/pkgs/stdenv/generic/setup.sh#L948 this can do it nicely. Signed-off-by: Anton Arapov <anton@deadbeef.mx>
This commit is contained in:
commit
56de2bcd43
30691 changed files with 3076956 additions and 0 deletions
105
pkgs/games/openra/mod.nix
Normal file
105
pkgs/games/openra/mod.nix
Normal file
|
|
@ -0,0 +1,105 @@
|
|||
/* The package defintion for an OpenRA out-of-tree mod.
|
||||
It shares code with `engine.nix` by what is defined in `common.nix`.
|
||||
To build an out-of-tree mod it needs the source code of the engine available,
|
||||
and they each need to be build with a specific version or fork of the engine,
|
||||
so the engine needs to be supplied as an argument as well.
|
||||
The engine is relatively small and quick to build, so this is not much of a problem.
|
||||
Building a mod will result in a wrapper script that starts the mod inside the specified engine.
|
||||
*/
|
||||
{ lib, stdenv
|
||||
, packageAttrs
|
||||
, patchEngine
|
||||
, wrapLaunchGame
|
||||
, mod
|
||||
, engine
|
||||
}:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
engineSourceName = engine.src.name or "engine";
|
||||
modSourceName = mod.src.name or "mod";
|
||||
|
||||
# Based on: https://build.opensuse.org/package/show/home:fusion809/openra-ura
|
||||
in stdenv.mkDerivation (recursiveUpdate packageAttrs rec {
|
||||
name = "${pname}-${version}";
|
||||
pname = "openra-${mod.name}";
|
||||
inherit (mod) version;
|
||||
|
||||
srcs = [
|
||||
mod.src
|
||||
engine.src
|
||||
];
|
||||
|
||||
sourceRoot = ".";
|
||||
|
||||
postUnpack = ''
|
||||
mv ${engineSourceName} ${modSourceName}
|
||||
cd ${modSourceName}
|
||||
'';
|
||||
|
||||
postPatch = ''
|
||||
cat <<'EOF' > fetch-engine.sh
|
||||
#!/bin/sh
|
||||
exit 0
|
||||
EOF
|
||||
|
||||
sed -i 's/^VERSION.*/VERSION = ${version}/g' Makefile
|
||||
|
||||
dos2unix *.md
|
||||
|
||||
${patchEngine engineSourceName engine.version}
|
||||
'';
|
||||
|
||||
configurePhase = ''
|
||||
runHook preConfigure
|
||||
|
||||
make version VERSION=${escapeShellArg version}
|
||||
make -C ${engineSourceName} version VERSION=${escapeShellArg engine.version}
|
||||
|
||||
runHook postConfigure
|
||||
'';
|
||||
|
||||
checkTarget = "test";
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
make -C ${engineSourceName} install-engine install-common-mod-files DATA_INSTALL_DIR=$out/lib/${pname}
|
||||
|
||||
cp -r ${engineSourceName}/mods/{${concatStringsSep "," ([ "common" "modcontent" ] ++ engine.mods)}} mods/* \
|
||||
$out/lib/${pname}/mods/
|
||||
|
||||
substitute ${./mod-launch-game.sh} $out/lib/${pname}/launch-game.sh \
|
||||
--subst-var out \
|
||||
--subst-var-by name ${escapeShellArg mod.name} \
|
||||
--subst-var-by title ${escapeShellArg mod.title} \
|
||||
--subst-var-by assetsError ${escapeShellArg mod.assetsError}
|
||||
chmod +x $out/lib/${pname}/launch-game.sh
|
||||
|
||||
${wrapLaunchGame "-${mod.name}"}
|
||||
|
||||
substitute ${./openra-mod.desktop} $(mkdirp $out/share/applications)/${pname}.desktop \
|
||||
--subst-var-by name ${escapeShellArg mod.name} \
|
||||
--subst-var-by title ${escapeShellArg mod.title} \
|
||||
--subst-var-by description ${escapeShellArg mod.description}
|
||||
|
||||
cp README.md $(mkdirp $out/share/doc/packages/${pname})/README.md
|
||||
|
||||
[[ -e mods/${mod.name}/icon.png ]] && mod_icon=mods/${mod.name}/icon.png || {
|
||||
[[ -e mods/${mod.name}/logo.png ]] && mod_icon=mods/${mod.name}/logo.png || mod_icon=packaging/linux/mod_256x256.png
|
||||
}
|
||||
cp "$mod_icon" $(mkdirp $out/share/pixmaps)/${pname}.png
|
||||
|
||||
for size in 16 32 48 64 128 256; do
|
||||
size=''${size}x''${size}
|
||||
cp packaging/linux/mod_''${size}.png $(mkdirp $out/share/icons/hicolor/''${size}/apps)/${pname}.png
|
||||
done
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = {
|
||||
inherit (mod) description homepage;
|
||||
};
|
||||
})
|
||||
Loading…
Add table
Add a link
Reference in a new issue