{ lib , config , stdenv , fetchFromGitHub , cmake , darwin , removeReferencesTo , btop , testers , autoAddDriverRunpath , cudaSupport ? config.cudaSupport , rocmSupport ? config.rocmSupport , rocmPackages }: stdenv.mkDerivation rec { pname = "btop"; version = "1.4.0"; src = fetchFromGitHub { owner = "aristocratos"; repo = pname; rev = "v${version}"; hash = "sha256-A5hOBxj8tKlkHd8zDHfDoU6fIu8gDpt3/usbiDk0/G0="; }; nativeBuildInputs = [ cmake ] ++ lib.optionals cudaSupport [ autoAddDriverRunpath ]; buildInputs = lib.optionals stdenv.hostPlatform.isDarwin [ darwin.apple_sdk_11_0.frameworks.CoreFoundation darwin.apple_sdk_11_0.frameworks.IOKit ]; installFlags = [ "PREFIX=$(out)" ]; postInstall = '' ${removeReferencesTo}/bin/remove-references-to -t ${stdenv.cc.cc} $(readlink -f $out/bin/btop) ''; postPhases = lib.optionals rocmSupport [ "postPatchelf" ]; postPatchelf = lib.optionalString rocmSupport '' patchelf --add-rpath ${lib.getLib rocmPackages.rocm-smi}/lib $out/bin/btop ''; passthru.tests.version = testers.testVersion { package = btop; }; meta = with lib; { description = "Monitor of resources"; homepage = "https://github.com/aristocratos/btop"; changelog = "https://github.com/aristocratos/btop/blob/v${version}/CHANGELOG.md"; license = licenses.asl20; platforms = platforms.linux ++ platforms.darwin; maintainers = with maintainers; [ rmcgibbo ]; mainProgram = "btop"; }; }