diff --git a/pkgs/games/corsix-th/darwin-cmake-no-fixup-bundle.patch b/pkgs/games/corsix-th/darwin-cmake-no-fixup-bundle.patch new file mode 100644 index 000000000000..170554ce9f2f --- /dev/null +++ b/pkgs/games/corsix-th/darwin-cmake-no-fixup-bundle.patch @@ -0,0 +1,12 @@ +diff --git a/CorsixTH/CMakeLists.txt b/CorsixTH/CMakeLists.txt +index 85856df3..f0f08277 100644 +--- a/CorsixTH/CMakeLists.txt ++++ b/CorsixTH/CMakeLists.txt +@@ -293,7 +293,6 @@ if(NOT USE_SOURCE_DATADIRS) + install(CODE " + INCLUDE(BundleUtilities) + SET(BU_CHMOD_BUNDLE_ITEMS ON) +- FIXUP_BUNDLE(\"${CMAKE_INSTALL_PREFIX}/CorsixTH.app\" \"\" \"\") + ") + if(WITH_LUAROCKS) + install(CODE "execute_process( diff --git a/pkgs/games/corsix-th/default.nix b/pkgs/games/corsix-th/default.nix index 240992406b2f..f55a9a20b328 100644 --- a/pkgs/games/corsix-th/default.nix +++ b/pkgs/games/corsix-th/default.nix @@ -10,9 +10,15 @@ , SDL2 , SDL2_mixer , timidity +# Darwin dependencies +, libiconv +, Cocoa +, CoreVideo +# Update +, nix-update-script }: -stdenv.mkDerivation (finalAttrs: { +stdenv.mkDerivation(finalAttrs: { pname = "corsix-th"; version = "0.67"; @@ -23,23 +29,50 @@ stdenv.mkDerivation (finalAttrs: { hash = "sha256-WA/VJqHXzBfVUBNtxCVsGBRzSRQ0pvDvAy03ntc0KZE="; }; - luaEnv = lua.withPackages(p: with p; [ luafilesystem lpeg luasec luasocket ]); + patches = [ + ./darwin-cmake-no-fixup-bundle.patch + ]; + nativeBuildInputs = [ cmake doxygen makeWrapper ]; - buildInputs = [ ffmpeg freetype lua finalAttrs.luaEnv SDL2 SDL2_mixer timidity ]; + + buildInputs = let + luaEnv = lua.withPackages(p: with p; [ luafilesystem lpeg luasec luasocket ]); + in [ + ffmpeg + freetype + lua + luaEnv + SDL2 + SDL2_mixer + timidity + ] ++ lib.optionals stdenv.isDarwin [ + libiconv + Cocoa + CoreVideo + ]; + cmakeFlags = [ "-Wno-dev" ]; - postInstall = '' + postInstall = lib.optionalString stdenv.isLinux '' wrapProgram $out/bin/corsix-th \ --set LUA_PATH "$LUA_PATH" \ --set LUA_CPATH "$LUA_CPATH" + '' + lib.optionalString stdenv.isDarwin '' + mkdir -p $out/Applications + mv $out/CorsixTH.app $out/Applications + wrapProgram $out/Applications/CorsixTH.app/Contents/MacOS/CorsixTH \ + --set LUA_PATH "$LUA_PATH" \ + --set LUA_CPATH "$LUA_CPATH" ''; + passthru.updateScript = nix-update-script { }; + meta = with lib; { description = "Reimplementation of the 1997 Bullfrog business sim Theme Hospital"; mainProgram = "corsix-th"; homepage = "https://corsixth.com/"; license = licenses.mit; - maintainers = with maintainers; [ hughobrien ]; - platforms = platforms.linux; + maintainers = with maintainers; [ hughobrien matteopacini ]; + platforms = platforms.linux ++ platforms.darwin; }; }) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 4514a7077dd9..c647eb480c56 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -36200,7 +36200,9 @@ with pkgs; colobot = callPackage ../games/colobot { }; - corsix-th = callPackage ../games/corsix-th { }; + corsix-th = callPackage ../games/corsix-th { + inherit (darwin.apple_sdk.frameworks) Cocoa CoreVideo; + }; enigma = callPackage ../games/enigma { };