dafny: move to separate file
This commit is contained in:
parent
54149f4b1d
commit
d4f814d956
61
pkgs/applications/science/logic/dafny/default.nix
Normal file
61
pkgs/applications/science/logic/dafny/default.nix
Normal file
@ -0,0 +1,61 @@
|
||||
{ lib
|
||||
, buildDotnetModule
|
||||
, fetchFromGitHub
|
||||
, writeScript
|
||||
, jdk11
|
||||
, z3
|
||||
}:
|
||||
|
||||
buildDotnetModule rec {
|
||||
pname = "Dafny";
|
||||
version = "4.0.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "dafny-lang";
|
||||
repo = "dafny";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-7mVFDORbu9KsJ4IH8PrrpXE7xFrWVTyBmRaL8Kt/ghY=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
cp ${writeScript "fake-gradlew-for-dafny" ''
|
||||
mkdir -p build/libs/
|
||||
javac $(find -name "*.java" | grep "^./src/main") -d classes
|
||||
jar cf build/libs/DafnyRuntime.jar -C classes dafny
|
||||
''} Source/DafnyRuntime/DafnyRuntimeJava/gradlew
|
||||
|
||||
# Needed to fix
|
||||
# "error NETSDK1129: The 'Publish' target is not supported without specifying a target framework. The current project targets multiple frameworks, you must specify the framework for the published application."
|
||||
substituteInPlace Source/DafnyRuntime/DafnyRuntime.csproj \
|
||||
--replace TargetFrameworks TargetFramework \
|
||||
--replace "netstandard2.0;net452" net6.0
|
||||
'';
|
||||
|
||||
buildInputs = [ jdk11 ];
|
||||
nugetDeps = ./deps.nix;
|
||||
|
||||
# Build just these projects. Building Source/Dafny.sln includes a bunch of
|
||||
# unnecessary components like tests.
|
||||
projectFile = [
|
||||
"Source/Dafny/Dafny.csproj"
|
||||
"Source/DafnyRuntime/DafnyRuntime.csproj"
|
||||
"Source/DafnyLanguageServer/DafnyLanguageServer.csproj"
|
||||
];
|
||||
|
||||
executables = [ "Dafny" ];
|
||||
|
||||
# Help Dafny find z3
|
||||
makeWrapperArgs = [ "--prefix PATH : ${lib.makeBinPath [ z3 ]}" ];
|
||||
|
||||
postFixup = ''
|
||||
ln -s "$out/bin/Dafny" "$out/bin/dafny" || true
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "A programming language with built-in specification constructs";
|
||||
homepage = "https://research.microsoft.com/dafny";
|
||||
maintainers = with maintainers; [ layus ];
|
||||
license = licenses.mit;
|
||||
platforms = with platforms; (linux ++ darwin);
|
||||
};
|
||||
}
|
@ -37678,7 +37678,7 @@ with pkgs;
|
||||
|
||||
### SCIENCE/PROGRAMMING
|
||||
|
||||
dafny = dotnetPackages.Dafny;
|
||||
dafny = callPackage ../applications/science/logic/dafny { };
|
||||
|
||||
groove = callPackage ../applications/science/programming/groove { };
|
||||
|
||||
|
@ -172,60 +172,6 @@ let self = dotnetPackages // overrides; dotnetPackages = with self; {
|
||||
};
|
||||
};
|
||||
|
||||
Dafny = buildDotnetModule rec {
|
||||
pname = "Dafny";
|
||||
version = "4.0.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "dafny-lang";
|
||||
repo = "dafny";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-7mVFDORbu9KsJ4IH8PrrpXE7xFrWVTyBmRaL8Kt/ghY=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
cp ${pkgs.writeScript "fake-gradlew-for-dafny" ''
|
||||
mkdir -p build/libs/
|
||||
javac $(find -name "*.java" | grep "^./src/main") -d classes
|
||||
jar cf build/libs/DafnyRuntime.jar -C classes dafny
|
||||
''} Source/DafnyRuntime/DafnyRuntimeJava/gradlew
|
||||
|
||||
# Needed to fix
|
||||
# "error NETSDK1129: The 'Publish' target is not supported without specifying a target framework. The current project targets multiple frameworks, you must specify the framework for the published application."
|
||||
substituteInPlace Source/DafnyRuntime/DafnyRuntime.csproj \
|
||||
--replace TargetFrameworks TargetFramework \
|
||||
--replace "netstandard2.0;net452" net6.0
|
||||
'';
|
||||
|
||||
buildInputs = [ pkgs.jdk11 ];
|
||||
nugetDeps = ../development/dotnet-modules/dafny-deps.nix;
|
||||
|
||||
# Build just these projects. Building Source/Dafny.sln includes a bunch of
|
||||
# unnecessary components like tests.
|
||||
projectFile = [
|
||||
"Source/Dafny/Dafny.csproj"
|
||||
"Source/DafnyRuntime/DafnyRuntime.csproj"
|
||||
"Source/DafnyLanguageServer/DafnyLanguageServer.csproj"
|
||||
];
|
||||
|
||||
executables = [ "Dafny" ];
|
||||
|
||||
# Help Dafny find z3
|
||||
makeWrapperArgs = [ "--prefix PATH : ${lib.makeBinPath [ z3 ]}" ];
|
||||
|
||||
postFixup = ''
|
||||
ln -s "$out/bin/Dafny" "$out/bin/dafny" || true
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "A programming language with built-in specification constructs";
|
||||
homepage = "https://research.microsoft.com/dafny";
|
||||
maintainers = with maintainers; [ layus ];
|
||||
license = licenses.mit;
|
||||
platforms = with platforms; (linux ++ darwin);
|
||||
};
|
||||
};
|
||||
|
||||
MonoAddins = buildDotnetPackage rec {
|
||||
pname = "Mono.Addins";
|
||||
version = "1.2";
|
||||
|
Loading…
Reference in New Issue
Block a user