From c8c02ddfdc0804d460ddc876d0a60e4fd35d9c05 Mon Sep 17 00:00:00 2001 From: Christoph Ruegg Date: Fri, 17 Jan 2014 23:58:25 +0100 Subject: [PATCH] Build FAKE: use build parameter to specify build mode --- build.fsx | 62 ++++++++++++++----- .../FSharp/MathNet.Numerics.FSharp.nuspec | 2 +- build/NuGet/Numerics/MathNet.Numerics.nuspec | 2 +- 3 files changed, 47 insertions(+), 19 deletions(-) diff --git a/build.fsx b/build.fsx index 366ee640..61603f02 100644 --- a/build.fsx +++ b/build.fsx @@ -26,42 +26,70 @@ Target "Prepare" DoNothing Target "BuildMain" (fun _ -> !! "MathNet.Numerics.sln" |> MSBuildRelease "" "Rebuild" |> ignore) Target "BuildNet35" (fun _ -> !! "MathNet.Numerics.Net35Only.sln" |> MSBuildRelease "" "Rebuild" |> ignore) -Target "BuildAll" (fun _ -> !! "MathNet.Numerics.Portable.sln" |> MSBuildRelease "" "Rebuild" |> ignore) +Target "BuildFull" (fun _ -> !! "MathNet.Numerics.Portable.sln" |> MSBuildRelease "" "Rebuild" |> ignore) +Target "Build" DoNothing -Target "Main" DoNothing -Target "Net35" DoNothing -Target "All" DoNothing - -"Prepare" ==> "BuildMain" ==> "Main" -"Prepare" ==> "BuildNet35" ==> "Net35" -"Prepare" ==> "BuildAll" ==> "All" +"Prepare" + =?> ("BuildNet35", hasBuildParam "net35") + =?> ("BuildFull", hasBuildParam "full") + =?> ("BuildMain", not (hasBuildParam "full" || hasBuildParam "net35")) + ==> "Build" // TEST -Target "RunTests" (fun _ -> +Target "Test" (fun _ -> !! "out/test/*/*UnitTests*.dll" |> NUnit (fun p -> { p with DisableShadowCopy = true - TimeOut = TimeSpan.FromMinutes 20. + TimeOut = TimeSpan.FromMinutes 30. OutputFile = "TestResults.xml" }) ) -"RunTests" ==> "Main" -"RunTests" ==> "Net35" -"RunTests" ==> "All" +"Build" ==> "Test" // DOCUMENTATION -Target "BuildDocs" DoNothing +Target "Docs" DoNothing + +"Build" ==> "Docs" + +// NUGET -// RELEASE +Target "NuGetPackage" DoNothing + +"BuildFull" ==> "NuGetPackage" + + +// RUN Target "Release" DoNothing -"All" ==> "BuildDocs" ==> "Release" +"Test" ==> "Release" +"Docs" ==> "Release" +"NuGetPackage" ==> "Release" + +Target "All" DoNothing +"Build" ==> "Test" ==> "All" + +RunTargetOrDefault "All" + + +// EXAMPLES + +// * build.cmd: normal build (.Net 4.0), run unit tests + +// * build.cmd All: normal build (.Net 4.0), run unit tests +// * build.cmd All full: full build (.Net 3.5, 4.0, PCL), run all unit tests +// * build.cmd All net35: build (.Net 3.5), run unit tests + +// * build.cmd Build: normal build (.Net 4.0) +// * build.cmd Build full: full build (.Net 3.5, 4.0, PCL) +// * build.cmd Build net35: build (.Net 3.5) +// * build.cmd Clean: cleanup build artifacts +// * build.cmd Docs: generate documentation, normal build +// * build.cmd NuGetPackage: generate NuGet packages, full build -RunTargetOrDefault "Main" diff --git a/build/NuGet/FSharp/MathNet.Numerics.FSharp.nuspec b/build/NuGet/FSharp/MathNet.Numerics.FSharp.nuspec index 6b76fecc..b9b54552 100644 --- a/build/NuGet/FSharp/MathNet.Numerics.FSharp.nuspec +++ b/build/NuGet/FSharp/MathNet.Numerics.FSharp.nuspec @@ -4,7 +4,7 @@ MathNet.Numerics.FSharp 1.0.0 Math.NET Numerics for F# - F# Modules for Math.NET Numerics, providing methods and algorithms for numerical computations in science, engineering and every day use. F# 3.0 on .Net 4, SL5, Win8, WP8, PCL 47 & 136, Mono, Xamarin Andoid/iOS. + F# Modules for Math.NET Numerics, providing methods and algorithms for numerical computations in science, engineering and every day use. F# 3.0 on .Net 4, SL5, Win8, WP8, PCL 47 and 136, Mono, Xamarin Andoid/iOS. F# Modules for Math.NET Numerics, the numerical foundation of the Math.NET project, aiming to provide methods and algorithms for numerical computations in science, engineering and every day use. Numerics is the result of merging dnAnalytics with Math.NET Iridium and is intended to replace both. Supports .Net 4.0 and Mono (Windows, Linux, Mac), PCL Portable Profiles 47 and 136 (Silverlight 5, Windows Phone 8, .NET for Windows Store Apps), and Andoid/iOS via Xamarin. Christoph Ruegg, Marcus Cuda, Jurgen Van Gael Christoph Ruegg diff --git a/build/NuGet/Numerics/MathNet.Numerics.nuspec b/build/NuGet/Numerics/MathNet.Numerics.nuspec index b003bdd6..222adb0a 100644 --- a/build/NuGet/Numerics/MathNet.Numerics.nuspec +++ b/build/NuGet/Numerics/MathNet.Numerics.nuspec @@ -4,7 +4,7 @@ MathNet.Numerics 1.0.0 Math.NET Numerics - Math.NET Numerics, providing methods and algorithms for numerical computations in science, engineering and every day use. .Net 4, .Net 3.5, SL5, Win8, WP8, PCL 47 & 136, Mono, Xamarin Andoid/iOS. + Math.NET Numerics, providing methods and algorithms for numerical computations in science, engineering and every day use. .Net 4, .Net 3.5, SL5, Win8, WP8, PCL 47 and 136, Mono, Xamarin Andoid/iOS. Math.NET Numerics is the numerical foundation of the Math.NET project, aiming to provide methods and algorithms for numerical computations in science, engineering and every day use. Numerics is the result of merging dnAnalytics with Math.NET Iridium and is intended to replace both. Supports .Net 4.0, .Net 3.5 and Mono (Windows, Linux, Mac), PCL Portable Profiles 47 and 136 (Silverlight 5, Windows Phone 8, .NET for Windows Store Apps), and Andoid/iOS via Xamarin. Christoph Ruegg, Marcus Cuda, Jurgen Van Gael Christoph Ruegg