diff --git a/build.fsx b/build.fsx index 03eb55c9..920b48b6 100644 --- a/build.fsx +++ b/build.fsx @@ -1,5 +1,18 @@ -// -------------------------------------------------------------------------------------- +// __ __ _ _ _ _ ______ _______ +// | \/ | | | | | | \ | | ____|__ __| +// | \ / | __ _| |_| |__ | \| | |__ | | +// | |\/| |/ _` | __| '_ \ | . ` | __| | | +// | | | | (_| | |_| | | |_| |\ | |____ | | +// |_| |_|\__,_|\__|_| |_(_)_| \_|______| |_| +// +// Math.NET Numerics - http://numerics.mathdotnet.com +// Copyright (c) Math.NET - Open Source MIT/X11 License // FAKE build script, see http://fsharp.github.io/FAKE +// + + +// -------------------------------------------------------------------------------------- +// Prelude // -------------------------------------------------------------------------------------- #I "packages/FAKE/tools" @@ -13,6 +26,26 @@ open System Environment.CurrentDirectory <- __SOURCE_DIRECTORY__ +Target "Start" DoNothing +Target "Clean" (fun _ -> + CleanDirs [ "obj" ] + CleanDirs [ "out/api"; "out/docs"; "out/packages" ] + CleanDirs [ "out/lib/Net35"; "out/lib/Net40"; "out/lib/Profile47"; "out/lib/Profile344" ] + CleanDirs [ "out/test/Net35"; "out/test/Net40"; "out/test/Profile47"; "out/test/Profile344" ] + CleanDirs [ "out/lib-signed/Net40" ] + CleanDirs [ "out/test-signed/Net40" ]) +Target "RestorePackages" RestorePackages +Target "Prepare" DoNothing + +"Start" + =?> ("Clean", not (hasBuildParam "incremental")) + ==> "RestorePackages" + ==> "Prepare" + + +// -------------------------------------------------------------------------------------- +// Math.NET Numerics Core +// -------------------------------------------------------------------------------------- // PROJECT INFO @@ -89,18 +122,7 @@ let fsharpSignedPack = "..\..\src\FSharp\**\*.fs", Some "src/Common", None ] } -// PREPARE - -Target "Start" DoNothing -Target "RestorePackages" RestorePackages - -Target "Clean" (fun _ -> - CleanDirs [ "obj" ] - CleanDirs [ "out/api"; "out/docs"; "out/packages" ] - CleanDirs [ "out/lib/Net35"; "out/lib/Net40"; "out/lib/Profile47"; "out/lib/Profile344" ] - CleanDirs [ "out/test/Net35"; "out/test/Net40"; "out/test/Profile47"; "out/test/Profile344" ] - CleanDirs [ "out/lib-signed/Net40" ] - CleanDirs [ "out/test-signed/Net40" ]) +// VERSION Target "AssemblyInfo" (fun _ -> BulkReplaceAssemblyInfoVersions "src/" (fun f -> @@ -109,13 +131,7 @@ Target "AssemblyInfo" (fun _ -> AssemblyFileVersion = assemblyVersion AssemblyInformationalVersion = packageVersion })) -Target "Prepare" DoNothing - -"Start" - =?> ("Clean", not (hasBuildParam "incremental")) - ==> "RestorePackages" - ==> "AssemblyInfo" - ==> "Prepare" +"Prepare" ==> "AssemblyInfo" // BUILD @@ -131,6 +147,7 @@ Target "BuildSigned" (fun _ -> buildSigned !! "MathNet.Numerics.sln") Target "Build" DoNothing "Prepare" + ==> "AssemblyInfo" =?> ("BuildNet35", hasBuildParam "net35") =?> ("BuildSigned", hasBuildParam "signed" || hasBuildParam "release") =?> ("BuildAll", hasBuildParam "all" || hasBuildParam "release") @@ -138,19 +155,6 @@ Target "Build" DoNothing ==> "Build" -// NATIVE BUILD - -let buildx86 subject = MSBuild "" (if hasBuildParam "incremental" then "Build" else "Rebuild") [("Configuration","Release"); ("Platform","Win32")] subject |> ignore -let buildx64 subject = MSBuild "" (if hasBuildParam "incremental" then "Build" else "Rebuild") [("Configuration","Release"); ("Platform","x64")] subject |> ignore - -Target "BuildNativex86" (fun _ -> buildx86 !! "MathNet.Numerics.NativeProviders.sln") -Target "BuildNativex64" (fun _ -> buildx64 !! "MathNet.Numerics.NativeProviders.sln") -Target "BuildNative" DoNothing - -"Prepare" ==> "BuildNativex86" ==> "BuildNative" -"Prepare" ==> "BuildNativex64" ==> "BuildNative" - - // TEST let test target = @@ -165,7 +169,24 @@ Target "Test" (fun _ -> test !! "out/test/**/*UnitTests*.dll") "Build" ==> "Test" -// NATIVE TEST +// -------------------------------------------------------------------------------------- +// Math.NET Numerics Native Providers +// -------------------------------------------------------------------------------------- + +// BUILD + +let buildx86 subject = MSBuild "" (if hasBuildParam "incremental" then "Build" else "Rebuild") [("Configuration","Release"); ("Platform","Win32")] subject |> ignore +let buildx64 subject = MSBuild "" (if hasBuildParam "incremental" then "Build" else "Rebuild") [("Configuration","Release"); ("Platform","x64")] subject |> ignore + +Target "BuildNativex86" (fun _ -> buildx86 !! "MathNet.Numerics.NativeProviders.sln") +Target "BuildNativex64" (fun _ -> buildx64 !! "MathNet.Numerics.NativeProviders.sln") +Target "BuildNative" DoNothing + +"Prepare" ==> "BuildNativex86" ==> "BuildNative" +"Prepare" ==> "BuildNativex64" ==> "BuildNative" + + +// TEST Target "TestNativex86" (fun _ -> ActivateFinalTarget "CloseTestRunner" @@ -196,7 +217,11 @@ FinalTarget "CloseTestRunner" (fun _ -> "BuildNativex64" ==> "TestNativex64" ==> "TestNative" -// DOCUMENTATION +// -------------------------------------------------------------------------------------- +// Documentation +// -------------------------------------------------------------------------------------- + +// DOCS Target "CleanDocs" (fun _ -> CleanDirs ["out/docs"]) @@ -231,6 +256,10 @@ Target "Api" (fun _ -> "Build" ==> "CleanApi" ==> "Api" +// -------------------------------------------------------------------------------------- +// Packages +// -------------------------------------------------------------------------------------- + // ZIP Target "Zip" (fun _ -> @@ -296,8 +325,10 @@ Target "NuGet" (fun _ -> "Build" ==> "NuGet" -// PUBLISH +// -------------------------------------------------------------------------------------- +// Release/Publishing // These targets are interesting only for maintainers and require write permissions +// -------------------------------------------------------------------------------------- Target "PublishTag" (fun _ -> // inspired by Deedle/tpetricek @@ -335,7 +366,9 @@ Target "Publish" DoNothing "PublishApi" ==> "Publish" -// RUN +// -------------------------------------------------------------------------------------- +// Default Targets +// -------------------------------------------------------------------------------------- Target "All" DoNothing