From 45fe774c849ece7f174cdacb26427993ee941975 Mon Sep 17 00:00:00 2001 From: Christoph Ruegg Date: Sat, 23 Jun 2018 21:40:43 +0200 Subject: [PATCH] Build: migrate more of native providers to new approach --- MathNet.Numerics.CUDA.sln | 225 +++++++++++++++++ MathNet.Numerics.MKL.sln | 226 ++++++++++++++++++ MathNet.Numerics.OpenBLAS.sln | 223 +++++++++++++++++ build.fsx | 118 ++++++--- build/build-framework.fsx | 116 +++++++-- src/Benchmark/Benchmark.csproj | 5 + src/NativeProviders/Common/lapack_common.h | 4 +- src/NativeProviders/Common/wrapper_common.h | 6 +- src/NativeProviders/OpenBLAS/lapack.h | 2 - src/NativeProviders/OpenBLAS/resource.h | 2 +- .../Windows/ATLAS/ATLASWrapper.vcxproj | 11 +- .../Windows/CUDA/CUDAWrapper.vcxproj | 11 +- .../Windows/MKL/MKLWrapper.vcxproj | 30 +-- .../Windows/OpenBLAS/OpenBLASWrapper.vcxproj | 15 +- src/Numerics.Tests/Numerics.Tests.CUDA.csproj | 5 +- src/Numerics.Tests/Numerics.Tests.MKL.csproj | 5 +- .../Numerics.Tests.OpenBLAS.csproj | 5 +- src/Numerics.Tests/Numerics.Tests.csproj | 3 + 18 files changed, 909 insertions(+), 103 deletions(-) create mode 100644 MathNet.Numerics.CUDA.sln create mode 100644 MathNet.Numerics.MKL.sln create mode 100644 MathNet.Numerics.OpenBLAS.sln diff --git a/MathNet.Numerics.CUDA.sln b/MathNet.Numerics.CUDA.sln new file mode 100644 index 00000000..71c4c878 --- /dev/null +++ b/MathNet.Numerics.CUDA.sln @@ -0,0 +1,225 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +VisualStudioVersion = 15.0.27130.2026 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Common", "Common", "{5A0892FF-82CE-40FC-BCE1-73810C615F52}" + ProjectSection(SolutionItems) = preProject + src\NativeProviders\Common\lapack_common.h = src\NativeProviders\Common\lapack_common.h + src\NativeProviders\Common\WindowsDLL.cpp = src\NativeProviders\Common\WindowsDLL.cpp + src\NativeProviders\Common\wrapper_common.h = src\NativeProviders\Common\wrapper_common.h + EndProjectSection +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Numerics", "src\Numerics\Numerics.csproj", "{B7CAE5F4-A23F-4438-B5BE-41226618B695}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CUDA", "src\NativeProviders\Windows\CUDA\CUDAWrapper.vcxproj", "{5A52B796-7F41-4C90-8DE2-F3F391C4482C}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Numerics.Tests.CUDA", "src\Numerics.Tests\Numerics.Tests.CUDA.csproj", "{E79C0395-01DC-4BC9-B86C-ED45790892C5}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestData", "src\TestData\TestData.csproj", "{AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Readme", "Readme", "{77CF160D-3AE0-45A2-8224-6322C28C2685}" + ProjectSection(SolutionItems) = preProject + README.md = README.md + RELEASENOTES-CUDA.md = RELEASENOTES-CUDA.md + RELEASENOTES.md = RELEASENOTES.md + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Docs", "Docs", "{9275D8F1-84B4-404F-AC1F-EE1211C9F744}" + ProjectSection(SolutionItems) = preProject + docs\content\Build.md = docs\content\Build.md + docs\content\Compatibility.md = docs\content\Compatibility.md + docs\content\Contributing.md = docs\content\Contributing.md + docs\content\Contributors.md = docs\content\Contributors.md + docs\content\License.md = docs\content\License.md + docs\content\MKL.md = docs\content\MKL.md + docs\content\Packages.md = docs\content\Packages.md + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Build", "Build", "{97C9717A-68C7-4C86-B30E-E4FC54C43A13}" + ProjectSection(SolutionItems) = preProject + build\build-framework.fsx = build\build-framework.fsx + build.fsx = build.fsx + paket.dependencies = paket.dependencies + paket.lock = paket.lock + EndProjectSection +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Benchmark", "src\Benchmark\Benchmark.csproj", "{F2CA84AE-4B7C-46F5-9889-82BC5F9F0F4E}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Debug|Mixed Platforms = Debug|Mixed Platforms + Debug|Win32 = Debug|Win32 + Debug|x64 = Debug|x64 + Release|Any CPU = Release|Any CPU + Release|Mixed Platforms = Release|Mixed Platforms + Release|Win32 = Release|Win32 + Release|x64 = Release|x64 + Release-CUDA|Any CPU = Release-CUDA|Any CPU + Release-CUDA|Mixed Platforms = Release-CUDA|Mixed Platforms + Release-CUDA|Win32 = Release-CUDA|Win32 + Release-CUDA|x64 = Release-CUDA|x64 + Release-Signed|Any CPU = Release-Signed|Any CPU + Release-Signed|Mixed Platforms = Release-Signed|Mixed Platforms + Release-Signed|Win32 = Release-Signed|Win32 + Release-Signed|x64 = Release-Signed|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Debug|Win32.ActiveCfg = Debug|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Debug|Win32.Build.0 = Debug|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Debug|x64.ActiveCfg = Debug|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Debug|x64.Build.0 = Debug|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release|Any CPU.Build.0 = Release|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release|Win32.ActiveCfg = Release|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release|Win32.Build.0 = Release|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release|x64.ActiveCfg = Release|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release|x64.Build.0 = Release|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release-CUDA|Any CPU.ActiveCfg = Release|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release-CUDA|Any CPU.Build.0 = Release|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release-CUDA|Mixed Platforms.ActiveCfg = Release|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release-CUDA|Mixed Platforms.Build.0 = Release|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release-CUDA|Win32.ActiveCfg = Release|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release-CUDA|Win32.Build.0 = Release|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release-CUDA|x64.ActiveCfg = Release|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release-CUDA|x64.Build.0 = Release|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release-Signed|Any CPU.ActiveCfg = Release|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release-Signed|Any CPU.Build.0 = Release|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release-Signed|Mixed Platforms.ActiveCfg = Release|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release-Signed|Mixed Platforms.Build.0 = Release|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release-Signed|Win32.ActiveCfg = Release|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release-Signed|Win32.Build.0 = Release|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release-Signed|x64.ActiveCfg = Release|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release-Signed|x64.Build.0 = Release|Any CPU + {5A52B796-7F41-4C90-8DE2-F3F391C4482C}.Debug|Any CPU.ActiveCfg = Debug|Win32 + {5A52B796-7F41-4C90-8DE2-F3F391C4482C}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32 + {5A52B796-7F41-4C90-8DE2-F3F391C4482C}.Debug|Mixed Platforms.Build.0 = Debug|Win32 + {5A52B796-7F41-4C90-8DE2-F3F391C4482C}.Debug|Win32.ActiveCfg = Debug|Win32 + {5A52B796-7F41-4C90-8DE2-F3F391C4482C}.Debug|Win32.Build.0 = Debug|Win32 + {5A52B796-7F41-4C90-8DE2-F3F391C4482C}.Debug|x64.ActiveCfg = Debug|x64 + {5A52B796-7F41-4C90-8DE2-F3F391C4482C}.Debug|x64.Build.0 = Debug|x64 + {5A52B796-7F41-4C90-8DE2-F3F391C4482C}.Release|Any CPU.ActiveCfg = Release|Win32 + {5A52B796-7F41-4C90-8DE2-F3F391C4482C}.Release|Mixed Platforms.ActiveCfg = Release|Win32 + {5A52B796-7F41-4C90-8DE2-F3F391C4482C}.Release|Mixed Platforms.Build.0 = Release|Win32 + {5A52B796-7F41-4C90-8DE2-F3F391C4482C}.Release|Win32.ActiveCfg = Release|Win32 + {5A52B796-7F41-4C90-8DE2-F3F391C4482C}.Release|Win32.Build.0 = Release|Win32 + {5A52B796-7F41-4C90-8DE2-F3F391C4482C}.Release|x64.ActiveCfg = Release|x64 + {5A52B796-7F41-4C90-8DE2-F3F391C4482C}.Release|x64.Build.0 = Release|x64 + {5A52B796-7F41-4C90-8DE2-F3F391C4482C}.Release-CUDA|Any CPU.ActiveCfg = Release|Win32 + {5A52B796-7F41-4C90-8DE2-F3F391C4482C}.Release-CUDA|Mixed Platforms.ActiveCfg = Release|Win32 + {5A52B796-7F41-4C90-8DE2-F3F391C4482C}.Release-CUDA|Mixed Platforms.Build.0 = Release|Win32 + {5A52B796-7F41-4C90-8DE2-F3F391C4482C}.Release-CUDA|Win32.ActiveCfg = Release|Win32 + {5A52B796-7F41-4C90-8DE2-F3F391C4482C}.Release-CUDA|Win32.Build.0 = Release|Win32 + {5A52B796-7F41-4C90-8DE2-F3F391C4482C}.Release-CUDA|x64.ActiveCfg = Release|x64 + {5A52B796-7F41-4C90-8DE2-F3F391C4482C}.Release-CUDA|x64.Build.0 = Release|x64 + {5A52B796-7F41-4C90-8DE2-F3F391C4482C}.Release-Signed|Any CPU.ActiveCfg = Release|Win32 + {5A52B796-7F41-4C90-8DE2-F3F391C4482C}.Release-Signed|Mixed Platforms.ActiveCfg = Release|Win32 + {5A52B796-7F41-4C90-8DE2-F3F391C4482C}.Release-Signed|Mixed Platforms.Build.0 = Release|Win32 + {5A52B796-7F41-4C90-8DE2-F3F391C4482C}.Release-Signed|Win32.ActiveCfg = Release|Win32 + {5A52B796-7F41-4C90-8DE2-F3F391C4482C}.Release-Signed|Win32.Build.0 = Release|Win32 + {5A52B796-7F41-4C90-8DE2-F3F391C4482C}.Release-Signed|x64.ActiveCfg = Release|Win32 + {E79C0395-01DC-4BC9-B86C-ED45790892C5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E79C0395-01DC-4BC9-B86C-ED45790892C5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E79C0395-01DC-4BC9-B86C-ED45790892C5}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {E79C0395-01DC-4BC9-B86C-ED45790892C5}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {E79C0395-01DC-4BC9-B86C-ED45790892C5}.Debug|Win32.ActiveCfg = Debug|Any CPU + {E79C0395-01DC-4BC9-B86C-ED45790892C5}.Debug|x64.ActiveCfg = Debug|Any CPU + {E79C0395-01DC-4BC9-B86C-ED45790892C5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E79C0395-01DC-4BC9-B86C-ED45790892C5}.Release|Any CPU.Build.0 = Release|Any CPU + {E79C0395-01DC-4BC9-B86C-ED45790892C5}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {E79C0395-01DC-4BC9-B86C-ED45790892C5}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {E79C0395-01DC-4BC9-B86C-ED45790892C5}.Release|Win32.ActiveCfg = Release|Any CPU + {E79C0395-01DC-4BC9-B86C-ED45790892C5}.Release|Win32.Build.0 = Release|Any CPU + {E79C0395-01DC-4BC9-B86C-ED45790892C5}.Release|x64.ActiveCfg = Release|Any CPU + {E79C0395-01DC-4BC9-B86C-ED45790892C5}.Release|x64.Build.0 = Release|Any CPU + {E79C0395-01DC-4BC9-B86C-ED45790892C5}.Release-CUDA|Any CPU.ActiveCfg = Release|Any CPU + {E79C0395-01DC-4BC9-B86C-ED45790892C5}.Release-CUDA|Any CPU.Build.0 = Release|Any CPU + {E79C0395-01DC-4BC9-B86C-ED45790892C5}.Release-CUDA|Mixed Platforms.ActiveCfg = Release|Any CPU + {E79C0395-01DC-4BC9-B86C-ED45790892C5}.Release-CUDA|Mixed Platforms.Build.0 = Release|Any CPU + {E79C0395-01DC-4BC9-B86C-ED45790892C5}.Release-CUDA|Win32.ActiveCfg = Release|Any CPU + {E79C0395-01DC-4BC9-B86C-ED45790892C5}.Release-CUDA|Win32.Build.0 = Release|Any CPU + {E79C0395-01DC-4BC9-B86C-ED45790892C5}.Release-CUDA|x64.ActiveCfg = Release|Any CPU + {E79C0395-01DC-4BC9-B86C-ED45790892C5}.Release-CUDA|x64.Build.0 = Release|Any CPU + {E79C0395-01DC-4BC9-B86C-ED45790892C5}.Release-Signed|Any CPU.ActiveCfg = Release|Any CPU + {E79C0395-01DC-4BC9-B86C-ED45790892C5}.Release-Signed|Any CPU.Build.0 = Release|Any CPU + {E79C0395-01DC-4BC9-B86C-ED45790892C5}.Release-Signed|Mixed Platforms.ActiveCfg = Release|Any CPU + {E79C0395-01DC-4BC9-B86C-ED45790892C5}.Release-Signed|Mixed Platforms.Build.0 = Release|Any CPU + {E79C0395-01DC-4BC9-B86C-ED45790892C5}.Release-Signed|Win32.ActiveCfg = Release|Any CPU + {E79C0395-01DC-4BC9-B86C-ED45790892C5}.Release-Signed|x64.ActiveCfg = Release|Any CPU + {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Debug|Win32.ActiveCfg = Debug|Any CPU + {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Debug|x64.ActiveCfg = Debug|Any CPU + {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release|Any CPU.Build.0 = Release|Any CPU + {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release|Win32.ActiveCfg = Release|Any CPU + {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release|Win32.Build.0 = Release|Any CPU + {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release|x64.ActiveCfg = Release|Any CPU + {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release|x64.Build.0 = Release|Any CPU + {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release-CUDA|Any CPU.ActiveCfg = Release|Any CPU + {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release-CUDA|Any CPU.Build.0 = Release|Any CPU + {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release-CUDA|Mixed Platforms.ActiveCfg = Release|Any CPU + {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release-CUDA|Mixed Platforms.Build.0 = Release|Any CPU + {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release-CUDA|Win32.ActiveCfg = Release|Any CPU + {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release-CUDA|Win32.Build.0 = Release|Any CPU + {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release-CUDA|x64.ActiveCfg = Release|Any CPU + {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release-CUDA|x64.Build.0 = Release|Any CPU + {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release-Signed|Any CPU.ActiveCfg = Release|Any CPU + {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release-Signed|Any CPU.Build.0 = Release|Any CPU + {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release-Signed|Mixed Platforms.ActiveCfg = Release|Any CPU + {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release-Signed|Mixed Platforms.Build.0 = Release|Any CPU + {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release-Signed|Win32.ActiveCfg = Release|Any CPU + {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release-Signed|Win32.Build.0 = Release|Any CPU + {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release-Signed|x64.ActiveCfg = Release|Any CPU + {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release-Signed|x64.Build.0 = Release|Any CPU + {F2CA84AE-4B7C-46F5-9889-82BC5F9F0F4E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F2CA84AE-4B7C-46F5-9889-82BC5F9F0F4E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F2CA84AE-4B7C-46F5-9889-82BC5F9F0F4E}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {F2CA84AE-4B7C-46F5-9889-82BC5F9F0F4E}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {F2CA84AE-4B7C-46F5-9889-82BC5F9F0F4E}.Debug|Win32.ActiveCfg = Debug|Any CPU + {F2CA84AE-4B7C-46F5-9889-82BC5F9F0F4E}.Debug|Win32.Build.0 = Debug|Any CPU + {F2CA84AE-4B7C-46F5-9889-82BC5F9F0F4E}.Debug|x64.ActiveCfg = Debug|Any CPU + {F2CA84AE-4B7C-46F5-9889-82BC5F9F0F4E}.Debug|x64.Build.0 = Debug|Any CPU + {F2CA84AE-4B7C-46F5-9889-82BC5F9F0F4E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F2CA84AE-4B7C-46F5-9889-82BC5F9F0F4E}.Release|Any CPU.Build.0 = Release|Any CPU + {F2CA84AE-4B7C-46F5-9889-82BC5F9F0F4E}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {F2CA84AE-4B7C-46F5-9889-82BC5F9F0F4E}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {F2CA84AE-4B7C-46F5-9889-82BC5F9F0F4E}.Release|Win32.ActiveCfg = Release|Any CPU + {F2CA84AE-4B7C-46F5-9889-82BC5F9F0F4E}.Release|Win32.Build.0 = Release|Any CPU + {F2CA84AE-4B7C-46F5-9889-82BC5F9F0F4E}.Release|x64.ActiveCfg = Release|Any CPU + {F2CA84AE-4B7C-46F5-9889-82BC5F9F0F4E}.Release|x64.Build.0 = Release|Any CPU + {F2CA84AE-4B7C-46F5-9889-82BC5F9F0F4E}.Release-CUDA|Any CPU.ActiveCfg = Release|Any CPU + {F2CA84AE-4B7C-46F5-9889-82BC5F9F0F4E}.Release-CUDA|Any CPU.Build.0 = Release|Any CPU + {F2CA84AE-4B7C-46F5-9889-82BC5F9F0F4E}.Release-CUDA|Mixed Platforms.ActiveCfg = Release|Any CPU + {F2CA84AE-4B7C-46F5-9889-82BC5F9F0F4E}.Release-CUDA|Mixed Platforms.Build.0 = Release|Any CPU + {F2CA84AE-4B7C-46F5-9889-82BC5F9F0F4E}.Release-CUDA|Win32.ActiveCfg = Release|Any CPU + {F2CA84AE-4B7C-46F5-9889-82BC5F9F0F4E}.Release-CUDA|Win32.Build.0 = Release|Any CPU + {F2CA84AE-4B7C-46F5-9889-82BC5F9F0F4E}.Release-CUDA|x64.ActiveCfg = Release|Any CPU + {F2CA84AE-4B7C-46F5-9889-82BC5F9F0F4E}.Release-CUDA|x64.Build.0 = Release|Any CPU + {F2CA84AE-4B7C-46F5-9889-82BC5F9F0F4E}.Release-Signed|Any CPU.ActiveCfg = Release|Any CPU + {F2CA84AE-4B7C-46F5-9889-82BC5F9F0F4E}.Release-Signed|Any CPU.Build.0 = Release|Any CPU + {F2CA84AE-4B7C-46F5-9889-82BC5F9F0F4E}.Release-Signed|Mixed Platforms.ActiveCfg = Release|Any CPU + {F2CA84AE-4B7C-46F5-9889-82BC5F9F0F4E}.Release-Signed|Mixed Platforms.Build.0 = Release|Any CPU + {F2CA84AE-4B7C-46F5-9889-82BC5F9F0F4E}.Release-Signed|Win32.ActiveCfg = Release|Any CPU + {F2CA84AE-4B7C-46F5-9889-82BC5F9F0F4E}.Release-Signed|Win32.Build.0 = Release|Any CPU + {F2CA84AE-4B7C-46F5-9889-82BC5F9F0F4E}.Release-Signed|x64.ActiveCfg = Release|Any CPU + {F2CA84AE-4B7C-46F5-9889-82BC5F9F0F4E}.Release-Signed|x64.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {AAF80ABD-8FA0-46CC-8ABF-529E5CA7A734} + EndGlobalSection +EndGlobal diff --git a/MathNet.Numerics.MKL.sln b/MathNet.Numerics.MKL.sln new file mode 100644 index 00000000..76d46b47 --- /dev/null +++ b/MathNet.Numerics.MKL.sln @@ -0,0 +1,226 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +VisualStudioVersion = 15.0.27130.2026 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Common", "Common", "{5A0892FF-82CE-40FC-BCE1-73810C615F52}" + ProjectSection(SolutionItems) = preProject + src\NativeProviders\Common\lapack_common.h = src\NativeProviders\Common\lapack_common.h + src\NativeProviders\Common\WindowsDLL.cpp = src\NativeProviders\Common\WindowsDLL.cpp + src\NativeProviders\Common\wrapper_common.h = src\NativeProviders\Common\wrapper_common.h + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MKL", "src\NativeProviders\Windows\MKL\MKLWrapper.vcxproj", "{C0B0DBA9-7FB0-4C87-BDB1-3EED19DC2B8F}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Numerics", "src\Numerics\Numerics.csproj", "{B7CAE5F4-A23F-4438-B5BE-41226618B695}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Numerics.Tests.MKL", "src\Numerics.Tests\Numerics.Tests.MKL.csproj", "{3515A344-AB5F-41C7-A14C-04A79B3FFAB1}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestData", "src\TestData\TestData.csproj", "{AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Readme", "Readme", "{77CF160D-3AE0-45A2-8224-6322C28C2685}" + ProjectSection(SolutionItems) = preProject + README.md = README.md + RELEASENOTES-MKL.md = RELEASENOTES-MKL.md + RELEASENOTES.md = RELEASENOTES.md + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Docs", "Docs", "{9275D8F1-84B4-404F-AC1F-EE1211C9F744}" + ProjectSection(SolutionItems) = preProject + docs\content\Build.md = docs\content\Build.md + docs\content\Compatibility.md = docs\content\Compatibility.md + docs\content\Contributing.md = docs\content\Contributing.md + docs\content\Contributors.md = docs\content\Contributors.md + docs\content\License.md = docs\content\License.md + docs\content\MKL.md = docs\content\MKL.md + docs\content\Packages.md = docs\content\Packages.md + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Build", "Build", "{97C9717A-68C7-4C86-B30E-E4FC54C43A13}" + ProjectSection(SolutionItems) = preProject + build\build-framework.fsx = build\build-framework.fsx + build.fsx = build.fsx + paket.dependencies = paket.dependencies + paket.lock = paket.lock + EndProjectSection +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Benchmark", "src\Benchmark\Benchmark.csproj", "{F2CA84AE-4B7C-46F5-9889-82BC5F9F0F4E}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Debug|Mixed Platforms = Debug|Mixed Platforms + Debug|Win32 = Debug|Win32 + Debug|x64 = Debug|x64 + Release|Any CPU = Release|Any CPU + Release|Mixed Platforms = Release|Mixed Platforms + Release|Win32 = Release|Win32 + Release|x64 = Release|x64 + Release-MKL|Any CPU = Release-MKL|Any CPU + Release-MKL|Mixed Platforms = Release-MKL|Mixed Platforms + Release-MKL|Win32 = Release-MKL|Win32 + Release-MKL|x64 = Release-MKL|x64 + Release-Signed|Any CPU = Release-Signed|Any CPU + Release-Signed|Mixed Platforms = Release-Signed|Mixed Platforms + Release-Signed|Win32 = Release-Signed|Win32 + Release-Signed|x64 = Release-Signed|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {C0B0DBA9-7FB0-4C87-BDB1-3EED19DC2B8F}.Debug|Any CPU.ActiveCfg = Debug|Win32 + {C0B0DBA9-7FB0-4C87-BDB1-3EED19DC2B8F}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32 + {C0B0DBA9-7FB0-4C87-BDB1-3EED19DC2B8F}.Debug|Mixed Platforms.Build.0 = Debug|Win32 + {C0B0DBA9-7FB0-4C87-BDB1-3EED19DC2B8F}.Debug|Win32.ActiveCfg = Debug|Win32 + {C0B0DBA9-7FB0-4C87-BDB1-3EED19DC2B8F}.Debug|Win32.Build.0 = Debug|Win32 + {C0B0DBA9-7FB0-4C87-BDB1-3EED19DC2B8F}.Debug|x64.ActiveCfg = Debug|x64 + {C0B0DBA9-7FB0-4C87-BDB1-3EED19DC2B8F}.Debug|x64.Build.0 = Debug|x64 + {C0B0DBA9-7FB0-4C87-BDB1-3EED19DC2B8F}.Release|Any CPU.ActiveCfg = Release|Win32 + {C0B0DBA9-7FB0-4C87-BDB1-3EED19DC2B8F}.Release|Mixed Platforms.ActiveCfg = Release|Win32 + {C0B0DBA9-7FB0-4C87-BDB1-3EED19DC2B8F}.Release|Mixed Platforms.Build.0 = Release|Win32 + {C0B0DBA9-7FB0-4C87-BDB1-3EED19DC2B8F}.Release|Win32.ActiveCfg = Release|Win32 + {C0B0DBA9-7FB0-4C87-BDB1-3EED19DC2B8F}.Release|Win32.Build.0 = Release|Win32 + {C0B0DBA9-7FB0-4C87-BDB1-3EED19DC2B8F}.Release|x64.ActiveCfg = Release|x64 + {C0B0DBA9-7FB0-4C87-BDB1-3EED19DC2B8F}.Release|x64.Build.0 = Release|x64 + {C0B0DBA9-7FB0-4C87-BDB1-3EED19DC2B8F}.Release-MKL|Any CPU.ActiveCfg = Release|Win32 + {C0B0DBA9-7FB0-4C87-BDB1-3EED19DC2B8F}.Release-MKL|Mixed Platforms.ActiveCfg = Release|Win32 + {C0B0DBA9-7FB0-4C87-BDB1-3EED19DC2B8F}.Release-MKL|Mixed Platforms.Build.0 = Release|Win32 + {C0B0DBA9-7FB0-4C87-BDB1-3EED19DC2B8F}.Release-MKL|Win32.ActiveCfg = Release|Win32 + {C0B0DBA9-7FB0-4C87-BDB1-3EED19DC2B8F}.Release-MKL|Win32.Build.0 = Release|Win32 + {C0B0DBA9-7FB0-4C87-BDB1-3EED19DC2B8F}.Release-MKL|x64.ActiveCfg = Release|x64 + {C0B0DBA9-7FB0-4C87-BDB1-3EED19DC2B8F}.Release-MKL|x64.Build.0 = Release|x64 + {C0B0DBA9-7FB0-4C87-BDB1-3EED19DC2B8F}.Release-Signed|Any CPU.ActiveCfg = Release|Win32 + {C0B0DBA9-7FB0-4C87-BDB1-3EED19DC2B8F}.Release-Signed|Mixed Platforms.ActiveCfg = Release|Win32 + {C0B0DBA9-7FB0-4C87-BDB1-3EED19DC2B8F}.Release-Signed|Mixed Platforms.Build.0 = Release|Win32 + {C0B0DBA9-7FB0-4C87-BDB1-3EED19DC2B8F}.Release-Signed|Win32.ActiveCfg = Release|Win32 + {C0B0DBA9-7FB0-4C87-BDB1-3EED19DC2B8F}.Release-Signed|Win32.Build.0 = Release|Win32 + {C0B0DBA9-7FB0-4C87-BDB1-3EED19DC2B8F}.Release-Signed|x64.ActiveCfg = Release|x64 + {C0B0DBA9-7FB0-4C87-BDB1-3EED19DC2B8F}.Release-Signed|x64.Build.0 = Release|x64 + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Debug|Win32.ActiveCfg = Debug|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Debug|Win32.Build.0 = Debug|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Debug|x64.ActiveCfg = Debug|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Debug|x64.Build.0 = Debug|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release|Any CPU.Build.0 = Release|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release|Win32.ActiveCfg = Release|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release|Win32.Build.0 = Release|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release|x64.ActiveCfg = Release|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release|x64.Build.0 = Release|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release-MKL|Any CPU.ActiveCfg = Release|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release-MKL|Any CPU.Build.0 = Release|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release-MKL|Mixed Platforms.ActiveCfg = Release|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release-MKL|Mixed Platforms.Build.0 = Release|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release-MKL|Win32.ActiveCfg = Release|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release-MKL|Win32.Build.0 = Release|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release-MKL|x64.ActiveCfg = Release|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release-MKL|x64.Build.0 = Release|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release-Signed|Any CPU.ActiveCfg = Release|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release-Signed|Any CPU.Build.0 = Release|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release-Signed|Mixed Platforms.ActiveCfg = Release|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release-Signed|Mixed Platforms.Build.0 = Release|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release-Signed|Win32.ActiveCfg = Release|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release-Signed|Win32.Build.0 = Release|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release-Signed|x64.ActiveCfg = Release|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release-Signed|x64.Build.0 = Release|Any CPU + {3515A344-AB5F-41C7-A14C-04A79B3FFAB1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3515A344-AB5F-41C7-A14C-04A79B3FFAB1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3515A344-AB5F-41C7-A14C-04A79B3FFAB1}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {3515A344-AB5F-41C7-A14C-04A79B3FFAB1}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {3515A344-AB5F-41C7-A14C-04A79B3FFAB1}.Debug|Win32.ActiveCfg = Debug|Any CPU + {3515A344-AB5F-41C7-A14C-04A79B3FFAB1}.Debug|x64.ActiveCfg = Debug|Any CPU + {3515A344-AB5F-41C7-A14C-04A79B3FFAB1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3515A344-AB5F-41C7-A14C-04A79B3FFAB1}.Release|Any CPU.Build.0 = Release|Any CPU + {3515A344-AB5F-41C7-A14C-04A79B3FFAB1}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {3515A344-AB5F-41C7-A14C-04A79B3FFAB1}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {3515A344-AB5F-41C7-A14C-04A79B3FFAB1}.Release|Win32.ActiveCfg = Release|Any CPU + {3515A344-AB5F-41C7-A14C-04A79B3FFAB1}.Release|Win32.Build.0 = Release|Any CPU + {3515A344-AB5F-41C7-A14C-04A79B3FFAB1}.Release|x64.ActiveCfg = Release|Any CPU + {3515A344-AB5F-41C7-A14C-04A79B3FFAB1}.Release|x64.Build.0 = Release|Any CPU + {3515A344-AB5F-41C7-A14C-04A79B3FFAB1}.Release-MKL|Any CPU.ActiveCfg = Release|Any CPU + {3515A344-AB5F-41C7-A14C-04A79B3FFAB1}.Release-MKL|Any CPU.Build.0 = Release|Any CPU + {3515A344-AB5F-41C7-A14C-04A79B3FFAB1}.Release-MKL|Mixed Platforms.ActiveCfg = Release|Any CPU + {3515A344-AB5F-41C7-A14C-04A79B3FFAB1}.Release-MKL|Mixed Platforms.Build.0 = Release|Any CPU + {3515A344-AB5F-41C7-A14C-04A79B3FFAB1}.Release-MKL|Win32.ActiveCfg = Release|Any CPU + {3515A344-AB5F-41C7-A14C-04A79B3FFAB1}.Release-MKL|Win32.Build.0 = Release|Any CPU + {3515A344-AB5F-41C7-A14C-04A79B3FFAB1}.Release-MKL|x64.ActiveCfg = Release|Any CPU + {3515A344-AB5F-41C7-A14C-04A79B3FFAB1}.Release-MKL|x64.Build.0 = Release|Any CPU + {3515A344-AB5F-41C7-A14C-04A79B3FFAB1}.Release-Signed|Any CPU.ActiveCfg = Release|Any CPU + {3515A344-AB5F-41C7-A14C-04A79B3FFAB1}.Release-Signed|Any CPU.Build.0 = Release|Any CPU + {3515A344-AB5F-41C7-A14C-04A79B3FFAB1}.Release-Signed|Mixed Platforms.ActiveCfg = Release|Any CPU + {3515A344-AB5F-41C7-A14C-04A79B3FFAB1}.Release-Signed|Mixed Platforms.Build.0 = Release|Any CPU + {3515A344-AB5F-41C7-A14C-04A79B3FFAB1}.Release-Signed|Win32.ActiveCfg = Release|Any CPU + {3515A344-AB5F-41C7-A14C-04A79B3FFAB1}.Release-Signed|x64.ActiveCfg = Release|Any CPU + {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Debug|Win32.ActiveCfg = Debug|Any CPU + {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Debug|x64.ActiveCfg = Debug|Any CPU + {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release|Any CPU.Build.0 = Release|Any CPU + {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release|Win32.ActiveCfg = Release|Any CPU + {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release|Win32.Build.0 = Release|Any CPU + {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release|x64.ActiveCfg = Release|Any CPU + {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release|x64.Build.0 = Release|Any CPU + {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release-MKL|Any CPU.ActiveCfg = Release|Any CPU + {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release-MKL|Any CPU.Build.0 = Release|Any CPU + {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release-MKL|Mixed Platforms.ActiveCfg = Release|Any CPU + {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release-MKL|Mixed Platforms.Build.0 = Release|Any CPU + {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release-MKL|Win32.ActiveCfg = Release|Any CPU + {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release-MKL|Win32.Build.0 = Release|Any CPU + {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release-MKL|x64.ActiveCfg = Release|Any CPU + {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release-MKL|x64.Build.0 = Release|Any CPU + {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release-Signed|Any CPU.ActiveCfg = Release|Any CPU + {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release-Signed|Any CPU.Build.0 = Release|Any CPU + {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release-Signed|Mixed Platforms.ActiveCfg = Release|Any CPU + {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release-Signed|Mixed Platforms.Build.0 = Release|Any CPU + {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release-Signed|Win32.ActiveCfg = Release|Any CPU + {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release-Signed|Win32.Build.0 = Release|Any CPU + {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release-Signed|x64.ActiveCfg = Release|Any CPU + {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release-Signed|x64.Build.0 = Release|Any CPU + {F2CA84AE-4B7C-46F5-9889-82BC5F9F0F4E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F2CA84AE-4B7C-46F5-9889-82BC5F9F0F4E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F2CA84AE-4B7C-46F5-9889-82BC5F9F0F4E}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {F2CA84AE-4B7C-46F5-9889-82BC5F9F0F4E}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {F2CA84AE-4B7C-46F5-9889-82BC5F9F0F4E}.Debug|Win32.ActiveCfg = Debug|Any CPU + {F2CA84AE-4B7C-46F5-9889-82BC5F9F0F4E}.Debug|Win32.Build.0 = Debug|Any CPU + {F2CA84AE-4B7C-46F5-9889-82BC5F9F0F4E}.Debug|x64.ActiveCfg = Debug|Any CPU + {F2CA84AE-4B7C-46F5-9889-82BC5F9F0F4E}.Debug|x64.Build.0 = Debug|Any CPU + {F2CA84AE-4B7C-46F5-9889-82BC5F9F0F4E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F2CA84AE-4B7C-46F5-9889-82BC5F9F0F4E}.Release|Any CPU.Build.0 = Release|Any CPU + {F2CA84AE-4B7C-46F5-9889-82BC5F9F0F4E}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {F2CA84AE-4B7C-46F5-9889-82BC5F9F0F4E}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {F2CA84AE-4B7C-46F5-9889-82BC5F9F0F4E}.Release|Win32.ActiveCfg = Release|Any CPU + {F2CA84AE-4B7C-46F5-9889-82BC5F9F0F4E}.Release|Win32.Build.0 = Release|Any CPU + {F2CA84AE-4B7C-46F5-9889-82BC5F9F0F4E}.Release|x64.ActiveCfg = Release|Any CPU + {F2CA84AE-4B7C-46F5-9889-82BC5F9F0F4E}.Release|x64.Build.0 = Release|Any CPU + {F2CA84AE-4B7C-46F5-9889-82BC5F9F0F4E}.Release-MKL|Any CPU.ActiveCfg = Release|Any CPU + {F2CA84AE-4B7C-46F5-9889-82BC5F9F0F4E}.Release-MKL|Any CPU.Build.0 = Release|Any CPU + {F2CA84AE-4B7C-46F5-9889-82BC5F9F0F4E}.Release-MKL|Mixed Platforms.ActiveCfg = Release|Any CPU + {F2CA84AE-4B7C-46F5-9889-82BC5F9F0F4E}.Release-MKL|Mixed Platforms.Build.0 = Release|Any CPU + {F2CA84AE-4B7C-46F5-9889-82BC5F9F0F4E}.Release-MKL|Win32.ActiveCfg = Release|Any CPU + {F2CA84AE-4B7C-46F5-9889-82BC5F9F0F4E}.Release-MKL|Win32.Build.0 = Release|Any CPU + {F2CA84AE-4B7C-46F5-9889-82BC5F9F0F4E}.Release-MKL|x64.ActiveCfg = Release|Any CPU + {F2CA84AE-4B7C-46F5-9889-82BC5F9F0F4E}.Release-MKL|x64.Build.0 = Release|Any CPU + {F2CA84AE-4B7C-46F5-9889-82BC5F9F0F4E}.Release-Signed|Any CPU.ActiveCfg = Release|Any CPU + {F2CA84AE-4B7C-46F5-9889-82BC5F9F0F4E}.Release-Signed|Any CPU.Build.0 = Release|Any CPU + {F2CA84AE-4B7C-46F5-9889-82BC5F9F0F4E}.Release-Signed|Mixed Platforms.ActiveCfg = Release|Any CPU + {F2CA84AE-4B7C-46F5-9889-82BC5F9F0F4E}.Release-Signed|Mixed Platforms.Build.0 = Release|Any CPU + {F2CA84AE-4B7C-46F5-9889-82BC5F9F0F4E}.Release-Signed|Win32.ActiveCfg = Release|Any CPU + {F2CA84AE-4B7C-46F5-9889-82BC5F9F0F4E}.Release-Signed|Win32.Build.0 = Release|Any CPU + {F2CA84AE-4B7C-46F5-9889-82BC5F9F0F4E}.Release-Signed|x64.ActiveCfg = Release|Any CPU + {F2CA84AE-4B7C-46F5-9889-82BC5F9F0F4E}.Release-Signed|x64.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {AAF80ABD-8FA0-46CC-8ABF-529E5CA7A734} + EndGlobalSection +EndGlobal diff --git a/MathNet.Numerics.OpenBLAS.sln b/MathNet.Numerics.OpenBLAS.sln new file mode 100644 index 00000000..e1433667 --- /dev/null +++ b/MathNet.Numerics.OpenBLAS.sln @@ -0,0 +1,223 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +VisualStudioVersion = 15.0.27130.2026 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Common", "Common", "{5A0892FF-82CE-40FC-BCE1-73810C615F52}" + ProjectSection(SolutionItems) = preProject + src\NativeProviders\Common\lapack_common.h = src\NativeProviders\Common\lapack_common.h + src\NativeProviders\Common\WindowsDLL.cpp = src\NativeProviders\Common\WindowsDLL.cpp + src\NativeProviders\Common\wrapper_common.h = src\NativeProviders\Common\wrapper_common.h + EndProjectSection +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Numerics", "src\Numerics\Numerics.csproj", "{B7CAE5F4-A23F-4438-B5BE-41226618B695}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OpenBLAS", "src\NativeProviders\Windows\OpenBLAS\OpenBLASWrapper.vcxproj", "{CB4011B6-E9A7-480B-A7B1-8492039DAAD1}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Numerics.Tests.OpenBLAS", "src\Numerics.Tests\Numerics.Tests.OpenBLAS.csproj", "{96B903EF-3EE1-4569-803C-0482D2F5ED37}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestData", "src\TestData\TestData.csproj", "{AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Readme", "Readme", "{77CF160D-3AE0-45A2-8224-6322C28C2685}" + ProjectSection(SolutionItems) = preProject + README.md = README.md + RELEASENOTES-OpenBLAS.md = RELEASENOTES-OpenBLAS.md + RELEASENOTES.md = RELEASENOTES.md + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Docs", "Docs", "{9275D8F1-84B4-404F-AC1F-EE1211C9F744}" + ProjectSection(SolutionItems) = preProject + docs\content\Build.md = docs\content\Build.md + docs\content\Compatibility.md = docs\content\Compatibility.md + docs\content\Contributing.md = docs\content\Contributing.md + docs\content\Contributors.md = docs\content\Contributors.md + docs\content\License.md = docs\content\License.md + docs\content\MKL.md = docs\content\MKL.md + docs\content\Packages.md = docs\content\Packages.md + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Build", "Build", "{97C9717A-68C7-4C86-B30E-E4FC54C43A13}" + ProjectSection(SolutionItems) = preProject + build\build-framework.fsx = build\build-framework.fsx + build.fsx = build.fsx + paket.dependencies = paket.dependencies + paket.lock = paket.lock + EndProjectSection +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Benchmark", "src\Benchmark\Benchmark.csproj", "{F2CA84AE-4B7C-46F5-9889-82BC5F9F0F4E}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Debug|Mixed Platforms = Debug|Mixed Platforms + Debug|Win32 = Debug|Win32 + Debug|x64 = Debug|x64 + Release|Any CPU = Release|Any CPU + Release|Mixed Platforms = Release|Mixed Platforms + Release|Win32 = Release|Win32 + Release|x64 = Release|x64 + Release-OpenBLAS|Any CPU = Release-OpenBLAS|Any CPU + Release-OpenBLAS|Mixed Platforms = Release-OpenBLAS|Mixed Platforms + Release-OpenBLAS|Win32 = Release-OpenBLAS|Win32 + Release-OpenBLAS|x64 = Release-OpenBLAS|x64 + Release-Signed|Any CPU = Release-Signed|Any CPU + Release-Signed|Mixed Platforms = Release-Signed|Mixed Platforms + Release-Signed|Win32 = Release-Signed|Win32 + Release-Signed|x64 = Release-Signed|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Debug|Win32.ActiveCfg = Debug|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Debug|Win32.Build.0 = Debug|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Debug|x64.ActiveCfg = Debug|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Debug|x64.Build.0 = Debug|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release|Any CPU.Build.0 = Release|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release|Win32.ActiveCfg = Release|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release|Win32.Build.0 = Release|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release|x64.ActiveCfg = Release|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release|x64.Build.0 = Release|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release-OpenBLAS|Any CPU.ActiveCfg = Release|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release-OpenBLAS|Any CPU.Build.0 = Release|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release-OpenBLAS|Mixed Platforms.ActiveCfg = Release|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release-OpenBLAS|Mixed Platforms.Build.0 = Release|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release-OpenBLAS|Win32.ActiveCfg = Release|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release-OpenBLAS|Win32.Build.0 = Release|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release-OpenBLAS|x64.ActiveCfg = Release|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release-OpenBLAS|x64.Build.0 = Release|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release-Signed|Any CPU.ActiveCfg = Release|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release-Signed|Any CPU.Build.0 = Release|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release-Signed|Mixed Platforms.ActiveCfg = Release|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release-Signed|Mixed Platforms.Build.0 = Release|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release-Signed|Win32.ActiveCfg = Release|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release-Signed|Win32.Build.0 = Release|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release-Signed|x64.ActiveCfg = Release|Any CPU + {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release-Signed|x64.Build.0 = Release|Any CPU + {CB4011B6-E9A7-480B-A7B1-8492039DAAD1}.Debug|Any CPU.ActiveCfg = Debug|Win32 + {CB4011B6-E9A7-480B-A7B1-8492039DAAD1}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32 + {CB4011B6-E9A7-480B-A7B1-8492039DAAD1}.Debug|Mixed Platforms.Build.0 = Debug|Win32 + {CB4011B6-E9A7-480B-A7B1-8492039DAAD1}.Debug|Win32.ActiveCfg = Debug|Win32 + {CB4011B6-E9A7-480B-A7B1-8492039DAAD1}.Debug|Win32.Build.0 = Debug|Win32 + {CB4011B6-E9A7-480B-A7B1-8492039DAAD1}.Debug|x64.ActiveCfg = Debug|x64 + {CB4011B6-E9A7-480B-A7B1-8492039DAAD1}.Debug|x64.Build.0 = Debug|x64 + {CB4011B6-E9A7-480B-A7B1-8492039DAAD1}.Release|Any CPU.ActiveCfg = Release|Win32 + {CB4011B6-E9A7-480B-A7B1-8492039DAAD1}.Release|Mixed Platforms.ActiveCfg = Release|Win32 + {CB4011B6-E9A7-480B-A7B1-8492039DAAD1}.Release|Mixed Platforms.Build.0 = Release|Win32 + {CB4011B6-E9A7-480B-A7B1-8492039DAAD1}.Release|Win32.ActiveCfg = Release|Win32 + {CB4011B6-E9A7-480B-A7B1-8492039DAAD1}.Release|Win32.Build.0 = Release|Win32 + {CB4011B6-E9A7-480B-A7B1-8492039DAAD1}.Release|x64.ActiveCfg = Release|x64 + {CB4011B6-E9A7-480B-A7B1-8492039DAAD1}.Release|x64.Build.0 = Release|x64 + {CB4011B6-E9A7-480B-A7B1-8492039DAAD1}.Release-OpenBLAS|Any CPU.ActiveCfg = Release|Win32 + {CB4011B6-E9A7-480B-A7B1-8492039DAAD1}.Release-OpenBLAS|Mixed Platforms.ActiveCfg = Release|Win32 + {CB4011B6-E9A7-480B-A7B1-8492039DAAD1}.Release-OpenBLAS|Win32.ActiveCfg = Release|Win32 + {CB4011B6-E9A7-480B-A7B1-8492039DAAD1}.Release-OpenBLAS|Win32.Build.0 = Release|Win32 + {CB4011B6-E9A7-480B-A7B1-8492039DAAD1}.Release-OpenBLAS|x64.ActiveCfg = Release|x64 + {CB4011B6-E9A7-480B-A7B1-8492039DAAD1}.Release-OpenBLAS|x64.Build.0 = Release|x64 + {CB4011B6-E9A7-480B-A7B1-8492039DAAD1}.Release-Signed|Any CPU.ActiveCfg = Release|Win32 + {CB4011B6-E9A7-480B-A7B1-8492039DAAD1}.Release-Signed|Mixed Platforms.ActiveCfg = Release|Win32 + {CB4011B6-E9A7-480B-A7B1-8492039DAAD1}.Release-Signed|Mixed Platforms.Build.0 = Release|Win32 + {CB4011B6-E9A7-480B-A7B1-8492039DAAD1}.Release-Signed|Win32.ActiveCfg = Release|Win32 + {CB4011B6-E9A7-480B-A7B1-8492039DAAD1}.Release-Signed|Win32.Build.0 = Release|Win32 + {CB4011B6-E9A7-480B-A7B1-8492039DAAD1}.Release-Signed|x64.ActiveCfg = Release|x64 + {CB4011B6-E9A7-480B-A7B1-8492039DAAD1}.Release-Signed|x64.Build.0 = Release|x64 + {96B903EF-3EE1-4569-803C-0482D2F5ED37}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {96B903EF-3EE1-4569-803C-0482D2F5ED37}.Debug|Any CPU.Build.0 = Debug|Any CPU + {96B903EF-3EE1-4569-803C-0482D2F5ED37}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {96B903EF-3EE1-4569-803C-0482D2F5ED37}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {96B903EF-3EE1-4569-803C-0482D2F5ED37}.Debug|Win32.ActiveCfg = Debug|Any CPU + {96B903EF-3EE1-4569-803C-0482D2F5ED37}.Debug|x64.ActiveCfg = Debug|Any CPU + {96B903EF-3EE1-4569-803C-0482D2F5ED37}.Release|Any CPU.ActiveCfg = Release|Any CPU + {96B903EF-3EE1-4569-803C-0482D2F5ED37}.Release|Any CPU.Build.0 = Release|Any CPU + {96B903EF-3EE1-4569-803C-0482D2F5ED37}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {96B903EF-3EE1-4569-803C-0482D2F5ED37}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {96B903EF-3EE1-4569-803C-0482D2F5ED37}.Release|Win32.ActiveCfg = Release|Any CPU + {96B903EF-3EE1-4569-803C-0482D2F5ED37}.Release|Win32.Build.0 = Release|Any CPU + {96B903EF-3EE1-4569-803C-0482D2F5ED37}.Release|x64.ActiveCfg = Release|Any CPU + {96B903EF-3EE1-4569-803C-0482D2F5ED37}.Release|x64.Build.0 = Release|Any CPU + {96B903EF-3EE1-4569-803C-0482D2F5ED37}.Release-OpenBLAS|Any CPU.ActiveCfg = Release|Any CPU + {96B903EF-3EE1-4569-803C-0482D2F5ED37}.Release-OpenBLAS|Mixed Platforms.ActiveCfg = Release|Any CPU + {96B903EF-3EE1-4569-803C-0482D2F5ED37}.Release-OpenBLAS|Win32.ActiveCfg = Release|Any CPU + {96B903EF-3EE1-4569-803C-0482D2F5ED37}.Release-OpenBLAS|Win32.Build.0 = Release|Any CPU + {96B903EF-3EE1-4569-803C-0482D2F5ED37}.Release-OpenBLAS|x64.ActiveCfg = Release|Any CPU + {96B903EF-3EE1-4569-803C-0482D2F5ED37}.Release-OpenBLAS|x64.Build.0 = Release|Any CPU + {96B903EF-3EE1-4569-803C-0482D2F5ED37}.Release-Signed|Any CPU.ActiveCfg = Release|Any CPU + {96B903EF-3EE1-4569-803C-0482D2F5ED37}.Release-Signed|Any CPU.Build.0 = Release|Any CPU + {96B903EF-3EE1-4569-803C-0482D2F5ED37}.Release-Signed|Mixed Platforms.ActiveCfg = Release|Any CPU + {96B903EF-3EE1-4569-803C-0482D2F5ED37}.Release-Signed|Mixed Platforms.Build.0 = Release|Any CPU + {96B903EF-3EE1-4569-803C-0482D2F5ED37}.Release-Signed|Win32.ActiveCfg = Release|Any CPU + {96B903EF-3EE1-4569-803C-0482D2F5ED37}.Release-Signed|x64.ActiveCfg = Release|Any CPU + {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Debug|Win32.ActiveCfg = Debug|Any CPU + {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Debug|x64.ActiveCfg = Debug|Any CPU + {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release|Any CPU.Build.0 = Release|Any CPU + {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release|Win32.ActiveCfg = Release|Any CPU + {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release|Win32.Build.0 = Release|Any CPU + {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release|x64.ActiveCfg = Release|Any CPU + {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release|x64.Build.0 = Release|Any CPU + {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release-OpenBLAS|Any CPU.ActiveCfg = Release|Any CPU + {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release-OpenBLAS|Any CPU.Build.0 = Release|Any CPU + {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release-OpenBLAS|Mixed Platforms.ActiveCfg = Release|Any CPU + {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release-OpenBLAS|Mixed Platforms.Build.0 = Release|Any CPU + {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release-OpenBLAS|Win32.ActiveCfg = Release|Any CPU + {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release-OpenBLAS|Win32.Build.0 = Release|Any CPU + {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release-OpenBLAS|x64.ActiveCfg = Release|Any CPU + {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release-OpenBLAS|x64.Build.0 = Release|Any CPU + {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release-Signed|Any CPU.ActiveCfg = Release|Any CPU + {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release-Signed|Any CPU.Build.0 = Release|Any CPU + {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release-Signed|Mixed Platforms.ActiveCfg = Release|Any CPU + {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release-Signed|Mixed Platforms.Build.0 = Release|Any CPU + {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release-Signed|Win32.ActiveCfg = Release|Any CPU + {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release-Signed|Win32.Build.0 = Release|Any CPU + {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release-Signed|x64.ActiveCfg = Release|Any CPU + {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release-Signed|x64.Build.0 = Release|Any CPU + {F2CA84AE-4B7C-46F5-9889-82BC5F9F0F4E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F2CA84AE-4B7C-46F5-9889-82BC5F9F0F4E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F2CA84AE-4B7C-46F5-9889-82BC5F9F0F4E}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {F2CA84AE-4B7C-46F5-9889-82BC5F9F0F4E}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {F2CA84AE-4B7C-46F5-9889-82BC5F9F0F4E}.Debug|Win32.ActiveCfg = Debug|Any CPU + {F2CA84AE-4B7C-46F5-9889-82BC5F9F0F4E}.Debug|Win32.Build.0 = Debug|Any CPU + {F2CA84AE-4B7C-46F5-9889-82BC5F9F0F4E}.Debug|x64.ActiveCfg = Debug|Any CPU + {F2CA84AE-4B7C-46F5-9889-82BC5F9F0F4E}.Debug|x64.Build.0 = Debug|Any CPU + {F2CA84AE-4B7C-46F5-9889-82BC5F9F0F4E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F2CA84AE-4B7C-46F5-9889-82BC5F9F0F4E}.Release|Any CPU.Build.0 = Release|Any CPU + {F2CA84AE-4B7C-46F5-9889-82BC5F9F0F4E}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {F2CA84AE-4B7C-46F5-9889-82BC5F9F0F4E}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {F2CA84AE-4B7C-46F5-9889-82BC5F9F0F4E}.Release|Win32.ActiveCfg = Release|Any CPU + {F2CA84AE-4B7C-46F5-9889-82BC5F9F0F4E}.Release|Win32.Build.0 = Release|Any CPU + {F2CA84AE-4B7C-46F5-9889-82BC5F9F0F4E}.Release|x64.ActiveCfg = Release|Any CPU + {F2CA84AE-4B7C-46F5-9889-82BC5F9F0F4E}.Release|x64.Build.0 = Release|Any CPU + {F2CA84AE-4B7C-46F5-9889-82BC5F9F0F4E}.Release-OpenBLAS|Any CPU.ActiveCfg = Release|Any CPU + {F2CA84AE-4B7C-46F5-9889-82BC5F9F0F4E}.Release-OpenBLAS|Any CPU.Build.0 = Release|Any CPU + {F2CA84AE-4B7C-46F5-9889-82BC5F9F0F4E}.Release-OpenBLAS|Mixed Platforms.ActiveCfg = Release|Any CPU + {F2CA84AE-4B7C-46F5-9889-82BC5F9F0F4E}.Release-OpenBLAS|Mixed Platforms.Build.0 = Release|Any CPU + {F2CA84AE-4B7C-46F5-9889-82BC5F9F0F4E}.Release-OpenBLAS|Win32.ActiveCfg = Release|Any CPU + {F2CA84AE-4B7C-46F5-9889-82BC5F9F0F4E}.Release-OpenBLAS|Win32.Build.0 = Release|Any CPU + {F2CA84AE-4B7C-46F5-9889-82BC5F9F0F4E}.Release-OpenBLAS|x64.ActiveCfg = Release|Any CPU + {F2CA84AE-4B7C-46F5-9889-82BC5F9F0F4E}.Release-OpenBLAS|x64.Build.0 = Release|Any CPU + {F2CA84AE-4B7C-46F5-9889-82BC5F9F0F4E}.Release-Signed|Any CPU.ActiveCfg = Release|Any CPU + {F2CA84AE-4B7C-46F5-9889-82BC5F9F0F4E}.Release-Signed|Any CPU.Build.0 = Release|Any CPU + {F2CA84AE-4B7C-46F5-9889-82BC5F9F0F4E}.Release-Signed|Mixed Platforms.ActiveCfg = Release|Any CPU + {F2CA84AE-4B7C-46F5-9889-82BC5F9F0F4E}.Release-Signed|Mixed Platforms.Build.0 = Release|Any CPU + {F2CA84AE-4B7C-46F5-9889-82BC5F9F0F4E}.Release-Signed|Win32.ActiveCfg = Release|Any CPU + {F2CA84AE-4B7C-46F5-9889-82BC5F9F0F4E}.Release-Signed|Win32.Build.0 = Release|Any CPU + {F2CA84AE-4B7C-46F5-9889-82BC5F9F0F4E}.Release-Signed|x64.ActiveCfg = Release|Any CPU + {F2CA84AE-4B7C-46F5-9889-82BC5F9F0F4E}.Release-Signed|x64.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {AAF80ABD-8FA0-46CC-8ABF-529E5CA7A734} + EndGlobalSection +EndGlobal diff --git a/build.fsx b/build.fsx index 8046ee0d..f1ca992c 100644 --- a/build.fsx +++ b/build.fsx @@ -166,6 +166,10 @@ let mklLinuxNuGetPackage = nugetPackage "MathNet.Numerics.MKL.Linux" mklRelease let mklLinux32NuGetPackage = nugetPackage "MathNet.Numerics.MKL.Linux-x86" mklRelease let mklLinux64NuGetPackage = nugetPackage "MathNet.Numerics.MKL.Linux-x64" mklRelease +let mklWinProject = nativeProject "MathNet.Numerics.MKL" "src/NativeProviders/Windows/MKL/MKLWrapper.vcxproj" [mklWinNuGetPackage; mklWin32NuGetPackage; mklWin64NuGetPackage] +let mklLinuxProject = nativeBashScriptProject "MathNet.Numerics.MKL" "src/NativeProviders/Linux/mkl_build.sh" [mklLinuxNuGetPackage; mklLinux32NuGetPackage; mklLinux64NuGetPackage] +let mklSolution = solution "MKL" "MathNet.Numerics.MKL.sln" [mklWinProject; mklLinuxProject] [mklWinZipPackage; mklLinuxZipPackage] + // CUDA NATIVE PROVIDER PACKAGES @@ -195,6 +199,9 @@ let cudaWinBundle = let cudaWinZipPackage = zipPackage "MathNet.Numerics.CUDA.Win" "Math.NET Numerics CUDA Native Provider for Windows" cudaRelease false let cudaWinNuGetPackage = nugetPackage "MathNet.Numerics.CUDA.Win" cudaRelease +let cudaWinProject = nativeProject "MathNet.Numerics.CUDA" "src/NativeProviders/Windows/CUDA/CUDAWrapper.vcxproj" [cudaWinNuGetPackage] +let cudaSolution = solution "CUDA" "MathNet.Numerics.CUDA.sln" [cudaWinProject] [cudaWinZipPackage] + // OpenBLAS NATIVE PROVIDER PACKAGES @@ -230,6 +237,9 @@ let openBlasWinBundle = let openBlasWinZipPackage = zipPackage "MathNet.Numerics.OpenBLAS.Win" "Math.NET Numerics OpenBLAS Native Provider for Windows" openBlasRelease false let openBlasWinNuGetPackage = nugetPackage "MathNet.Numerics.OpenBLAS.Win" openBlasRelease +let openBlasWinProject = nativeProject "MathNet.Numerics.OpenBLAS" "src/NativeProviders/Windows/OpenBLAS/OpenBLASWrapper.vcxproj" [openBlasWinNuGetPackage] +let openBlasSolution = solution "OpenBLAS" "MathNet.Numerics.OpenBLAS.sln" [openBlasWinProject] [openBlasWinZipPackage] + // ALL @@ -290,7 +300,7 @@ Target "Build" (fun _ -> collectBinariesSN numericsSolution zip numericsStrongNameZipPackage numericsSolution.OutputZipDir numericsSolution.OutputLibStrongNameDir (fun f -> f.Contains("MathNet.Numerics.") || f.Contains("System.Threading.") || f.Contains("FSharp.Core.")) if isWindows then - packSN numericsSolution.SolutionFile + packSN numericsSolution collectNuGetPackages numericsSolution // Normal Build (without strong name, with certificate signature) @@ -301,7 +311,7 @@ Target "Build" (fun _ -> collectBinaries numericsSolution zip numericsZipPackage numericsSolution.OutputZipDir numericsSolution.OutputLibDir (fun f -> f.Contains("MathNet.Numerics.") || f.Contains("System.Threading.") || f.Contains("FSharp.Core.")) if isWindows then - pack numericsSolution.SolutionFile + pack numericsSolution collectNuGetPackages numericsSolution // NuGet Sign (all or nothing) @@ -320,8 +330,8 @@ Target "DataBuild" (fun _ -> collectBinariesSN dataSolution zip dataStrongNameZipPackage dataSolution.OutputZipDir dataSolution.OutputLibStrongNameDir (fun f -> f.Contains("MathNet.Numerics.Data.")) if isWindows then - packSN dataTextProject.ProjectFile - packSN dataMatlabProject.ProjectFile + packProjectSN dataTextProject + packProjectSN dataMatlabProject collectNuGetPackages dataSolution // Normal Build (without strong name, with certificate signature) @@ -332,8 +342,8 @@ Target "DataBuild" (fun _ -> collectBinaries dataSolution zip dataZipPackage dataSolution.OutputZipDir dataSolution.OutputLibDir (fun f -> f.Contains("MathNet.Numerics.Data.")) if isWindows then - pack dataTextProject.ProjectFile - pack dataMatlabProject.ProjectFile + packProject dataTextProject + packProject dataMatlabProject collectNuGetPackages dataSolution // NuGet Sign (all or nothing) @@ -342,18 +352,48 @@ Target "DataBuild" (fun _ -> ) "Prepare" ==> "DataBuild" -Target "MklWin32Build" (fun _ -> buildConfig32 "Release-MKL" !! "MathNet.Numerics.NativeProviders.sln") -Target "MklWin64Build" (fun _ -> buildConfig64 "Release-MKL" !! "MathNet.Numerics.NativeProviders.sln") +Target "MklWin32Build" (fun _ -> + + //CleanDirs (!! "src/**/obj/" ++ "src/**/bin/" ) + restore mklSolution + buildConfig32 "Release-MKL" !! "MathNet.Numerics.MKL.sln" + + ) +Target "MklWin64Build" (fun _ -> + + //CleanDirs (!! "src/**/obj/" ++ "src/**/bin/" ) + restore mklSolution + buildConfig64 "Release-MKL" !! "MathNet.Numerics.MKL.sln" + + ) Target "MklWinBuild" DoNothing "Prepare" ==> "MklWin32Build" ==> "MklWinBuild" "Prepare" ==> "MklWin64Build" ==> "MklWinBuild" -Target "CudaWin64Build" (fun _ -> buildConfig64 "Release-CUDA" !! "MathNet.Numerics.NativeProviders.sln") +Target "CudaWin64Build" (fun _ -> + + //CleanDirs (!! "src/**/obj/" ++ "src/**/bin/" ) + restore cudaSolution + buildConfig64 "Release-CUDA" !! "MathNet.Numerics.CUDA.sln" + + ) Target "CudaWinBuild" DoNothing "Prepare" ==> "CudaWin64Build" ==> "CudaWinBuild" -Target "OpenBlasWin32Build" (fun _ -> buildConfig32 "Release-OpenBLAS" !! "MathNet.Numerics.NativeProviders.sln") -Target "OpenBlasWin64Build" (fun _ -> buildConfig64 "Release-OpenBLAS" !! "MathNet.Numerics.NativeProviders.sln") +Target "OpenBlasWin32Build" (fun _ -> + + //CleanDirs (!! "src/**/obj/" ++ "src/**/bin/" ) + restore openBlasSolution + buildConfig32 "Release-OpenBLAS" !! "MathNet.Numerics.OpenBLAS.sln" + + ) +Target "OpenBlasWin64Build" (fun _ -> + + //CleanDirs (!! "src/**/obj/" ++ "src/**/bin/" ) + restore openBlasSolution + buildConfig64 "Release-OpenBLAS" !! "MathNet.Numerics.OpenBLAS.sln" + + ) Target "OpenBlasWinBuild" DoNothing "Prepare" ==> "OpenBlasWin32Build" ==> "OpenBlasWinBuild" "Prepare" ==> "OpenBlasWin64Build" ==> "OpenBlasWinBuild" @@ -397,22 +437,22 @@ let testMKL framework = test "src/Numerics.Tests" "Numerics.Tests.MKL.csproj" fr Target "MklTest" DoNothing Target "MklTestCore2.0" (fun _ -> testMKL "netcoreapp2.0") Target "MklTestNET40" (fun _ -> testMKL "net40") -"Build" ==> "MklTestCore2.0" ==> "MklTest" -"Build" =?> ("MklTestNET40", isWindows) ==> "MklTest" +"MklWinBuild" ==> "MklTestCore2.0" ==> "MklTest" +"MklWinBuild" =?> ("MklTestNET40", isWindows) ==> "MklTest" let testOpenBLAS framework = test "src/Numerics.Tests" "Numerics.Tests.OpenBLAS.csproj" framework Target "OpenBlasTest" DoNothing Target "OpenBlasTestCore2.0" (fun _ -> testOpenBLAS "netcoreapp2.0") Target "OpenBlasTestNET40" (fun _ -> testOpenBLAS "net40") -"Build" ==> "OpenBlasTestCore2.0" ==> "OpenBlasTest" -"Build" =?> ("OpenBlasTestNET40", isWindows) ==> "OpenBlasTest" +"OpenBlasWinBuild" ==> "OpenBlasTestCore2.0" ==> "OpenBlasTest" +"OpenBlasWinBuild" =?> ("OpenBlasTestNET40", isWindows) ==> "OpenBlasTest" let testCUDA framework = test "src/Numerics.Tests" "Numerics.Tests.CUDA.csproj" framework Target "CudaTest" DoNothing Target "CudaTestCore2.0" (fun _ -> testCUDA "netcoreapp2.0") Target "CudaTestNET40" (fun _ -> testCUDA "net40") -"Build" ==> "CudaTestCore2.0" ==> "CudaTest" -"Build" =?> ("CudaTestNET40", isWindows) ==> "CudaTest" +"CudaWinBuild" ==> "CudaTestCore2.0" ==> "CudaTest" +"CudaWinBuild" =?> ("CudaTestNET40", isWindows) ==> "CudaTest" let testData framework = test "src/Data.Tests" "Data.Tests.csproj" framework Target "DataTest" DoNothing @@ -437,47 +477,47 @@ Target "OpenBlasWinPack" DoNothing // ZIP Target "MklWinZip" (fun _ -> - CreateDir "out/MKL/packages/Zip" - zip mklWinZipPackage "out/MKL/packages/Zip" "out/MKL/Windows" (fun f -> f.Contains("MathNet.Numerics.MKL.") || f.Contains("libiomp5md.dll"))) + CreateDir mklSolution.OutputZipDir + zip mklWinZipPackage mklSolution.OutputZipDir "out/MKL/Windows" (fun f -> f.Contains("MathNet.Numerics.MKL.") || f.Contains("libiomp5md.dll"))) "MklWinBuild" ==> "MklWinZip" ==> "MklWinPack" Target "MklLinuxZip" (fun _ -> - CreateDir "out/MKL/packages/Zip" - zip mklLinuxZipPackage "out/MKL/packages/Zip" "out/MKL/Linux" (fun f -> f.Contains("MathNet.Numerics.MKL.") || f.Contains("libiomp5.so"))) + CreateDir mklSolution.OutputZipDir + zip mklLinuxZipPackage mklSolution.OutputZipDir "out/MKL/Linux" (fun f -> f.Contains("MathNet.Numerics.MKL.") || f.Contains("libiomp5.so"))) // "MklLinuxBuild" ==> "MklLinuxZip" ==> "MklLinuxPack" "MklLinuxZip" ==> "MklLinuxPack" Target "CudaWinZip" (fun _ -> - CreateDir "out/CUDA/packages/Zip" - zip cudaWinZipPackage "out/CUDA/packages/Zip" "out/CUDA/Windows" (fun f -> f.Contains("MathNet.Numerics.CUDA.") || f.Contains("cublas") || f.Contains("cudart") || f.Contains("cusolver"))) + CreateDir cudaSolution.OutputZipDir + zip cudaWinZipPackage cudaSolution.OutputZipDir "out/CUDA/Windows" (fun f -> f.Contains("MathNet.Numerics.CUDA.") || f.Contains("cublas") || f.Contains("cudart") || f.Contains("cusolver"))) "CudaWinBuild" ==> "CudaWinZip" ==> "CudaWinPack" Target "OpenBlasWinZip" (fun _ -> - CreateDir "out/OpenBLAS/packages/Zip" - zip openBlasWinZipPackage "out/OpenBLAS/packages/Zip" "out/OpenBLAS/Windows" (fun f -> f.Contains("MathNet.Numerics.OpenBLAS.") || f.Contains("libgcc") || f.Contains("libgfortran") || f.Contains("libopenblas") || f.Contains("libquadmath"))) + CreateDir openBlasSolution.OutputZipDir + zip openBlasWinZipPackage openBlasSolution.OutputZipDir "out/OpenBLAS/Windows" (fun f -> f.Contains("MathNet.Numerics.OpenBLAS.") || f.Contains("libgcc") || f.Contains("libgfortran") || f.Contains("libopenblas") || f.Contains("libquadmath"))) "OpenBlasWinBuild" ==> "OpenBlasWinZip" ==> "OpenBlasWinPack" // NUGET Target "MklWinNuGet" (fun _ -> - CreateDir "out/MKL/packages/NuGet" - nugetPackExtension mklWinBundle "out/MKL/packages/NuGet") + CreateDir mklSolution.OutputNuGetDir + nugetPackExtension mklWinBundle mklSolution.OutputNuGetDir) "MklWinBuild" ==> "MklWinNuGet" ==> "MklWinPack" Target "MklLinuxNuGet" (fun _ -> - CreateDir "out/MKL/packages/NuGet" - nugetPackExtension mklLinuxBundle "out/MKL/packages/NuGet") + CreateDir mklSolution.OutputNuGetDir + nugetPackExtension mklLinuxBundle mklSolution.OutputNuGetDir) // "MklLinuxBuild" ==> "MklLinuxNuGet" ==> "MklLinuxPack" "MklLinuxNuGet" ==> "MklLinuxPack" Target "CudaWinNuGet" (fun _ -> - CreateDir "out/CUDA/packages/NuGet" - nugetPackExtension cudaWinBundle "out/CUDA/packages/NuGet") + CreateDir cudaSolution.OutputNuGetDir + nugetPackExtension cudaWinBundle cudaSolution.OutputNuGetDir) "CudaWinBuild" ==> "CudaWinNuGet" ==> "CudaWinPack" Target "OpenBlasWinNuGet" (fun _ -> - CreateDir "out/OpenBLAS/packages/NuGet" - nugetPackExtension openBlasWinBundle "out/OpenBLAS/packages/NuGet") + CreateDir openBlasSolution.OutputNuGetDir + nugetPackExtension openBlasWinBundle openBlasSolution.OutputNuGetDir) "OpenBlasWinBuild" ==> "OpenBlasWinNuGet" ==> "OpenBlasWinPack" @@ -554,15 +594,15 @@ Target "PublishApi" (fun _ -> publishApi numericsRelease) 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 "MklPublishArchive" (fun _ -> publishArchive mklSolution) +Target "CudaPublishArchive" (fun _ -> publishArchive cudaSolution) +Target "OpenBlasPublishArchive" (fun _ -> publishArchive openBlasSolution) Target "PublishNuGet" (fun _ -> publishNuGet !! (numericsSolution.OutputNuGetDir "/*.nupkg")) Target "DataPublishNuGet" (fun _ -> publishNuGet !! (dataSolution.OutputNuGetDir "/*.nupkg")) -Target "MklPublishNuGet" (fun _ -> publishNuGet !! "out/MKL/packages/NuGet/*.nupkg") -Target "CudaPublishNuGet" (fun _ -> publishNuGet !! "out/CUDA/packages/NuGet/*.nupkg") -Target "OpenBlasPublishNuGet" (fun _ -> publishNuGet !! "out/OpenBLAS/packages/NuGet/*.nupkg") +Target "MklPublishNuGet" (fun _ -> publishNuGet !! (mklSolution.OutputNuGetDir "/*.nupkg")) +Target "CudaPublishNuGet" (fun _ -> publishNuGet !! (cudaSolution.OutputNuGetDir "/*.nupkg")) +Target "OpenBlasPublishNuGet" (fun _ -> publishNuGet !! (openBlasSolution.OutputNuGetDir "/*.nupkg")) Target "Publish" DoNothing Dependencies "Publish" [ "PublishTag"; "PublishDocs"; "PublishApi"; "PublishArchive"; "PublishNuGet" ] diff --git a/build/build-framework.fsx b/build/build-framework.fsx index 1246c5f7..3fff3242 100644 --- a/build/build-framework.fsx +++ b/build/build-framework.fsx @@ -109,13 +109,32 @@ type NuGetPackage = { Id: string Release: Release } -type Project = +type VisualStudioProject = { AssemblyName: string ProjectFile: string OutputDir: string Release: Release NuGetPackages: NuGetPackage list } +type NativeVisualStudioProject = + { BinaryName: string + ProjectFile: string + OutputDir: string + Release: Release + NuGetPackages: NuGetPackage list } + +type NativeBashScriptProject = + { BinaryName: string + BashScriptFile: string + OutputDir: string + Release: Release + NuGetPackages: NuGetPackage list } + +type Project = + | VisualStudio of VisualStudioProject + | NativeVisualStudio of NativeVisualStudioProject + | NativeBashScript of NativeBashScriptProject + type Solution = { Key: string SolutionFile: string @@ -170,18 +189,51 @@ let nugetPackage packageId release = Release = release } let project assemblyName projectFile nuGetPackages = - { Project.AssemblyName = assemblyName + { VisualStudioProject.AssemblyName = assemblyName ProjectFile = projectFile OutputDir = (Path.GetDirectoryName projectFile) "bin" "Release" NuGetPackages = nuGetPackages Release = nuGetPackages |> List.map (fun p -> p.Release) |> List.distinct |> List.exactlyOne } + |> Project.VisualStudio + +let nativeProject binaryName projectFile nuGetPackages = + { NativeVisualStudioProject.BinaryName = binaryName + ProjectFile = projectFile + OutputDir = (Path.GetDirectoryName projectFile) "bin" "Release" + NuGetPackages = nuGetPackages + Release = nuGetPackages |> List.map (fun p -> p.Release) |> List.distinct |> List.exactlyOne } + |> Project.NativeVisualStudio + +let nativeBashScriptProject binaryName bashScriptFile nuGetPackages = + { NativeBashScriptProject.BinaryName = binaryName + BashScriptFile = bashScriptFile + OutputDir = (Path.GetDirectoryName bashScriptFile) "bin" "Release" + NuGetPackages = nuGetPackages + Release = nuGetPackages |> List.map (fun p -> p.Release) |> List.distinct |> List.exactlyOne } + |> Project.NativeBashScript + + +let projectOutputDir = function + | VisualStudio p -> p.OutputDir + | NativeVisualStudio p -> p.OutputDir + | NativeBashScript p -> p.OutputDir + +let projectRelease = function + | VisualStudio p -> p.Release + | NativeVisualStudio p -> p.Release + | NativeBashScript p -> p.Release + +let projectNuGetPackages = function + | VisualStudio p -> p.NuGetPackages + | NativeVisualStudio p -> p.NuGetPackages + | NativeBashScript p -> p.NuGetPackages let solution key solutionFile projects zipPackages = { Solution.Key = key SolutionFile = solutionFile Projects = projects ZipPackages = zipPackages - Release = List.concat [ projects |> List.map (fun p -> p.Release); zipPackages |> List.map (fun p -> p.Release) ] |> List.distinct |> List.exactlyOne + Release = List.concat [ projects |> List.map projectRelease; zipPackages |> List.map (fun p -> p.Release) ] |> List.distinct |> List.exactlyOne OutputDir = "out" key OutputLibDir = "out" key "Lib" OutputLibStrongNameDir = "out" key "Lib-StrongName" @@ -240,19 +292,22 @@ let patchVersionInResource path (release:Release) = path let patchVersionInProjectFile (project:Project) = - let semverSplit = project.Release.PackageVersion.IndexOf('-') - let prefix = if semverSplit <= 0 then project.Release.PackageVersion else project.Release.PackageVersion.Substring(0, semverSplit) - let suffix = if semverSplit <= 0 then "" else project.Release.PackageVersion.Substring(semverSplit+1) - ReplaceInFile - (regex_replace """\.*\""" (sprintf """%s""" project.Release.PackageVersion) - >> regex_replace """\.*\""" (sprintf """%s""" project.Release.PackageVersion) - >> regex_replace """\.*\""" (sprintf """%s""" project.Release.AssemblyVersion) - >> regex_replace """\.*\""" (sprintf """%s""" project.Release.AssemblyVersion) - >> regex_replace """\.*\""" (sprintf """%s""" prefix) - >> regex_replace """\.*\""" (sprintf """%s""" suffix) - >> regex_replace_singleline """\.*\""" (sprintf """%s""" project.Release.ReleaseNotes)) - project.ProjectFile - + match project with + | VisualStudio p -> + let semverSplit = p.Release.PackageVersion.IndexOf('-') + let prefix = if semverSplit <= 0 then p.Release.PackageVersion else p.Release.PackageVersion.Substring(0, semverSplit) + let suffix = if semverSplit <= 0 then "" else p.Release.PackageVersion.Substring(semverSplit+1) + ReplaceInFile + (regex_replace """\.*\""" (sprintf """%s""" p.Release.PackageVersion) + >> regex_replace """\.*\""" (sprintf """%s""" p.Release.PackageVersion) + >> regex_replace """\.*\""" (sprintf """%s""" p.Release.AssemblyVersion) + >> regex_replace """\.*\""" (sprintf """%s""" p.Release.AssemblyVersion) + >> regex_replace """\.*\""" (sprintf """%s""" prefix) + >> regex_replace """\.*\""" (sprintf """%s""" suffix) + >> regex_replace_singleline """\.*\""" (sprintf """%s""" p.Release.ReleaseNotes)) + p.ProjectFile + | NativeVisualStudio _ -> () + | NativeBashScript _ -> () // -------------------------------------------------------------------------------------- // BUILD @@ -266,8 +321,15 @@ let restoreSN (solution:Solution) = msbuildSN [ "Restore" ] "Release" solution.S let build (solution:Solution) = msbuild [ (if hasBuildParam "incremental" then "Build" else "Rebuild") ] "Release" solution.SolutionFile let buildSN (solution:Solution) = msbuildSN [ (if hasBuildParam "incremental" then "Build" else "Rebuild") ] "Release" solution.SolutionFile -let pack project = dotnet rootDir (sprintf "pack %s --configuration Release --no-restore --no-build" project) -let packSN project = dotnetSN rootDir (sprintf "pack %s --configuration Release --no-restore --no-build" project) +let pack (solution:Solution) = dotnet rootDir (sprintf "pack %s --configuration Release --no-restore --no-build" solution.SolutionFile) +let packSN (solution:Solution) = dotnetSN rootDir (sprintf "pack %s --configuration Release --no-restore --no-build" solution.SolutionFile) + +let packProject = function + | VisualStudio p -> dotnet rootDir (sprintf "pack %s --configuration Release --no-restore --no-build" p.ProjectFile) + | _ -> failwith "Project type not supported" +let packProjectSN = function + | VisualStudio p -> dotnetSN rootDir (sprintf "pack %s --configuration Release --no-restore --no-build" p.ProjectFile) + | _ -> failwith "Project type not supported" //let buildConfig config subject = MSBuild "" (if hasBuildParam "incremental" then "Build" else "Rebuild") [ "Configuration", config ] subject |> ignore //let build subject = buildConfig "Release" subject @@ -281,13 +343,19 @@ let buildConfig64 config subject = MSBuild "" (if hasBuildParam "incremental" th // -------------------------------------------------------------------------------------- let collectBinaries (solution:Solution) = - solution.Projects |> List.iter (fun project -> CopyDir solution.OutputLibDir project.OutputDir (fun n -> n.Contains(project.AssemblyName + ".dll") || n.Contains(project.AssemblyName + ".pdb") || n.Contains(project.AssemblyName + ".xml"))) + solution.Projects |> List.iter (function + | VisualStudio project -> CopyDir solution.OutputLibDir project.OutputDir (fun n -> n.Contains(project.AssemblyName + ".dll") || n.Contains(project.AssemblyName + ".pdb") || n.Contains(project.AssemblyName + ".xml")) + | _ -> failwith "Project type not supported") let collectBinariesSN (solution:Solution) = - solution.Projects |> List.iter (fun project -> CopyDir solution.OutputLibStrongNameDir project.OutputDir (fun n -> n.Contains(project.AssemblyName + ".dll") || n.Contains(project.AssemblyName + ".pdb") || n.Contains(project.AssemblyName + ".xml"))) + solution.Projects |> List.iter (function + | VisualStudio project -> CopyDir solution.OutputLibStrongNameDir project.OutputDir (fun n -> n.Contains(project.AssemblyName + ".dll") || n.Contains(project.AssemblyName + ".pdb") || n.Contains(project.AssemblyName + ".xml")) + | _ -> failwith "Project type not supported") let collectNuGetPackages (solution:Solution) = - solution.Projects |> List.iter (fun project -> CopyDir solution.OutputNuGetDir project.OutputDir (fun n -> n.EndsWith(".nupkg"))) + solution.Projects |> List.iter (function + | VisualStudio project -> CopyDir solution.OutputNuGetDir project.OutputDir (fun n -> n.EndsWith(".nupkg")) + | _ -> failwith "Project type not supported") // -------------------------------------------------------------------------------------- @@ -349,7 +417,9 @@ let provideNuGetExtraFiles path (bundle:Bundle) (pack:Package) = // SIGN let sign fingerprint timeserver (solution: Solution) = - let files = solution.Projects |> Seq.collect (fun p -> !! (p.OutputDir + "/**/" + p.AssemblyName + ".dll")) + let files = solution.Projects |> Seq.collect (function + | VisualStudio project -> !! (project.OutputDir + "/**/" + project.AssemblyName + ".dll") + | _ -> failwith "Project type not supported") let fileArgs = files |> Seq.map (sprintf "\"%s\"") |> String.concat " " let optionsArgs = sprintf """/v /fd sha256 /sha1 "%s" /tr "%s" /td sha256""" fingerprint timeserver let arguments = sprintf """sign %s %s""" optionsArgs fileArgs @@ -570,5 +640,5 @@ 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 + let nugetPackages = solution.Projects |> List.collect projectNuGetPackages |> List.distinct publishArchiveManual zipOutPath nugetOutPath zipPackages nugetPackages diff --git a/src/Benchmark/Benchmark.csproj b/src/Benchmark/Benchmark.csproj index 6b7d984a..db0c6b55 100644 --- a/src/Benchmark/Benchmark.csproj +++ b/src/Benchmark/Benchmark.csproj @@ -8,6 +8,11 @@ Benchmark false + + + + + diff --git a/src/NativeProviders/Common/lapack_common.h b/src/NativeProviders/Common/lapack_common.h index 6865f9b4..99ad8990 100644 --- a/src/NativeProviders/Common/lapack_common.h +++ b/src/NativeProviders/Common/lapack_common.h @@ -42,7 +42,7 @@ inline void shift_ipiv_up(int m, int ipiv[]) } } -template +template inline T* Clone(const int m, const int n, const T* a) { auto clone = new T[m*n]; @@ -50,7 +50,7 @@ inline T* Clone(const int m, const int n, const T* a) return clone; } -template +template inline void copyBtoX (int m, int n, int bn, T b[], T x[]) { for (auto i = 0; i < n; ++i) diff --git a/src/NativeProviders/Common/wrapper_common.h b/src/NativeProviders/Common/wrapper_common.h index a6f5a6d6..e3f01e46 100644 --- a/src/NativeProviders/Common/wrapper_common.h +++ b/src/NativeProviders/Common/wrapper_common.h @@ -1,10 +1,14 @@ #ifndef WRAPPER_COMMON_H #define WRAPPER_COMMON_H +#ifndef __MS_VC_INSTALL_PATH +#define __MS_VC_INSTALL_PATH C:/Program Files (x86)/Microsoft Visual Studio/2017/Professional/VC/Tools/MSVC/14.14.26428 +#endif + #ifdef _WINDOWS #define DLLEXPORT __declspec( dllexport ) #else #define DLLEXPORT #endif -#endif +#endif diff --git a/src/NativeProviders/OpenBLAS/lapack.h b/src/NativeProviders/OpenBLAS/lapack.h index 3c9fe4b5..30d40bbe 100644 --- a/src/NativeProviders/OpenBLAS/lapack.h +++ b/src/NativeProviders/OpenBLAS/lapack.h @@ -7,5 +7,3 @@ #include "cblas.h" #include "lapacke.h" - - diff --git a/src/NativeProviders/OpenBLAS/resource.h b/src/NativeProviders/OpenBLAS/resource.h index 27e2900c..ac60d04d 100644 --- a/src/NativeProviders/OpenBLAS/resource.h +++ b/src/NativeProviders/OpenBLAS/resource.h @@ -3,7 +3,7 @@ // Used by resource.rc // Next default values for new objects -// +// #ifdef APSTUDIO_INVOKED #ifndef APSTUDIO_READONLY_SYMBOLS #define _APS_NEXT_RESOURCE_VALUE 101 diff --git a/src/NativeProviders/Windows/ATLAS/ATLASWrapper.vcxproj b/src/NativeProviders/Windows/ATLAS/ATLASWrapper.vcxproj index fe606179..3fa48f68 100644 --- a/src/NativeProviders/Windows/ATLAS/ATLASWrapper.vcxproj +++ b/src/NativeProviders/Windows/ATLAS/ATLASWrapper.vcxproj @@ -1,5 +1,5 @@  - + Debug @@ -23,31 +23,32 @@ Win32Proj ATLASWrapper ATLAS + 10.0.10586.0 DynamicLibrary true - v140 + v141 Unicode DynamicLibrary true - v140 + v141 Unicode DynamicLibrary false - v140 + v141 true Unicode DynamicLibrary false - v140 + v141 true Unicode diff --git a/src/NativeProviders/Windows/CUDA/CUDAWrapper.vcxproj b/src/NativeProviders/Windows/CUDA/CUDAWrapper.vcxproj index 56675e27..66e99daa 100644 --- a/src/NativeProviders/Windows/CUDA/CUDAWrapper.vcxproj +++ b/src/NativeProviders/Windows/CUDA/CUDAWrapper.vcxproj @@ -1,5 +1,5 @@  - + Debug @@ -34,31 +34,32 @@ {5A52B796-7F41-4C90-8DE2-F3F391C4482C} CUDA CUDA + 10.0.10586.0 DynamicLibrary true - v140 + v141 MultiByte DynamicLibrary true - v140 + v141 MultiByte DynamicLibrary false - v140 + v141 true MultiByte DynamicLibrary false - v140 + v141 true MultiByte diff --git a/src/NativeProviders/Windows/MKL/MKLWrapper.vcxproj b/src/NativeProviders/Windows/MKL/MKLWrapper.vcxproj index daeb07d5..3950f5bd 100644 --- a/src/NativeProviders/Windows/MKL/MKLWrapper.vcxproj +++ b/src/NativeProviders/Windows/MKL/MKLWrapper.vcxproj @@ -1,5 +1,5 @@  - + Debug @@ -30,44 +30,44 @@ {C0B0DBA9-7FB0-4C87-BDB1-3EED19DC2B8F} MKLWrapper MKL - 8.1 + 10.0.10586.0 DynamicLibrary - v140 + v141 MultiByte true Parallel DynamicLibrary - v140 + v141 MultiByte Parallel DynamicLibrary - v140 + v141 MultiByte Parallel DynamicLibrary - v140 + v141 MultiByte true Parallel DynamicLibrary - v140 + v141 MultiByte Parallel DynamicLibrary - v140 + v141 MultiByte Parallel @@ -158,7 +158,7 @@ $(OutDir)$(TargetName).lib - copy "$(INTEL_DEV_REDIST)redist\ia32\compiler\libiomp5md.dll" $(OutputPath) + copy "$(INTEL_DEV_REDIST)redist\ia32_win\compiler\libiomp5md.dll" $(OutputPath) @@ -184,7 +184,7 @@ $(OutDir)$(TargetName).lib - copy "$(INTEL_DEV_REDIST)redist\ia32\compiler\libiomp5md.dll" $(OutputPath) + copy "$(INTEL_DEV_REDIST)redist\ia32_win\compiler\libiomp5md.dll" $(OutputPath) @@ -211,7 +211,7 @@ $(OutDir)$(TargetName).lib - copy "$(INTEL_DEV_REDIST)redist\intel64\compiler\libiomp5md.dll" $(OutputPath) + copy "$(INTEL_DEV_REDIST)redist\intel64_win\compiler\libiomp5md.dll" $(OutputPath) @@ -240,7 +240,7 @@ $(OutDir)$(TargetName).lib - copy "$(INTEL_DEV_REDIST)redist\intel64\compiler\libiomp5md.dll" $(OutputPath) + copy "$(INTEL_DEV_REDIST)redist\intel64_win\compiler\libiomp5md.dll" $(OutputPath) @@ -267,7 +267,7 @@ $(OutDir)$(TargetName).lib - copy "$(INTEL_DEV_REDIST)redist\ia32\compiler\libiomp5md.dll" $(OutputPath) + copy "$(INTEL_DEV_REDIST)redist\ia32_win\compiler\libiomp5md.dll" $(OutputPath) @@ -297,7 +297,7 @@ $(OutDir)$(TargetName).lib - copy "$(INTEL_DEV_REDIST)redist\intel64\compiler\libiomp5md.dll" $(OutputPath) + copy "$(INTEL_DEV_REDIST)redist\intel64_win\compiler\libiomp5md.dll" $(OutputPath) @@ -321,4 +321,4 @@ - \ No newline at end of file + diff --git a/src/NativeProviders/Windows/OpenBLAS/OpenBLASWrapper.vcxproj b/src/NativeProviders/Windows/OpenBLAS/OpenBLASWrapper.vcxproj index 42d9295e..56f248fe 100644 --- a/src/NativeProviders/Windows/OpenBLAS/OpenBLASWrapper.vcxproj +++ b/src/NativeProviders/Windows/OpenBLAS/OpenBLASWrapper.vcxproj @@ -1,5 +1,5 @@  - + Debug @@ -22,28 +22,29 @@ {CB4011B6-E9A7-480B-A7B1-8492039DAAD1} OpenBLASWrapper OpenBLAS + 10.0.10586.0 DynamicLibrary - v140 + v141 MultiByte true DynamicLibrary - v140 + v141 MultiByte DynamicLibrary - v140 + v141 MultiByte true DynamicLibrary - v140 + v141 MultiByte @@ -62,7 +63,7 @@ - $(ProjectDir)..\..\..\..\..\libs\OpenBLAS + $(ProjectDir)..\..\..\..\..\libs\OpenBLAS $(OpenBlasPath)\include\ $(OpenBlasPath)\x86\ $(OpenBlasPath)\x64\ @@ -220,4 +221,4 @@ - \ No newline at end of file + diff --git a/src/Numerics.Tests/Numerics.Tests.CUDA.csproj b/src/Numerics.Tests/Numerics.Tests.CUDA.csproj index 54596316..b464083b 100644 --- a/src/Numerics.Tests/Numerics.Tests.CUDA.csproj +++ b/src/Numerics.Tests/Numerics.Tests.CUDA.csproj @@ -2,8 +2,8 @@ Exe + false net461;netcoreapp1.1;netcoreapp2.0 - 2.0.7 false MathNet.Numerics.Tests.CUDA MathNet.Numerics.Tests @@ -18,6 +18,9 @@ + + + diff --git a/src/Numerics.Tests/Numerics.Tests.MKL.csproj b/src/Numerics.Tests/Numerics.Tests.MKL.csproj index a0eb1a51..1524c965 100644 --- a/src/Numerics.Tests/Numerics.Tests.MKL.csproj +++ b/src/Numerics.Tests/Numerics.Tests.MKL.csproj @@ -2,8 +2,8 @@ Exe + false net461;netcoreapp1.1;netcoreapp2.0 - 2.0.7 false MathNet.Numerics.Tests.MKL MathNet.Numerics.Tests @@ -18,6 +18,9 @@ + + + diff --git a/src/Numerics.Tests/Numerics.Tests.OpenBLAS.csproj b/src/Numerics.Tests/Numerics.Tests.OpenBLAS.csproj index dadcf950..674ad283 100644 --- a/src/Numerics.Tests/Numerics.Tests.OpenBLAS.csproj +++ b/src/Numerics.Tests/Numerics.Tests.OpenBLAS.csproj @@ -2,8 +2,8 @@ Exe + false net461;netcoreapp1.1;netcoreapp2.0 - 2.0.7 false MathNet.Numerics.Tests.OpenBLAS MathNet.Numerics.Tests @@ -18,6 +18,9 @@ + + + diff --git a/src/Numerics.Tests/Numerics.Tests.csproj b/src/Numerics.Tests/Numerics.Tests.csproj index 886496e3..3cfa17d8 100644 --- a/src/Numerics.Tests/Numerics.Tests.csproj +++ b/src/Numerics.Tests/Numerics.Tests.csproj @@ -17,6 +17,9 @@ + + +