summary refs log tree commit diff
path: root/nix/lib/buildSpacebarDotnetModule.nix
blob: 36b4c8ad4600382b1bb35fab61910888aba518c3 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
{ pkgs, rVersion }:
{
  name,
  nugetDeps ? null,
  projectReferences ? [ ],
  projectFile ? "${name}/${name}.csproj",
  runtimeId ? null,
  useAppHost ? null,
  packNupkg ? true,
  srcRoot ? ./.,
  ...
}@args:
pkgs.buildDotnetModule (pkgs.lib.recursiveUpdate
  (
    rec {
      inherit
        projectReferences
        nugetDeps
        projectFile
        runtimeId
        useAppHost
        srcRoot
        packNupkg
        ;

      pname = "${name}";
      version = "1.0.0-" + rVersion;
      dotnetPackFlags = [
        "--include-symbols"
        "--include-source"
        "--version-suffix ${rVersion}"
      ];
      # dotnetFlags = [ "-v:n" ]; # diag
      dotnet-sdk = pkgs.dotnet-sdk_10;
      dotnet-runtime = pkgs.dotnet-aspnetcore_10;
      src = pkgs.lib.cleanSource srcRoot;
      meta = with pkgs.lib; {
        description = "Spacebar Server, Typescript Edition (C# extensions)";
        homepage = "https://github.com/spacebarchat/server";
        license = licenses.agpl3Plus;
        maintainers = with maintainers; [ RorySys ];
        mainProgram = name;
      };
    }
    // {
      __nugetDeps = if args ? nugetDeps then args.nugetDeps else null;
    }
  )
  (
    builtins.removeAttrs args [
      "name"
      "nugetDeps"
      "projectReferences"
      "projectFile"
      "runtimeId"
      "useAppHost"
      "packNupkg"
      "srcRoot"
    ]
  )
)