diff --git a/build.fsx b/build.fsx index 712292ba..8046ee0d 100644 --- a/build.fsx +++ b/build.fsx @@ -54,7 +54,7 @@ let numericsFSharpStrongNameNuGetPackage = nugetPackage "MathNet.Numerics.FSharp let numericsProject = project "MathNet.Numerics" "src/Numerics/Numerics.csproj" [numericsNuGetPackage; numericsStrongNameNuGetPackage] let numericsFsharpProject = project "MathNet.Numerics.FSharp" "src/FSharp/FSharp.fsproj" [numericsFSharpNuGetPackage; numericsFSharpStrongNameNuGetPackage] -let numericsSolution = solution "Numerics" "MathNet.Numerics.sln" [numericsProject; numericsFsharpProject] +let numericsSolution = solution "Numerics" "MathNet.Numerics.sln" [numericsProject; numericsFsharpProject] [numericsZipPackage; numericsStrongNameZipPackage] // DATA EXTENSION PACKAGES @@ -69,7 +69,7 @@ let dataMatlabStrongNameNuGetPackage = nugetPackage "MathNet.Numerics.Data.Matla let dataTextProject = project "MathNet.Numerics.Data.Text" "src/Data/Text/Text.csproj" [dataTextNuGetPackage; dataTextStrongNameNuGetPackage] let dataMatlabProject = project "MathNet.Numerics.Data.Matlab" "src/Data/Matlab/Matlab.csproj" [dataMatlabNuGetPackage; dataMatlabStrongNameNuGetPackage] -let dataSolution = solution "Data" "MathNet.Numerics.Data.sln" [dataTextProject; dataMatlabProject] +let dataSolution = solution "Data" "MathNet.Numerics.Data.sln" [dataTextProject; dataMatlabProject] [dataZipPackage; dataStrongNameZipPackage] // MKL NATIVE PROVIDER PACKAGES @@ -552,11 +552,11 @@ Target "PublishMirrors" (fun _ -> publishMirrors ()) Target "PublishDocs" (fun _ -> publishDocs numericsRelease) Target "PublishApi" (fun _ -> publishApi numericsRelease) -Target "PublishArchive" (fun _ -> publishArchive numericsSolution.OutputZipDir numericsSolution.OutputNuGetDir [numericsZipPackage; numericsStrongNameZipPackage] [numericsNuGetPackage; numericsFSharpNuGetPackage; numericsStrongNameNuGetPackage; numericsFSharpStrongNameNuGetPackage]) -Target "DataPublishArchive" (fun _ -> publishArchive dataSolution.OutputZipDir dataSolution.OutputNuGetDir [dataZipPackage; dataStrongNameZipPackage] [dataTextNuGetPackage; dataMatlabNuGetPackage; dataTextStrongNameNuGetPackage; dataMatlabStrongNameNuGetPackage]) -Target "MklPublishArchive" (fun _ -> publishArchive "out/MKL/packages/Zip" "out/MKL/packages/NuGet" [mklWinZipPackage; mklLinuxZipPackage] [mklWinNuGetPackage; mklWin32NuGetPackage; mklWin64NuGetPackage; mklLinuxNuGetPackage; mklLinux32NuGetPackage; mklLinux64NuGetPackage]) -Target "CudaPublishArchive" (fun _ -> publishArchive "out/CUDA/packages/Zip" "out/CUDA/packages/NuGet" [cudaWinZipPackage] [cudaWinNuGetPackage]) -Target "OpenBlasPublishArchive" (fun _ -> publishArchive "out/OpenBLAS/packages/Zip" "out/OpenBLAS/packages/NuGet" [openBlasWinZipPackage] [openBlasWinNuGetPackage]) +Target "PublishArchive" (fun _ -> publishArchive numericsSolution) +Target "DataPublishArchive" (fun _ -> publishArchive dataSolution) +Target "MklPublishArchive" (fun _ -> publishArchiveManual "out/MKL/packages/Zip" "out/MKL/packages/NuGet" [mklWinZipPackage; mklLinuxZipPackage] [mklWinNuGetPackage; mklWin32NuGetPackage; mklWin64NuGetPackage; mklLinuxNuGetPackage; mklLinux32NuGetPackage; mklLinux64NuGetPackage]) +Target "CudaPublishArchive" (fun _ -> publishArchiveManual "out/CUDA/packages/Zip" "out/CUDA/packages/NuGet" [cudaWinZipPackage] [cudaWinNuGetPackage]) +Target "OpenBlasPublishArchive" (fun _ -> publishArchiveManual "out/OpenBLAS/packages/Zip" "out/OpenBLAS/packages/NuGet" [openBlasWinZipPackage] [openBlasWinNuGetPackage]) Target "PublishNuGet" (fun _ -> publishNuGet !! (numericsSolution.OutputNuGetDir "/*.nupkg")) Target "DataPublishNuGet" (fun _ -> publishNuGet !! (dataSolution.OutputNuGetDir "/*.nupkg")) diff --git a/build/build-framework.fsx b/build/build-framework.fsx index d74c2405..1246c5f7 100644 --- a/build/build-framework.fsx +++ b/build/build-framework.fsx @@ -121,6 +121,7 @@ type Solution = SolutionFile: string Projects: Project list Release: Release + ZipPackages: ZipPackage list OutputDir: string OutputLibDir: string OutputLibStrongNameDir: string @@ -175,11 +176,12 @@ let project assemblyName projectFile nuGetPackages = NuGetPackages = nuGetPackages Release = nuGetPackages |> List.map (fun p -> p.Release) |> List.distinct |> List.exactlyOne } -let solution key solutionFile projects = +let solution key solutionFile projects zipPackages = { Solution.Key = key SolutionFile = solutionFile Projects = projects - Release = projects |> List.map (fun p -> p.Release) |> List.distinct |> List.exactlyOne + ZipPackages = zipPackages + Release = List.concat [ projects |> List.map (fun p -> p.Release); zipPackages |> List.map (fun p -> p.Release) ] |> List.distinct |> List.exactlyOne OutputDir = "out" key OutputLibDir = "out" key "Lib" OutputLibStrongNameDir = "out" key "Lib-StrongName" @@ -548,7 +550,7 @@ let publishNuGetToArchive (package:NuGetPackage) archivePath nupkgFile = !! (tempDir "*.nuspec") |> Copy archiveDir DeleteDir tempDir -let publishArchive zipOutPath nugetOutPath (zipPackages:ZipPackage list) (nugetPackages:NuGetPackage list) = +let publishArchiveManual zipOutPath nugetOutPath (zipPackages:ZipPackage list) (nugetPackages:NuGetPackage list) = let archivePath = (environVarOrFail "MathNetReleaseArchive") "Math.NET Numerics" if directoryExists archivePath |> not then failwith "Release archive directory does not exists. Safety Check failed." for zipPackage in zipPackages do @@ -563,3 +565,10 @@ let publishArchive zipOutPath nugetOutPath (zipPackages:ZipPackage list) (nugetP let symbolsFile = nugetOutPath sprintf "%s.%s.symbols.nupkg" nugetPackage.Id nugetPackage.Release.PackageVersion if FileSystemHelper.fileExists symbolsFile then symbolsFile |> CopyFile (archivePath "Symbols") + +let publishArchive (solution:Solution) = + let zipOutPath = solution.OutputZipDir + let nugetOutPath = solution.OutputNuGetDir + let zipPackages = solution.ZipPackages + let nugetPackages = solution.Projects |> List.collect (fun p -> p.NuGetPackages) |> List.distinct + publishArchiveManual zipOutPath nugetOutPath zipPackages nugetPackages