Browse Source

Build: zip packages for native provider buils

pull/222/head
Christoph Ruegg 12 years ago
parent
commit
326e054fe8
  1. 162
      build.fsx

162
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

Loading…
Cancel
Save