Merge pull request #307746 from r-ryantm/auto-update/mame
[NixPkgs.git] / pkgs / games / openra_2019 / common.nix
blob091b56b3d1419044b19c59c51a6bd0c872644a70
1 /*  The reusable code, and package attributes, between OpenRA engine packages (engine.nix)
2     and out-of-tree mod packages (mod.nix).
3 */
4 { lib, makeSetupHook, curl, unzip, dos2unix, pkg-config, makeWrapper
5 , lua, mono, python3
6 , libGL, freetype, openal, SDL2
7 , zenity
8 }:
10 let
11   inherit (lib)
12     licenses
13     maintainers
14     makeBinPath
15     makeLibraryPath
16     optional
17     platforms
18     ;
20   path = makeBinPath ([ mono python3 ] ++ optional (zenity != null) zenity);
21   rpath = makeLibraryPath [ lua freetype openal SDL2 ];
22   mkdirp = makeSetupHook {
23     name = "openra-mkdirp-hook";
24   } ./mkdirp.sh;
26 in {
27   patchEngine = dir: version: ''
28     sed -i \
29       -e 's/^VERSION.*/VERSION = ${version}/g' \
30       -e '/fetch-geoip-db/d' \
31       -e '/GeoLite2-Country.mmdb.gz/d' \
32       ${dir}/Makefile
34     sed -i 's|locations=.*|locations=${lua}/lib|' ${dir}/thirdparty/configure-native-deps.sh
35   '';
37   wrapLaunchGame = openraSuffix: binaryName: ''
38     # Setting TERM=xterm fixes an issue with terminfo in mono: System.Exception: Magic number is wrong: 542
39     # https://github.com/mono/mono/issues/6752#issuecomment-365212655
40     wrapProgram $out/lib/openra${openraSuffix}/launch-game.sh \
41       --prefix PATH : "${path}" \
42       --prefix LD_LIBRARY_PATH : "${rpath}" \
43       --set TERM xterm
45     makeWrapper $out/lib/openra${openraSuffix}/launch-game.sh $(mkdirp $out/bin)/${binaryName} \
46       --chdir "$out/lib/openra${openraSuffix}"
47   '';
49   packageAttrs = {
50     buildInputs = [ libGL ];
52     # TODO: Test if this is correct.
53     nativeBuildInputs = [
54       curl
55       unzip
56       dos2unix
57       pkg-config
58       makeWrapper
59       mkdirp
60       mono
61       python3
62     ];
64     makeFlags = [ "prefix=$(out)" ];
66     doCheck = true;
68     dontStrip = true;
70     meta = {
71       maintainers = with maintainers; [ fusion809 msteen ];
72       license = licenses.gpl3;
73       platforms = platforms.linux;
74     };
75   };