Commit ace09922 authored by GGG's avatar GGG
Browse files

patchcil: init at 0.2.2

parent e596d008
Loading
Loading
Loading
Loading
+32 −0
Original line number Diff line number Diff line
[
  {
    "pname": "AsmResolver",
    "version": "6.0.0-beta.1",
    "hash": "sha256-ZW61z6Qmztdy2NaiqxvNcP5RWBIiIO6CWNnqYq0MwoA="
  },
  {
    "pname": "AsmResolver.DotNet",
    "version": "6.0.0-beta.1",
    "hash": "sha256-VoTiIr2/r2my6sg2AOEeiqz9vZhWtq5mGaW2Hx90Uo4="
  },
  {
    "pname": "AsmResolver.PE",
    "version": "6.0.0-beta.1",
    "hash": "sha256-tTU/flTxRJaC4gkmI/gctqIriGIMntkgTs51TqzcQlg="
  },
  {
    "pname": "AsmResolver.PE.File",
    "version": "6.0.0-beta.1",
    "hash": "sha256-hPuFrpcm2VMiYEirsL4kYmAhOzjwjNXUklIfYJEonLo="
  },
  {
    "pname": "DotNet.Glob",
    "version": "3.1.3",
    "hash": "sha256-5uGSaGY1IqDjq4RCDLPJm0Lg9oyWmyR96OiNeGqSj84="
  },
  {
    "pname": "System.CommandLine",
    "version": "2.0.0-beta4.22272.1",
    "hash": "sha256-zSO+CYnMH8deBHDI9DHhCPj79Ce3GOzHCyH1/TiHxcc="
  }
]
+76 −0
Original line number Diff line number Diff line
{
  lib,
  fetchFromGitHub,
  buildDotnetModule,
  dotnetCorePackages,
  stdenv,
  nix-update-script,
  aot ? dotnetCorePackages.sdk_9_0.hasILCompiler && !stdenv.hostPlatform.isDarwin,
}:

buildDotnetModule rec {
  pname = "patchcil";
  version = "0.2.2";

  src = fetchFromGitHub {
    owner = "GGG-KILLER";
    repo = "patchcil";
    tag = "v${version}";
    hash = "sha256-jqVXKp5ShWkIMAgmcwu9/QHy+Ey9d1Piv62wsO0Xm44=";
  };

  nativeBuildInputs = lib.optional aot stdenv.cc;

  projectFile = "src/PatchCil.csproj";
  nugetDeps = ./deps.json;

  dotnet-sdk = dotnetCorePackages.sdk_9_0;
  dotnet-runtime = if aot then null else dotnetCorePackages.runtime_9_0;

  selfContainedBuild = aot;
  dotnetFlags = lib.optionals (!aot) [
    # Disable AOT
    "-p:PublishAot=false"
    "-p:InvariantGlobalization=false"
    "-p:EventSourceSupport=true"
    "-p:HttpActivityPropagationSupport=true"
    "-p:MetadataUpdaterSupport=true"
    "-p:MetricsSupport=true"
    "-p:UseNativeHttpHandler=false"
    "-p:XmlResolverIsNetworkingEnabledByDefault=true"
    "-p:EnableGeneratedComInterfaceComImportInterop=true"
    "-p:_ComObjectDescriptorSupport=true"
    "-p:_DataSetXmlSerializationSupport=true"
    "-p:_DefaultValueAttributeSupport=true"
    "-p:_DesignerHostSupport=true"
    "-p:_EnableConsumingManagedCodeFromNativeHosting=true"
    "-p:_UseManagedNtlm=true"
  ];

  preFixup = lib.optionalString aot ''
    # Remove debug symbols as they shouldn't have anything in them.
    rm $out/lib/patchcil/patchcil.dbg
  '';

  executables = [ "patchcil" ];

  passthru = {
    updateScript = nix-update-script { };
  };

  meta = {
    description = "A small utility to modify the library paths from PInvoke in .NET assemblies.";
    homepage = "https://github.com/GGG-KILLER/patchcil";
    license = lib.licenses.mit;
    maintainers = with lib.maintainers; [ ggg ];
    mainProgram = "patchcil";
    platforms = [
      "x86_64-linux"
      "aarch64-linux"
      "x86_64-darwin"
      "aarch64-darwin"
      "x86_64-windows"
      "i686-windows"
    ];
  };
}