From 326e054fe85f9ba7d6fc510af9e38b41af4259cd Mon Sep 17 00:00:00 2001 From: Christoph Ruegg Date: Fri, 13 Jun 2014 20:13:52 +0200 Subject: [PATCH] Build: zip packages for native provider buils --- build.fsx | 162 ++++++++++++++++++++++++++++-------------------------- 1 file changed, 85 insertions(+), 77 deletions(-) diff --git a/build.fsx b/build.fsx index c6f8626b..3b4ed9b2 100644 --- a/build.fsx +++ b/build.fsx @@ -44,9 +44,9 @@ Target "Prepare" DoNothing ==> "Prepare" -// -------------------------------------------------------------------------------------- +// ====================================================================================== // Math.NET Numerics Core -// -------------------------------------------------------------------------------------- +// ====================================================================================== // PROJECT INFO @@ -170,10 +170,75 @@ Target "Test" (fun _ -> test !! "out/test/**/*UnitTests*.dll") "Build" ==> "Test" -// -------------------------------------------------------------------------------------- +// ZIP + +Target "Zip" (fun _ -> + CleanDir "out/packages/Zip" + CleanDir "obj/Zip" + if not (hasBuildParam "signed") || hasBuildParam "release" then + CopyDir "obj/Zip/MathNet.Numerics" "out/lib" (fun f -> f.Contains("MathNet.Numerics.")) + Zip "obj/Zip/" (sprintf "out/packages/Zip/MathNet.Numerics-%s.zip" packageVersion) !! "obj/Zip/MathNet.Numerics/**/*.*" + if hasBuildParam "signed" || hasBuildParam "release" then + CopyDir "obj/Zip/MathNet.Numerics.Signed" "out/lib-signed" (fun f -> f.Contains("MathNet.Numerics.")) + Zip "obj/Zip/" (sprintf "out/packages/Zip/MathNet.Numerics.Signed-%s.zip" packageVersion) !! "obj/Zip/MathNet.Numerics.Signed/**/*.*" + CleanDir "obj/Zip") + +"Build" ==> "Zip" + + +// NUGET + +let nugetPack pack = + CleanDir "obj/NuGet" + CopyFile "obj/NuGet/license.txt" "LICENSE.md" + CopyFile "obj/NuGet/readme.txt" "RELEASENOTES.md" + + let update p = + { p with ToolPath = "tools/NuGet/NuGet.exe" + OutputPath = "out/packages/NuGet" + WorkingDir = "obj/NuGet" + Version = packageVersion + ReleaseNotes = releaseNotes + Project = pack.Id + Title = pack.Title + Summary = pack.Summary + Description = pack.Description + Tags = pack.Tags + Authors = pack.Authors + Dependencies = pack.Dependencies |> List.map (fun p -> (p, packageVersion)) + SymbolPackage = NugetSymbolPackage.Nuspec + Files = [ "license.txt", None, None; "readme.txt", None, None; ] @ pack.Files + Publish = false } + + NuGet (fun p -> update p) "build/MathNet.Numerics.nuspec" + + NuGet (fun p -> + let p' = update p in + { p' with Files = p'.Files |> List.choose (function + | (_, Some target, _) when target.StartsWith("src") -> None + | (s, t, None) -> Some (s, t, Some ("**/*.pdb")) + | (s, t, Some e) -> Some (s, t, Some (e + ";**/*.pdb"))) + SymbolPackage = NugetSymbolPackage.None }) + "build/MathNet.Numerics.nuspec" + + +Target "NuGet" (fun _ -> + CleanDir "out/packages/NuGet" + if hasBuildParam "signed" || hasBuildParam "release" then + nugetPack numericsSignedPack + nugetPack fsharpSignedPack + if hasBuildParam "all" || hasBuildParam "release" then + nugetPack numericsPack + nugetPack fsharpPack + CleanDir "obj/NuGet") + +"Build" ==> "NuGet" + + +// ====================================================================================== // Math.NET Numerics Native Providers // Requires a local installation of Intel MKL -// -------------------------------------------------------------------------------------- +// ====================================================================================== // PROJECT INFO @@ -247,9 +312,21 @@ FinalTarget "CloseTestRunner" (fun _ -> "Native64Build" ==> "Native64Test" ==> "NativeTest" -// -------------------------------------------------------------------------------------- +// ZIP + +Target "NativeZip" (fun _ -> + CleanDir "out/MKL/packages/Zip" + CleanDir "obj/MKL/Zip" + CopyDir "obj/MKL/Zip/MathNet.Numerics.MKL" "out/MKL" (fun f -> f.Contains("MathNet.Numerics.MKL.") || f.Contains("libiomp5md.dll")) + Zip "obj/MKL/Zip/" (sprintf "out/MKL/packages/Zip/MathNet.Numerics.MKL-%s.zip" nativePackageVersion) !! "obj/MKL/Zip/MathNet.Numerics.MKL/**/*.*" + CleanDir "obj/MKL/Zip") + +"NativeBuild" ==> "NativeZip" + + +// ====================================================================================== // Documentation -// -------------------------------------------------------------------------------------- +// ====================================================================================== // DOCS @@ -286,79 +363,10 @@ Target "Api" (fun _ -> "Build" ==> "CleanApi" ==> "Api" -// -------------------------------------------------------------------------------------- -// Packages -// -------------------------------------------------------------------------------------- - -// ZIP - -Target "Zip" (fun _ -> - CleanDir "out/packages/Zip" - CleanDir "obj/Zip" - if not (hasBuildParam "signed") || hasBuildParam "release" then - CopyDir "obj/Zip/MathNet.Numerics" "out/lib" (fun f -> f.Contains("MathNet.Numerics.")) - Zip "obj/Zip/" (sprintf "out/packages/Zip/MathNet.Numerics-%s.zip" packageVersion) !! "obj/Zip/MathNet.Numerics/**/*.*" - if hasBuildParam "signed" || hasBuildParam "release" then - CopyDir "obj/Zip/MathNet.Numerics.Signed" "out/lib-signed" (fun f -> f.Contains("MathNet.Numerics.")) - Zip "obj/Zip/" (sprintf "out/packages/Zip/MathNet.Numerics.Signed-%s.zip" packageVersion) !! "obj/Zip/MathNet.Numerics.Signed/**/*.*" - CleanDir "obj/Zip") - -"Build" ==> "Zip" - - -// NUGET - -let nugetPack pack = - CleanDir "obj/NuGet" - CopyFile "obj/NuGet/license.txt" "LICENSE.md" - CopyFile "obj/NuGet/readme.txt" "RELEASENOTES.md" - - let update p = - { p with ToolPath = "tools/NuGet/NuGet.exe" - OutputPath = "out/packages/NuGet" - WorkingDir = "obj/NuGet" - Version = packageVersion - ReleaseNotes = releaseNotes - Project = pack.Id - Title = pack.Title - Summary = pack.Summary - Description = pack.Description - Tags = pack.Tags - Authors = pack.Authors - Dependencies = pack.Dependencies |> List.map (fun p -> (p, packageVersion)) - SymbolPackage = NugetSymbolPackage.Nuspec - Files = [ "license.txt", None, None; "readme.txt", None, None; ] @ pack.Files - Publish = false } - - NuGet (fun p -> update p) "build/MathNet.Numerics.nuspec" - - NuGet (fun p -> - let p' = update p in - { p' with Files = p'.Files |> List.choose (function - | (_, Some target, _) when target.StartsWith("src") -> None - | (s, t, None) -> Some (s, t, Some ("**/*.pdb")) - | (s, t, Some e) -> Some (s, t, Some (e + ";**/*.pdb"))) - SymbolPackage = NugetSymbolPackage.None }) - "build/MathNet.Numerics.nuspec" - - -Target "NuGet" (fun _ -> - CleanDir "out/packages/NuGet" - if hasBuildParam "signed" || hasBuildParam "release" then - nugetPack numericsSignedPack - nugetPack fsharpSignedPack - if hasBuildParam "all" || hasBuildParam "release" then - nugetPack numericsPack - nugetPack fsharpPack - CleanDir "obj/NuGet") - -"Build" ==> "NuGet" - - -// -------------------------------------------------------------------------------------- +// ====================================================================================== // Release/Publishing // Requires permissions; intended only for maintainers -// -------------------------------------------------------------------------------------- +// ====================================================================================== Target "PublishTag" (fun _ -> // inspired by Deedle/tpetricek