{ lib
, stdenv
, fetchFromGitHub
, boost
, cmake
, nasm
, libpng
}:

stdenv.mkDerivation rec {
  pname = "efficient-compression-tool";
  version = "0.9.1";

  src = fetchFromGitHub {
    owner = "fhanau";
    repo = "Efficient-Compression-Tool";
    rev = "v${version}";
    hash = "sha256-TSV5QXf6GuHAwQrde3Zo9MA1rtpAhtRg0UTzMkBnHB8=";
    fetchSubmodules = true;
  };

  nativeBuildInputs = [ cmake nasm ];

  patches = [ ./use-nixpkgs-libpng.patch ];

  buildInputs = [ boost libpng  ];

  cmakeDir = "../src";

  cmakeFlags = [ "-DECT_FOLDER_SUPPORT=ON" ];

  CXXFLAGS = [
    # GCC 13: error: 'uint32_t' does not name a type
    "-include cstdint"
  ];

  meta = with lib; {
    description = "Fast and effective C++ file optimizer";
    homepage = "https://github.com/fhanau/Efficient-Compression-Tool";
    license = licenses.asl20;
    maintainers = [ maintainers.lunik1 ];
    platforms = platforms.linux;
    mainProgram = "ect";
  };
}
