diff --git a/csharp/src/Microsoft.AI.MachineLearning/Microsoft.AI.MachineLearning.Rules.Project.xml b/csharp/src/Microsoft.AI.MachineLearning/Microsoft.AI.MachineLearning.Rules.Project.xml
index 2394ee728a..7492025563 100644
--- a/csharp/src/Microsoft.AI.MachineLearning/Microsoft.AI.MachineLearning.Rules.Project.xml
+++ b/csharp/src/Microsoft.AI.MachineLearning/Microsoft.AI.MachineLearning.Rules.Project.xml
@@ -17,4 +17,10 @@
DisplayName="Disable directml.dll copy on build"
Description="Suppresses binplacing the directml.dll from the Mirosoft.AI.MachineLearning NuGet distribution."
Category="General" />
-
\ No newline at end of file
+
+
+
diff --git a/csharp/src/Microsoft.AI.MachineLearning/Microsoft.AI.MachineLearning.targets b/csharp/src/Microsoft.AI.MachineLearning/Microsoft.AI.MachineLearning.targets
index 62c505e12d..4f43996fc9 100644
--- a/csharp/src/Microsoft.AI.MachineLearning/Microsoft.AI.MachineLearning.targets
+++ b/csharp/src/Microsoft.AI.MachineLearning/Microsoft.AI.MachineLearning.targets
@@ -8,11 +8,12 @@
$(MSBuildThisFileDirectory)..\..\runtimes\win-$(WindowsAI-Platform)\uap
$(MSBuildThisFileDirectory)..\..\runtimes\win-$(WindowsAI-Platform)\native
- $(RuntimesDirectory)\Microsoft.AI.MachineLearning.dll
+ static\
+ $(RuntimesDirectory)\$(WindowsAIBinarySubfolder)Microsoft.AI.MachineLearning.dll
- $(RuntimesDirectory)\onnxruntime.dll
+ $(RuntimesDirectory)\$(WindowsAIBinarySubfolder)onnxruntime.dll
diff --git a/tools/ci_build/github/azure-pipelines/nuget/templates/cpu-nocontribops-arm64.yml b/tools/ci_build/github/azure-pipelines/nuget/templates/cpu-nocontribops-arm64.yml
index ef3effcead..963573c293 100644
--- a/tools/ci_build/github/azure-pipelines/nuget/templates/cpu-nocontribops-arm64.yml
+++ b/tools/ci_build/github/azure-pipelines/nuget/templates/cpu-nocontribops-arm64.yml
@@ -8,7 +8,7 @@ jobs:
ArtifactName: 'drop-nuget'
JobName: 'Windows_CI_Dev'
BuildCommand: '--build_dir $(Build.BinariesDirectory) --skip_submodule_sync --build_shared_lib --enable_onnx_tests --cmake_generator "Visual Studio 16 2019" --disable_contrib_ops --disable_ml_ops --enable_msvc_static_runtime'
- BuildArch: 'x64'
+ BuildArch: 'x64'
EnvSetupScript: 'setup_env.bat'
sln_platform: 'x64'
DoDebugBuild: 'false'
diff --git a/tools/ci_build/github/azure-pipelines/nuget/templates/windowsai.yml b/tools/ci_build/github/azure-pipelines/nuget/templates/windowsai.yml
index c90c8f4661..8ff5811300 100644
--- a/tools/ci_build/github/azure-pipelines/nuget/templates/windowsai.yml
+++ b/tools/ci_build/github/azure-pipelines/nuget/templates/windowsai.yml
@@ -47,6 +47,58 @@ jobs:
parameters:
BuildArch: 'arm'
+- job: WindowsAI_DirectML_X64_StaticRuntime
+ timeoutInMinutes: 120
+ workspace:
+ clean: all
+ pool:
+ name: 'Win-GPU-2019'
+ demands: [ ]
+ steps:
+ - template: ../../templates/windowsai-nuget-build.yml
+ parameters:
+ BuildArch: 'x64'
+ Runtime: 'static'
+
+- job: WindowsAI_DirectML_X86_StaticRuntime
+ timeoutInMinutes: 120
+ workspace:
+ clean: all
+ pool:
+ name: 'Win-GPU-2019'
+ demands: [ ]
+ steps:
+ - template: ../../templates/windowsai-nuget-build.yml
+ parameters:
+ BuildArch: 'x86'
+ Runtime: 'static'
+
+- job: WindowsAI_CPU_ARM64_StaticRuntime
+ timeoutInMinutes: 120
+ workspace:
+ clean: all
+ pool:
+ name: 'Win-CPU-2019'
+ demands: [ ]
+ steps:
+ - template: ../../templates/windowsai-nuget-build.yml
+ parameters:
+ BuildArch: 'arm64'
+ Runtime: 'static'
+
+- job: WindowsAI_CPU_ARM_StaticRuntime
+ timeoutInMinutes: 120
+ workspace:
+ clean: all
+ pool:
+ name: 'Win-CPU-2019'
+ demands: [ ]
+ steps:
+ - template: ../../templates/windowsai-nuget-build.yml
+ parameters:
+ BuildArch: 'arm'
+ Runtime: 'static'
+
- job: WindowsAI_CPU_X64_Store
timeoutInMinutes: 120
workspace:
@@ -112,6 +164,10 @@ jobs:
- WindowsAI_CPU_X86_Store
- WindowsAI_CPU_ARM64_Store
- WindowsAI_CPU_ARM_Store
+ - WindowsAI_DirectML_X64_StaticRuntime
+ - WindowsAI_DirectML_X86_StaticRuntime
+ - WindowsAI_CPU_ARM64_StaticRuntime
+ - WindowsAI_CPU_ARM_StaticRuntime
condition: succeeded()
steps:
- task: DownloadPipelineArtifact@0
@@ -162,6 +218,30 @@ jobs:
artifactName: 'Microsoft.AI.MachineLearning.arm.Store'
targetPath: '$(Build.BinariesDirectory)/nuget-artifact-arm-store'
+ - task: DownloadPipelineArtifact@0
+ displayName: 'Download Pipeline Artifact - NuGet DirectML x64 StaticRuntime'
+ inputs:
+ artifactName: 'Microsoft.AI.MachineLearning.x64.StaticRuntime'
+ targetPath: '$(Build.BinariesDirectory)/nuget-artifact-x64-static-runtime'
+
+ - task: DownloadPipelineArtifact@0
+ displayName: 'Download Pipeline Artifact - NuGet DirectML x86 StaticRuntime'
+ inputs:
+ artifactName: 'Microsoft.AI.MachineLearning.x86.StaticRuntime'
+ targetPath: '$(Build.BinariesDirectory)/nuget-artifact-x86-static-runtime'
+
+ - task: DownloadPipelineArtifact@0
+ displayName: 'Download Pipeline Artifact - NuGet CPU ARM64 StaticRuntime'
+ inputs:
+ artifactName: 'Microsoft.AI.MachineLearning.arm64.StaticRuntime'
+ targetPath: '$(Build.BinariesDirectory)/nuget-artifact-arm64-static-runtime'
+
+ - task: DownloadPipelineArtifact@0
+ displayName: 'Download Pipeline Artifact - NuGet CPU ARM StaticRuntime'
+ inputs:
+ artifactName: 'Microsoft.AI.MachineLearning.arm.StaticRuntime'
+ targetPath: '$(Build.BinariesDirectory)/nuget-artifact-arm-static-runtime'
+
- task: PowerShell@2
displayName: 'Bundle NuGet and other binaries'
inputs:
@@ -182,6 +262,12 @@ jobs:
$x64_store_nupkg_unzipped_directory = [System.IO.Path]::Combine($x64_store_nupkg_unzipped_directory_root, 'binaries', [System.IO.Path]::GetFileNameWithoutExtension($x64_store_nuget_package))
[System.IO.Compression.ZipFile]::ExtractToDirectory($x64_store_nuget_package, $x64_store_nupkg_unzipped_directory)
+ $nupkgs = (Get-ChildItem ..\nuget-artifact-x64-static-runtime -Filter Microsoft.AI.MachineLearning*.nupkg -Recurse)
+ $x64_static_runtime_nuget_package = $nupkgs[0].FullName
+ $x64_static_runtime_nupkg_unzipped_directory_root = $nupkgs[0].Directory.FullName
+ $x64_static_runtime_nupkg_unzipped_directory = [System.IO.Path]::Combine($x64_static_runtime_nupkg_unzipped_directory_root, 'binaries', [System.IO.Path]::GetFileNameWithoutExtension($x64_static_runtime_nuget_package))
+ [System.IO.Compression.ZipFile]::ExtractToDirectory($x64_static_runtime_nuget_package, $x64_static_runtime_nupkg_unzipped_directory)
+
$nupkgs = (Get-ChildItem ..\nuget-artifact-x86 -Filter Microsoft.AI.MachineLearning*.nupkg -Recurse)
$x86_nuget_package = $nupkgs[0].FullName
$x86_nupkg_unzipped_directory_root = $nupkgs[0].Directory.FullName
@@ -194,6 +280,12 @@ jobs:
$x86_store_nupkg_unzipped_directory = [System.IO.Path]::Combine($x86_store_nupkg_unzipped_directory_root, 'binaries', [System.IO.Path]::GetFileNameWithoutExtension($x86_store_nuget_package))
[System.IO.Compression.ZipFile]::ExtractToDirectory($x86_store_nuget_package, $x86_store_nupkg_unzipped_directory)
+ $nupkgs = (Get-ChildItem ..\nuget-artifact-x86-static-runtime -Filter Microsoft.AI.MachineLearning*.nupkg -Recurse)
+ $x86_static_runtime_nuget_package = $nupkgs[0].FullName
+ $x86_static_runtime_nupkg_unzipped_directory_root = $nupkgs[0].Directory.FullName
+ $x86_static_runtime_nupkg_unzipped_directory = [System.IO.Path]::Combine($x86_static_runtime_nupkg_unzipped_directory_root, 'binaries', [System.IO.Path]::GetFileNameWithoutExtension($x86_static_runtime_nuget_package))
+ [System.IO.Compression.ZipFile]::ExtractToDirectory($x86_static_runtime_nuget_package, $x86_static_runtime_nupkg_unzipped_directory)
+
$nupkgs = (Get-ChildItem ..\nuget-artifact-arm64 -Filter Microsoft.AI.MachineLearning*.nupkg -Recurse)
$arm64_nuget_package = $nupkgs[0].FullName
$arm64_nupkg_unzipped_directory_root = $nupkgs[0].Directory.FullName
@@ -206,6 +298,12 @@ jobs:
$arm64_store_nupkg_unzipped_directory = [System.IO.Path]::Combine($arm64_store_nupkg_unzipped_directory_root, 'binaries', [System.IO.Path]::GetFileNameWithoutExtension($arm64_store_nuget_package))
[System.IO.Compression.ZipFile]::ExtractToDirectory($arm64_store_nuget_package, $arm64_store_nupkg_unzipped_directory)
+ $nupkgs = (Get-ChildItem ..\nuget-artifact-arm64-static-runtime -Filter Microsoft.AI.MachineLearning*.nupkg -Recurse)
+ $arm64_static_runtime_nuget_package = $nupkgs[0].FullName
+ $arm64_static_runtime_nupkg_unzipped_directory_root = $nupkgs[0].Directory.FullName
+ $arm64_static_runtime_nupkg_unzipped_directory = [System.IO.Path]::Combine($arm64_static_runtime_nupkg_unzipped_directory_root, 'binaries', [System.IO.Path]::GetFileNameWithoutExtension($arm64_static_runtime_nuget_package))
+ [System.IO.Compression.ZipFile]::ExtractToDirectory($arm64_static_runtime_nuget_package, $arm64_static_runtime_nupkg_unzipped_directory)
+
$nupkgs = (Get-ChildItem ..\nuget-artifact-arm -Filter Microsoft.AI.MachineLearning*.nupkg -Recurse)
$arm_nuget_package = $nupkgs[0].FullName
$arm_nupkg_unzipped_directory_root = $nupkgs[0].Directory.FullName
@@ -218,30 +316,48 @@ jobs:
$arm_store_nupkg_unzipped_directory = [System.IO.Path]::Combine($arm_store_nupkg_unzipped_directory_root, 'binaries', [System.IO.Path]::GetFileNameWithoutExtension($arm_store_nuget_package))
[System.IO.Compression.ZipFile]::ExtractToDirectory($arm_store_nuget_package, $arm_store_nupkg_unzipped_directory)
+ $nupkgs = (Get-ChildItem ..\nuget-artifact-arm-static-runtime -Filter Microsoft.AI.MachineLearning*.nupkg -Recurse)
+ $arm_static_runtime_nuget_package = $nupkgs[0].FullName
+ $arm_static_runtime_nupkg_unzipped_directory_root = $nupkgs[0].Directory.FullName
+ $arm_static_runtime_nupkg_unzipped_directory = [System.IO.Path]::Combine($arm_static_runtime_nupkg_unzipped_directory_root, 'binaries', [System.IO.Path]::GetFileNameWithoutExtension($arm_static_runtime_nuget_package))
+ [System.IO.Compression.ZipFile]::ExtractToDirectory($arm_static_runtime_nuget_package, $arm_static_runtime_nupkg_unzipped_directory)
+
$x64_store_runtime_path_old = [System.IO.Path]::Combine($x64_store_nupkg_unzipped_directory, 'runtimes', 'win-x64', 'uap')
$x64_store_runtime_path_new = [System.IO.Path]::Combine($x64_nupkg_unzipped_directory, 'runtimes', 'win-x64', 'uap')
+ $x64_static_runtime_path_old = [System.IO.Path]::Combine($x64_static_runtime_nupkg_unzipped_directory, 'runtimes', 'win-x64', 'native')
+ $x64_static_runtime_path_new = [System.IO.Path]::Combine($x64_nupkg_unzipped_directory, 'runtimes', 'win-x64', 'native', 'static')
$x86_runtime_path_old = [System.IO.Path]::Combine($x86_nupkg_unzipped_directory, 'runtimes', 'win-x86', 'native')
$x86_runtime_path_new = [System.IO.Path]::Combine($x64_nupkg_unzipped_directory, 'runtimes', 'win-x86', 'native')
$x86_store_runtime_path_old = [System.IO.Path]::Combine($x86_store_nupkg_unzipped_directory, 'runtimes', 'win-x86', 'uap')
$x86_store_runtime_path_new = [System.IO.Path]::Combine($x64_nupkg_unzipped_directory, 'runtimes', 'win-x86', 'uap')
+ $x86_static_runtime_path_old = [System.IO.Path]::Combine($x86_static_runtime_nupkg_unzipped_directory, 'runtimes', 'win-x86', 'native')
+ $x86_static_runtime_path_new = [System.IO.Path]::Combine($x64_nupkg_unzipped_directory, 'runtimes', 'win-x86', 'native', 'static')
$arm64_runtime_path_old = [System.IO.Path]::Combine($arm64_nupkg_unzipped_directory, 'runtimes', 'win-arm64', 'native')
$arm64_runtime_path_new = [System.IO.Path]::Combine($x64_nupkg_unzipped_directory, 'runtimes', 'win-arm64', 'native')
$arm64_store_runtime_path_old = [System.IO.Path]::Combine($arm64_store_nupkg_unzipped_directory, 'runtimes', 'win-arm64', 'uap')
$arm64_store_runtime_path_new = [System.IO.Path]::Combine($x64_nupkg_unzipped_directory, 'runtimes', 'win-arm64', 'uap')
+ $arm64_static_runtime_path_old = [System.IO.Path]::Combine($arm64_static_runtime_nupkg_unzipped_directory, 'runtimes', 'win-arm64', 'native')
+ $arm64_static_runtime_path_new = [System.IO.Path]::Combine($x64_nupkg_unzipped_directory, 'runtimes', 'win-arm64', 'native', 'static')
$arm_runtime_path_old = [System.IO.Path]::Combine($arm_nupkg_unzipped_directory, 'runtimes', 'win-arm', 'native')
$arm_runtime_path_new = [System.IO.Path]::Combine($x64_nupkg_unzipped_directory, 'runtimes', 'win-arm', 'native')
$arm_store_runtime_path_old = [System.IO.Path]::Combine($arm_store_nupkg_unzipped_directory, 'runtimes', 'win-arm', 'uap')
$arm_store_runtime_path_new = [System.IO.Path]::Combine($x64_nupkg_unzipped_directory, 'runtimes', 'win-arm', 'uap')
+ $arm_static_runtime_path_old = [System.IO.Path]::Combine($arm_static_runtime_nupkg_unzipped_directory, 'runtimes', 'win-arm', 'native')
+ $arm_static_runtime_path_new = [System.IO.Path]::Combine($x64_nupkg_unzipped_directory, 'runtimes', 'win-arm', 'native', 'static')
$uap_build_path_old = [System.IO.Path]::Combine($x64_store_nupkg_unzipped_directory, 'build', 'uap')
$uap_build_path_new = [System.IO.Path]::Combine($x64_nupkg_unzipped_directory, 'build', 'uap')
New-Item -Path $x64_store_runtime_path_new -ItemType Directory
+ New-Item -Path $x64_static_runtime_path_new -ItemType Directory
New-Item -Path $x86_runtime_path_new -ItemType Directory
New-Item -Path $x86_store_runtime_path_new -ItemType Directory
+ New-Item -Path $x86_static_runtime_path_new -ItemType Directory
New-Item -Path $arm64_runtime_path_new -ItemType Directory
New-Item -Path $arm64_store_runtime_path_new -ItemType Directory
+ New-Item -Path $arm64_static_runtime_path_new -ItemType Directory
New-Item -Path $arm_runtime_path_new -ItemType Directory
New-Item -Path $arm_store_runtime_path_new -ItemType Directory
+ New-Item -Path $arm_static_runtime_path_new -ItemType Directory
Copy-Item ([System.IO.Path]::Combine($x86_runtime_path_old, 'onnxruntime.dll')) $x86_runtime_path_new
Copy-Item ([System.IO.Path]::Combine($x86_runtime_path_old, 'onnxruntime.lib')) $x86_runtime_path_new
@@ -279,6 +395,26 @@ jobs:
Copy-Item ([System.IO.Path]::Combine($arm_store_runtime_path_old, 'microsoft.ai.machinelearning.dll')) $arm_store_runtime_path_new
Copy-Item ([System.IO.Path]::Combine($arm_store_runtime_path_old, 'microsoft.ai.machinelearning.lib')) $arm_store_runtime_path_new
+ Copy-Item ([System.IO.Path]::Combine($x64_static_runtime_path_old, 'onnxruntime.dll')) ([System.IO.Path]::Combine($x64_static_runtime_path_new, 'onnxruntime.dll'))
+ Copy-Item ([System.IO.Path]::Combine($x64_static_runtime_path_old, 'onnxruntime.lib')) ([System.IO.Path]::Combine($x64_static_runtime_path_new, 'onnxruntime.lib'))
+ Copy-Item ([System.IO.Path]::Combine($x64_static_runtime_path_old, 'microsoft.ai.machinelearning.dll')) ([System.IO.Path]::Combine($x64_static_runtime_path_new, 'microsoft.ai.machinelearning.dll'))
+ Copy-Item ([System.IO.Path]::Combine($x64_static_runtime_path_old, 'microsoft.ai.machinelearning.lib')) ([System.IO.Path]::Combine($x64_static_runtime_path_new, 'microsoft.ai.machinelearning.lib'))
+
+ Copy-Item ([System.IO.Path]::Combine($x86_static_runtime_path_old, 'onnxruntime.dll')) ([System.IO.Path]::Combine($x86_static_runtime_path_new, 'onnxruntime.dll'))
+ Copy-Item ([System.IO.Path]::Combine($x86_static_runtime_path_old, 'onnxruntime.lib')) ([System.IO.Path]::Combine($x86_static_runtime_path_new, 'onnxruntime.lib'))
+ Copy-Item ([System.IO.Path]::Combine($x86_static_runtime_path_old, 'microsoft.ai.machinelearning.dll')) ([System.IO.Path]::Combine($x86_static_runtime_path_new, 'microsoft.ai.machinelearning.dll'))
+ Copy-Item ([System.IO.Path]::Combine($x86_static_runtime_path_old, 'microsoft.ai.machinelearning.lib')) ([System.IO.Path]::Combine($x86_static_runtime_path_new, 'microsoft.ai.machinelearning.lib'))
+
+ Copy-Item ([System.IO.Path]::Combine($arm64_static_runtime_path_old, 'onnxruntime.dll')) ([System.IO.Path]::Combine($arm64_static_runtime_path_new, 'onnxruntime.dll'))
+ Copy-Item ([System.IO.Path]::Combine($arm64_static_runtime_path_old, 'onnxruntime.lib')) ([System.IO.Path]::Combine($arm64_static_runtime_path_new, 'onnxruntime.lib'))
+ Copy-Item ([System.IO.Path]::Combine($arm64_static_runtime_path_old, 'microsoft.ai.machinelearning.dll')) ([System.IO.Path]::Combine($arm64_static_runtime_path_new, 'microsoft.ai.machinelearning.dll'))
+ Copy-Item ([System.IO.Path]::Combine($arm64_static_runtime_path_old, 'microsoft.ai.machinelearning.lib')) ([System.IO.Path]::Combine($arm64_static_runtime_path_new, 'microsoft.ai.machinelearning.lib'))
+
+ Copy-Item ([System.IO.Path]::Combine($arm_static_runtime_path_old, 'onnxruntime.dll')) ([System.IO.Path]::Combine($arm_static_runtime_path_new, 'onnxruntime.dll'))
+ Copy-Item ([System.IO.Path]::Combine($arm_static_runtime_path_old, 'onnxruntime.lib')) ([System.IO.Path]::Combine($arm_static_runtime_path_new, 'onnxruntime.lib'))
+ Copy-Item ([System.IO.Path]::Combine($arm_static_runtime_path_old, 'microsoft.ai.machinelearning.dll')) ([System.IO.Path]::Combine($arm_static_runtime_path_new, 'microsoft.ai.machinelearning.dll'))
+ Copy-Item ([System.IO.Path]::Combine($arm_static_runtime_path_old, 'microsoft.ai.machinelearning.lib')) ([System.IO.Path]::Combine($arm_static_runtime_path_new, 'microsoft.ai.machinelearning.lib'))
+
Copy-Item -Recurse $uap_build_path_old $uap_build_path_new
$merged_nuget_path = [System.IO.Path]::Combine($Env:BUILD_ARTIFACTSTAGINGDIRECTORY, 'merged')
diff --git a/tools/ci_build/github/azure-pipelines/templates/windowsai-nuget-build.yml b/tools/ci_build/github/azure-pipelines/templates/windowsai-nuget-build.yml
index 54eda01d51..394e3eeb0b 100644
--- a/tools/ci_build/github/azure-pipelines/templates/windowsai-nuget-build.yml
+++ b/tools/ci_build/github/azure-pipelines/templates/windowsai-nuget-build.yml
@@ -2,6 +2,7 @@ parameters:
BuildArch: 'x64'
RunTests : 'true'
BuildForStore: 'false'
+ Runtime: 'dynamic'
steps:
- template: telemetry-steps.yml
@@ -33,26 +34,43 @@ steps:
modifyEnvironment: true
workingFolder: '$(Build.BinariesDirectory)'
+ - powershell: |
+ Write-Host "##vso[task.setvariable variable=BuildFlags]"
+ Write-Host "##vso[task.setvariable variable=ArtifactName]Microsoft.AI.MachineLearning.${{ parameters.BuildArch }}"
+ displayName: Initialize build flags
+
+ - powershell: |
+ Write-Host "##vso[task.setvariable variable=BuildFlags]$(BuildFlags) --${{ parameters.BuildArch }}"
+ displayName: Add cross compilation flags
+ condition: ne('${{ parameters.BuildArch }}', 'x64')
+
+ - powershell: |
+ Write-Host "##vso[task.setvariable variable=BuildFlags]$(BuildFlags) --use_dml"
+ displayName: Add DML flags
+ condition: or(eq('${{ parameters.BuildArch }}', 'x64'), eq('${{ parameters.BuildArch }}', 'x86'))
+
+ - powershell: |
+ Write-Host "##vso[task.setvariable variable=BuildFlags]$(BuildFlags) --enable_wcos"
+ displayName: Add OneCore flags
+ condition: eq('${{ parameters.BuildForStore }}', 'false')
+
+ - powershell: |
+ Write-Host "##vso[task.setvariable variable=BuildFlags]$(BuildFlags) --enable_windows_store"
+ Write-Host "##vso[task.setvariable variable=ArtifactName]$(ArtifactName).Store"
+ displayName: Add Microsoft Store flags
+ condition: eq('${{ parameters.BuildForStore }}', 'true')
+
+ - powershell: |
+ Write-Host "##vso[task.setvariable variable=BuildFlags]$(BuildFlags) --enable_msvc_static_runtime"
+ Write-Host "##vso[task.setvariable variable=ArtifactName]$(ArtifactName).StaticRuntime"
+ displayName: Add static runtime flags
+ condition: eq('${{ parameters.Runtime }}', 'static')
+
- task: PythonScript@0
displayName: 'Generate CMake Configuration'
inputs:
scriptPath: '$(Build.SourcesDirectory)\tools\ci_build\build.py'
- ${{ if and(eq(parameters.BuildArch, 'x64'), eq(parameters.BuildForStore, 'false')) }}:
- arguments: '--build_dir $(Build.BinariesDirectory) --skip_submodule_sync --build_shared_lib --enable_onnx_tests --enable_wcos $(TelemetryOption) --use_dml --use_winml --cmake_generator "Visual Studio 16 2019" --update --config RelWithDebInfo --enable_lto --disable_rtti'
- ${{ if and(eq(parameters.BuildArch, 'x64'), eq(parameters.BuildForStore, 'true')) }}:
- arguments: '--build_dir $(Build.BinariesDirectory) --skip_submodule_sync --build_shared_lib --skip_winml_tests --enable_wcos $(TelemetryOption) --use_winml --cmake_generator "Visual Studio 16 2019" --update --config RelWithDebInfo --enable_lto --disable_rtti --enable_windows_store --target winml_dll'
- ${{ if and(eq(parameters.BuildArch, 'x86'), eq(parameters.BuildForStore, 'false')) }}:
- arguments: '--build_dir $(Build.BinariesDirectory) --skip_submodule_sync --build_shared_lib --enable_onnx_tests --enable_wcos $(TelemetryOption) --use_dml --use_winml --cmake_generator "Visual Studio 16 2019" --update --config RelWithDebInfo --enable_lto --disable_rtti --x86'
- ${{ if and(eq(parameters.BuildArch, 'x86'), eq(parameters.BuildForStore, 'true')) }}:
- arguments: '--build_dir $(Build.BinariesDirectory) --skip_submodule_sync --build_shared_lib --skip_winml_tests --enable_wcos $(TelemetryOption) --use_winml --cmake_generator "Visual Studio 16 2019" --update --config RelWithDebInfo --enable_lto --disable_rtti --x86 --enable_windows_store --target winml_dll'
- ${{ if and(eq(parameters.BuildArch, 'arm64'), eq(parameters.BuildForStore, 'false')) }}:
- arguments: '--build_dir $(Build.BinariesDirectory) --skip_submodule_sync --build_shared_lib --enable_onnx_tests --enable_wcos $(TelemetryOption) --use_winml --cmake_generator "Visual Studio 16 2019" --update --config RelWithDebInfo --enable_lto --disable_rtti --arm64'
- ${{ if and(eq(parameters.BuildArch, 'arm64'), eq(parameters.BuildForStore, 'true')) }}:
- arguments: '--build_dir $(Build.BinariesDirectory) --skip_submodule_sync --build_shared_lib --skip_winml_tests --enable_wcos $(TelemetryOption) --use_winml --cmake_generator "Visual Studio 16 2019" --update --config RelWithDebInfo --enable_lto --disable_rtti --arm64 --enable_windows_store --target winml_dll'
- ${{ if and(eq(parameters.BuildArch, 'arm'), eq(parameters.BuildForStore, 'false')) }}:
- arguments: '--build_dir $(Build.BinariesDirectory) --skip_submodule_sync --build_shared_lib --enable_onnx_tests --enable_wcos $(TelemetryOption) --use_winml --cmake_generator "Visual Studio 16 2019" --update --config RelWithDebInfo --enable_lto --disable_rtti --arm'
- ${{ if and(eq(parameters.BuildArch, 'arm'), eq(parameters.BuildForStore, 'true')) }}:
- arguments: '--build_dir $(Build.BinariesDirectory) --skip_submodule_sync --build_shared_lib --skip_winml_tests --enable_wcos $(TelemetryOption) --use_winml --cmake_generator "Visual Studio 16 2019" --update --config RelWithDebInfo --enable_lto --disable_rtti --arm --enable_windows_store --target winml_dll'
+ arguments: '--build_dir $(Build.BinariesDirectory) --skip_submodule_sync --build_shared_lib --enable_onnx_tests $(TelemetryOption) --use_winml --cmake_generator "Visual Studio 16 2019" --update --config RelWithDebInfo --enable_lto --disable_rtti $(BuildFlags)'
workingDirectory: '$(Build.BinariesDirectory)'
- ${{ if or(notIn(parameters['sln_platform'], 'Win32', 'x64'), eq(parameters.BuildForStore, 'true')) }}:
@@ -107,7 +125,7 @@ steps:
workingFolder: '$(Build.BinariesDirectory)\RelWithDebInfo'
createLogFile: true
- - ${{ if and(eq(parameters.BuildArch, 'x64'), eq(parameters.BuildForStore, 'false')) }}:
+ - ${{ if and(eq(parameters.BuildArch, 'x64'), eq(parameters.BuildForStore, 'false'), eq(parameters.Runtime, 'dynamic')) }}:
- script: |
mklink /D /J $(Build.BinariesDirectory)\RelWithDebInfo\models $(Build.BinariesDirectory)\models
DIR dist\ /S /B > wheel_filename_file
@@ -133,7 +151,7 @@ steps:
testRunTitle: 'Unit Test Run'
condition: succeededOrFailed()
- - ${{ if and(eq(parameters.BuildArch, 'x64'), eq(parameters.BuildForStore, 'false')) }}:
+ - ${{ if and(eq(parameters.BuildArch, 'x64'), eq(parameters.BuildForStore, 'false'), eq(parameters.Runtime, 'dynamic')) }}:
- script: |
xcopy $(Build.BinariesDirectory)\RelWithDebInfo\RelWithDebInfo\winml_test_api.exe $(Build.ArtifactStagingDirectory)\test_artifact\
copy $(Build.BinariesDirectory)\RelWithDebInfo\RelWithDebInfo\winml_test_scenario.exe $(Build.ArtifactStagingDirectory)\test_artifact\
@@ -228,19 +246,11 @@ steps:
workingDirectory: '$(Build.SourcesDirectory)\csharp'
displayName: 'Create NuGet Package'
- - ${{ if eq(parameters.BuildForStore, 'false') }}:
- - task: PublishPipelineArtifact@0
- displayName: 'Publish Pipeline Artifact: Microsoft.AI.MachineLearning ${{ parameters.BuildArch }}'
- inputs:
- artifactName: 'Microsoft.AI.MachineLearning.${{ parameters.BuildArch }}'
- targetPath: '$(Build.ArtifactStagingDirectory)'
-
- - ${{ if eq(parameters.BuildForStore, 'true') }}:
- - task: PublishPipelineArtifact@0
- displayName: 'Publish Pipeline Artifact: Microsoft.AI.MachineLearning ${{ parameters.BuildArch }}'
- inputs:
- artifactName: 'Microsoft.AI.MachineLearning.${{ parameters.BuildArch }}.Store'
- targetPath: '$(Build.ArtifactStagingDirectory)'
+ - task: PublishPipelineArtifact@0
+ displayName: 'Publish Pipeline Artifact: $(ArtifactName)'
+ inputs:
+ artifactName: '$(ArtifactName)'
+ targetPath: '$(Build.ArtifactStagingDirectory)'
- task: PublishSymbols@2
displayName: 'Publish Build Symbols'