pytrainer: unpin python 3.10
[NixPkgs.git] / pkgs / games / corsix-th / default.nix
blob4dee7418cb893f5cadc86efca9e832a1018ae49d
1 { stdenv
2 , lib
3 , fetchFromGitHub
4 , cmake
5 , curl
6 , doxygen
7 , ffmpeg
8 , freetype
9 , lua
10 , makeWrapper
11 , SDL2
12 , SDL2_mixer
13 , timidity
14 # Darwin dependencies
15 , libiconv
16 , Cocoa
17 , CoreVideo
18 , CoreMedia
19 , VideoToolbox
20 # Update
21 , nix-update-script
24 stdenv.mkDerivation(finalAttrs: {
25   pname = "corsix-th";
26   version = "0.68.0";
28   src = fetchFromGitHub {
29     owner = "CorsixTH";
30     repo = "CorsixTH";
31     rev = "v${finalAttrs.version}";
32     hash = "sha256-D8ks+fiFJxwClqW1aNtGGa5UxAFvuH2f2guwPxOEQwI=";
33   };
35   patches = [
36     ./darwin-cmake-no-fixup-bundle.patch
37   ];
39   nativeBuildInputs = [ cmake doxygen makeWrapper ];
41   buildInputs = let
42     luaEnv = lua.withPackages(p: with p; [ luafilesystem lpeg luasec luasocket ]);
43   in [
44     curl
45     ffmpeg
46     freetype
47     lua
48     luaEnv
49     SDL2
50     SDL2_mixer
51     timidity
52   ] ++ lib.optionals stdenv.hostPlatform.isDarwin [
53     libiconv
54     Cocoa
55     CoreVideo
56     CoreMedia
57     VideoToolbox
58   ];
60   cmakeFlags = [ "-Wno-dev" ];
62   postInstall = lib.optionalString stdenv.hostPlatform.isLinux ''
63     wrapProgram $out/bin/corsix-th \
64     --set LUA_PATH "$LUA_PATH" \
65     --set LUA_CPATH "$LUA_CPATH"
66   '' + lib.optionalString stdenv.hostPlatform.isDarwin ''
67     mkdir -p $out/Applications
68     mv $out/CorsixTH.app $out/Applications
69     wrapProgram $out/Applications/CorsixTH.app/Contents/MacOS/CorsixTH \
70       --set LUA_PATH "$LUA_PATH" \
71       --set LUA_CPATH "$LUA_CPATH"
72   '';
74   passthru.updateScript = nix-update-script { };
76   meta = with lib; {
77     description = "Reimplementation of the 1997 Bullfrog business sim Theme Hospital";
78     mainProgram = "corsix-th";
79     homepage = "https://corsixth.com/";
80     license = licenses.mit;
81     maintainers = with maintainers; [ hughobrien matteopacini ];
82     platforms = platforms.linux ++ platforms.darwin;
83   };