diff options
Diffstat (limited to 'pkgs/development/tools/omnisharp-roslyn/default.nix')
-rw-r--r-- | pkgs/development/tools/omnisharp-roslyn/default.nix | 107 |
1 files changed, 18 insertions, 89 deletions
diff --git a/pkgs/development/tools/omnisharp-roslyn/default.nix b/pkgs/development/tools/omnisharp-roslyn/default.nix index a76e57ad4265b..7818273f80f3b 100644 --- a/pkgs/development/tools/omnisharp-roslyn/default.nix +++ b/pkgs/development/tools/omnisharp-roslyn/default.nix @@ -1,68 +1,9 @@ -{ lib, stdenv -, fetchFromGitHub -, fetchurl -, dotnetCorePackages -, makeWrapper -, unzip -, writeText -}: +{ lib, fetchFromGitHub, buildDotnetModule, dotnetCorePackages }: let - - dotnet-sdk = dotnetCorePackages.sdk_6_0; - - deps = map (package: stdenv.mkDerivation (with package; { - inherit pname version src; - - buildInputs = [ unzip ]; - unpackPhase = '' - unzip $src - chmod -R u+r . - function traverseRename () { - for e in * - do - t="$(echo "$e" | sed -e "s/%20/\ /g" -e "s/%2B/+/g")" - [ "$t" != "$e" ] && mv -vn "$e" "$t" - if [ -d "$t" ] - then - cd "$t" - traverseRename - cd .. - fi - done - } - - traverseRename - ''; - - installPhase = '' - runHook preInstall - - package=$out/lib/dotnet/${pname}/${version} - mkdir -p $package - cp -r . $package - echo "{}" > $package/.nupkg.metadata - - runHook postInstall - ''; - - dontFixup = true; - })) - (import ./deps.nix { inherit fetchurl; }); - - nuget-config = writeText "NuGet.Config" '' - <?xml version="1.0" encoding="utf-8"?> - <configuration> - <packageSources> - <clear /> - </packageSources> - <fallbackPackageFolders> - ${lib.concatStringsSep "\n" (map (package: "<add key=\"${package}\" value=\"${package}/lib/dotnet\"/>") deps)} - </fallbackPackageFolders> - </configuration> - ''; - -in stdenv.mkDerivation rec { + sdkVersion = dotnetCorePackages.sdk_6_0.version; +in +buildDotnetModule rec { pname = "omnisharp-roslyn"; version = "1.38.2"; @@ -73,45 +14,33 @@ in stdenv.mkDerivation rec { sha256 = "7XJIdotfffu8xo+S6xlc1zcK3oY9QIg1CJhCNJh5co0="; }; - nativeBuildInputs = [ makeWrapper dotnet-sdk ]; + projectFile = "src/OmniSharp.Stdio.Driver/OmniSharp.Stdio.Driver.csproj"; + nugetDeps = ./deps.nix; + + dotnetInstallFlags = [ "--framework net6.0" ]; postPatch = '' # Relax the version requirement substituteInPlace global.json \ - --replace '6.0.100' '${dotnet-sdk.version}' + --replace '6.0.100' '${sdkVersion}' ''; - buildPhase = '' - runHook preBuild - - HOME=$(pwd)/fake-home dotnet msbuild -r \ - -p:Configuration=Release \ - -p:RestoreConfigFile=${nuget-config} \ - src/OmniSharp.Stdio.Driver/OmniSharp.Stdio.Driver.csproj - - runHook postBuild - ''; - - installPhase = '' - mkdir -p $out/bin - cp -r bin/Release/OmniSharp.Stdio.Driver/net6.0 $out/src - + postFixup = '' # Delete files to mimick hacks in https://github.com/OmniSharp/omnisharp-roslyn/blob/bdc14ca/build.cake#L594 - rm $out/src/NuGet.*.dll - rm $out/src/System.Configuration.ConfigurationManager.dll - - makeWrapper $out/src/OmniSharp $out/bin/omnisharp \ - --prefix DOTNET_ROOT : ${dotnet-sdk} \ - --suffix PATH : ${dotnet-sdk}/bin + rm $out/lib/omnisharp-roslyn/NuGet.*.dll + rm $out/lib/omnisharp-roslyn/System.Configuration.ConfigurationManager.dll ''; meta = with lib; { description = "OmniSharp based on roslyn workspaces"; homepage = "https://github.com/OmniSharp/omnisharp-roslyn"; platforms = platforms.unix; + sourceProvenance = with sourceTypes; [ + fromSource + binaryNativeCode # dependencies + ]; license = licenses.mit; - maintainers = with maintainers; [ tesq0 ericdallo corngood ]; - mainProgram = "omnisharp"; + maintainers = with maintainers; [ tesq0 ericdallo corngood mdarocha ]; + mainProgram = "OmniSharp"; }; - } |