{ lib, stdenv, fetchFromGitHub, cmake, bzip2, libtomcrypt, zlib, darwin }: stdenv.mkDerivation rec { pname = "StormLib"; version = "9.22"; src = fetchFromGitHub { owner = "ladislav-zezula"; repo = "StormLib"; rev = "v${version}"; sha256 = "1rcdl6ryrr8fss5z5qlpl4prrw8xpbcdgajg2hpp0i7fpk21ymcc"; }; # Fixes a build failure on aarch64-darwin. Define for all Darwin targets for when x86_64-darwin # upgrades to a newer SDK. NIX_CFLAGS_COMPILE = lib.optional stdenv.isDarwin "-DTARGET_OS_IPHONE=0"; postPatch = '' substituteInPlace CMakeLists.txt \ --replace "FRAMEWORK DESTINATION /Library/Frameworks" "FRAMEWORK DESTINATION Library/Frameworks" ''; cmakeFlags = [ "-DBUILD_SHARED_LIBS=ON" "-DWITH_LIBTOMCRYPT=ON" ]; nativeBuildInputs = [ cmake ]; buildInputs = [ bzip2 libtomcrypt zlib ] ++ lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.Carbon ]; meta = with lib; { homepage = "https://github.com/ladislav-zezula/StormLib"; license = licenses.mit; description = "An open-source project that can work with Blizzard MPQ archives"; platforms = platforms.all; maintainers = with maintainers; [ aanderse karolchmist ]; }; }