Skip to content

Commit 6ecde97

Browse files
committed
fix: add CMake package support and fix artifact layout for Windows C-API package
Fixes #28468 - Move DLLs to bin\ and import libs/PDBs to lib\ to match CMake install destinations (RUNTIME -> bin, ARCHIVE -> lib) - Add CMake package files (onnxruntimeConfig.cmake, onnxruntimeConfigVersion.cmake, onnxruntimeTargets*.cmake) to lib\cmake\onnxruntime\ in the artifact - Add if exist guards for all optional provider binaries (CUDA, TensorRT, WebGPU, QNN) to prevent packaging failures when not built - Add loud exit /b 1 failure when CMake config files are missing - Update bundle_dlls_gpu.bat in lockstep: .dll source paths changed from \lib\ to \bin\, mkdir \bin added, 7z repack updated to include both \bin and \lib - Drop onnx_test_runner.exe from redistributable package - Replace non-ASCII arrows and # comments with REM and -> - Guard all mkdir calls with if not exist - Quote for /d glob path - Normalize indentation throughout
1 parent 6018ec1 commit 6ecde97

2 files changed

Lines changed: 61 additions & 29 deletions

File tree

tools/ci_build/github/azure-pipelines/templates/c-api-artifacts-package-and-publish-steps-windows.yml

Lines changed: 56 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -55,14 +55,38 @@ steps:
5555
displayName: 'Copy build artifacts for zipping'
5656
inputs:
5757
script: |
58-
mkdir $(Build.BinariesDirectory)\${{parameters.artifactName}}
59-
mkdir $(Build.BinariesDirectory)\${{parameters.artifactName}}\bin
60-
mkdir $(Build.BinariesDirectory)\${{parameters.artifactName}}\lib
61-
mkdir $(Build.BinariesDirectory)\${{parameters.artifactName}}\include\onnxruntime
62-
mkdir $(Build.BinariesDirectory)\${{parameters.artifactName}}\include\onnxruntime\core
63-
mkdir $(Build.BinariesDirectory)\${{parameters.artifactName}}\include\onnxruntime\core\providers
64-
mkdir $(Build.BinariesDirectory)\${{parameters.artifactName}}\lib\cmake
65-
mkdir $(Build.BinariesDirectory)\${{parameters.artifactName}}\lib\cmake\onnxruntime
58+
59+
if not exist $(Build.BinariesDirectory)\${{parameters.artifactName}} (
60+
mkdir $(Build.BinariesDirectory)\${{parameters.artifactName}}
61+
)
62+
63+
if not exist $(Build.BinariesDirectory)\${{parameters.artifactName}}\bin (
64+
mkdir $(Build.BinariesDirectory)\${{parameters.artifactName}}\bin
65+
)
66+
67+
if not exist $(Build.BinariesDirectory)\${{parameters.artifactName}}\lib (
68+
mkdir $(Build.BinariesDirectory)\${{parameters.artifactName}}\lib
69+
)
70+
71+
if not exist $(Build.BinariesDirectory)\${{parameters.artifactName}}\include\onnxruntime (
72+
mkdir $(Build.BinariesDirectory)\${{parameters.artifactName}}\include\onnxruntime
73+
)
74+
75+
if not exist $(Build.BinariesDirectory)\${{parameters.artifactName}}\include\onnxruntime\core (
76+
mkdir $(Build.BinariesDirectory)\${{parameters.artifactName}}\include\onnxruntime\core
77+
)
78+
79+
if not exist $(Build.BinariesDirectory)\${{parameters.artifactName}}\include\onnxruntime\core\providers (
80+
mkdir $(Build.BinariesDirectory)\${{parameters.artifactName}}\include\onnxruntime\core\providers
81+
)
82+
83+
if not exist $(Build.BinariesDirectory)\${{parameters.artifactName}}\lib\cmake (
84+
mkdir $(Build.BinariesDirectory)\${{parameters.artifactName}}\lib\cmake
85+
)
86+
87+
if not exist $(Build.BinariesDirectory)\${{parameters.artifactName}}\lib\cmake\onnxruntime (
88+
mkdir $(Build.BinariesDirectory)\${{parameters.artifactName}}\lib\cmake\onnxruntime
89+
)
6690
6791
if exist $(Build.BinariesDirectory)\${{parameters.buildConfig}}\${{parameters.buildConfig}}\onnxruntime_providers_cuda.dll (
6892
echo "cuda context headers copied"
@@ -75,22 +99,17 @@ steps:
7599
76100
echo "Directories created"
77101
78-
# Core ORT DLL bin\, LIB/PDB lib\
102+
REM Core ORT DLL -> bin\, LIB/PDB -> lib\
79103
copy $(Build.BinariesDirectory)\${{parameters.buildConfig}}\${{parameters.buildConfig}}\onnxruntime.dll $(Build.BinariesDirectory)\${{parameters.artifactName}}\bin
80104
copy $(Build.BinariesDirectory)\${{parameters.buildConfig}}\${{parameters.buildConfig}}\onnxruntime.lib $(Build.BinariesDirectory)\${{parameters.artifactName}}\lib
81105
copy $(Build.BinariesDirectory)\${{parameters.buildConfig}}\${{parameters.buildConfig}}\onnxruntime.pdb $(Build.BinariesDirectory)\${{parameters.artifactName}}\lib
82106
83-
# Providers Shared DLL bin\, LIB/PDB lib\
107+
REM Providers Shared DLL -> bin\, LIB/PDB -> lib\
84108
copy $(Build.BinariesDirectory)\${{parameters.buildConfig}}\${{parameters.buildConfig}}\onnxruntime_providers_shared.dll $(Build.BinariesDirectory)\${{parameters.artifactName}}\bin
85109
copy $(Build.BinariesDirectory)\${{parameters.buildConfig}}\${{parameters.buildConfig}}\onnxruntime_providers_shared.lib $(Build.BinariesDirectory)\${{parameters.artifactName}}\lib
86110
copy $(Build.BinariesDirectory)\${{parameters.buildConfig}}\${{parameters.buildConfig}}\onnxruntime_providers_shared.pdb $(Build.BinariesDirectory)\${{parameters.artifactName}}\lib
87111
88-
# onnx_test_runner.exe → bin\
89-
if exist $(Build.BinariesDirectory)\${{parameters.buildConfig}}\${{parameters.buildConfig}}\onnx_test_runner.exe (
90-
copy $(Build.BinariesDirectory)\${{parameters.buildConfig}}\${{parameters.buildConfig}}\onnx_test_runner.exe $(Build.BinariesDirectory)\${{parameters.artifactName}}\bin
91-
)
92-
93-
# CUDA EP DLL → bin\, LIB/PDB → lib\
112+
REM CUDA EP DLL -> bin\, LIB/PDB -> lib\
94113
if exist $(Build.BinariesDirectory)\${{parameters.buildConfig}}\${{parameters.buildConfig}}\onnxruntime_providers_cuda.dll (
95114
copy $(Build.BinariesDirectory)\${{parameters.buildConfig}}\${{parameters.buildConfig}}\onnxruntime_providers_cuda.dll $(Build.BinariesDirectory)\${{parameters.artifactName}}\bin
96115
)
@@ -103,7 +122,7 @@ steps:
103122
copy $(Build.BinariesDirectory)\${{parameters.buildConfig}}\${{parameters.buildConfig}}\onnxruntime_providers_cuda.pdb $(Build.BinariesDirectory)\${{parameters.artifactName}}\lib
104123
)
105124
106-
# WebGPU DLLs bin\
125+
REM WebGPU DLLs -> bin\
107126
if exist $(Build.BinariesDirectory)\${{parameters.buildConfig}}\${{parameters.buildConfig}}\dxcompiler.dll (
108127
copy $(Build.BinariesDirectory)\${{parameters.buildConfig}}\${{parameters.buildConfig}}\dxcompiler.dll $(Build.BinariesDirectory)\${{parameters.artifactName}}\bin
109128
)
@@ -112,7 +131,7 @@ steps:
112131
copy $(Build.BinariesDirectory)\${{parameters.buildConfig}}\${{parameters.buildConfig}}\dxil.dll $(Build.BinariesDirectory)\${{parameters.artifactName}}\bin
113132
)
114133
115-
# QNN DLLs bin\
134+
REM QNN DLLs -> bin\
116135
if exist $(Build.BinariesDirectory)\${{parameters.buildConfig}}\${{parameters.buildConfig}}\onnxruntime_providers_qnn.dll (
117136
copy $(Build.BinariesDirectory)\${{parameters.buildConfig}}\${{parameters.buildConfig}}\onnxruntime_providers_qnn.dll $(Build.BinariesDirectory)\${{parameters.artifactName}}\bin
118137
@@ -166,7 +185,7 @@ steps:
166185
)
167186
168187
169-
# TensorRT EP DLL bin\, LIB/PDB lib\
188+
REM TensorRT EP DLL -> bin\, LIB/PDB -> lib\
170189
if /I "${{ parameters.trtEnabled }}"=="true" (
171190
if exist $(Build.BinariesDirectory)\${{parameters.buildConfig}}\${{parameters.buildConfig}}\onnxruntime_providers_tensorrt.dll (
172191
copy $(Build.BinariesDirectory)\${{parameters.buildConfig}}\${{parameters.buildConfig}}\onnxruntime_providers_tensorrt.dll $(Build.BinariesDirectory)\${{parameters.artifactName}}\bin
@@ -181,13 +200,13 @@ steps:
181200
)
182201
)
183202
184-
# Headers (flat into include\)
203+
REM Headers (flat into include\onnxruntime)
185204
copy $(Build.SourcesDirectory)\include\onnxruntime\core\session\onnxruntime_*.h $(Build.BinariesDirectory)\${{parameters.artifactName}}\include\onnxruntime
186205
copy $(Build.SourcesDirectory)\include\onnxruntime\core\framework\provider_options.h $(Build.BinariesDirectory)\${{parameters.artifactName}}\include\onnxruntime
187206
copy $(Build.SourcesDirectory)\include\onnxruntime\core\providers\cpu\cpu_provider_factory.h $(Build.BinariesDirectory)\${{parameters.artifactName}}\include\onnxruntime
188207
copy $(Build.SourcesDirectory)\orttraining\orttraining\training_api\include\onnxruntime_training*.h $(Build.BinariesDirectory)\${{parameters.artifactName}}\include\onnxruntime
189208
190-
# Docs and License root\
209+
REM Docs and License -> root\
191210
copy $(Build.SourcesDirectory)\README.md $(Build.BinariesDirectory)\${{parameters.artifactName}}\README.md
192211
copy $(Build.SourcesDirectory)\docs\Privacy.md $(Build.BinariesDirectory)\${{parameters.artifactName}}\Privacy.md
193212
copy $(Build.SourcesDirectory)\LICENSE $(Build.BinariesDirectory)\${{parameters.artifactName}}\LICENSE
@@ -196,12 +215,24 @@ steps:
196215
197216
@echo ${{parameters.commitId}} > $(Build.BinariesDirectory)\${{parameters.artifactName}}\GIT_COMMIT_ID
198217
199-
# CMake Package Files → lib\cmake\onnxruntime\
200-
copy $(Build.BinariesDirectory)\${{parameters.buildConfig}}\onnxruntimeConfig.cmake $(Build.BinariesDirectory)\${{parameters.artifactName}}\lib\cmake\onnxruntime
218+
REM CMake Package Files -> lib\cmake\onnxruntime\
219+
if not exist "$(Build.BinariesDirectory)\${{parameters.buildConfig}}\onnxruntimeConfig.cmake" (
220+
echo ERROR: onnxruntimeConfig.cmake not found
221+
exit /b 1
222+
)
223+
224+
if not exist "$(Build.BinariesDirectory)\${{parameters.buildConfig}}\onnxruntimeConfigVersion.cmake" (
225+
echo ERROR: onnxruntimeConfigVersion.cmake not found
226+
exit /b 1
227+
)
228+
229+
copy "$(Build.BinariesDirectory)\${{parameters.buildConfig}}\onnxruntimeConfig.cmake" ^
230+
"$(Build.BinariesDirectory)\${{parameters.artifactName}}\lib\cmake\onnxruntime"
201231
202-
copy $(Build.BinariesDirectory)\${{parameters.buildConfig}}\onnxruntimeConfigVersion.cmake $(Build.BinariesDirectory)\${{parameters.artifactName}}\lib\cmake\onnxruntime
232+
copy "$(Build.BinariesDirectory)\${{parameters.buildConfig}}\onnxruntimeConfigVersion.cmake" ^
233+
"$(Build.BinariesDirectory)\${{parameters.artifactName}}\lib\cmake\onnxruntime"
203234
204-
for /d %%D in ($(Build.BinariesDirectory)\${{parameters.buildConfig}}\CMakeFiles\Export\*) do (
235+
for /d %%D in ("$(Build.BinariesDirectory)\${{parameters.buildConfig}}\CMakeFiles\Export\*") do (
205236
if exist "%%D\onnxruntimeTargets.cmake" (
206237
copy "%%D\onnxruntimeTargets.cmake" ^
207238
"$(Build.BinariesDirectory)\${{parameters.artifactName}}\lib\cmake\onnxruntime"

tools/ci_build/github/windows/bundle_dlls_gpu.bat

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,16 @@ FOR /R %%i IN (*.zip) do (
77
set filename=%%~ni
88
IF "!filename:~20,3!"=="gpu" (
99
mkdir !filename!\lib
10-
move onnxruntime-win-x64-tensorrt\lib\onnxruntime_providers_tensorrt.dll !filename!\lib\onnxruntime_providers_tensorrt.dll
10+
mkdir !filename!\bin
11+
move onnxruntime-win-x64-tensorrt\bin\onnxruntime_providers_tensorrt.dll !filename!\bin\onnxruntime_providers_tensorrt.dll
1112
move onnxruntime-win-x64-tensorrt\lib\onnxruntime_providers_tensorrt.lib !filename!\lib\onnxruntime_providers_tensorrt.lib
1213
move onnxruntime-win-x64-tensorrt\lib\onnxruntime_providers_tensorrt.pdb !filename!\lib\onnxruntime_providers_tensorrt.pdb
13-
move onnxruntime-win-x64-tensorrt\lib\onnxruntime_providers_shared.dll !filename!\lib\onnxruntime_providers_shared.dll
14+
move onnxruntime-win-x64-tensorrt\bin\onnxruntime_providers_shared.dll !filename!\bin\onnxruntime_providers_shared.dll
1415
move onnxruntime-win-x64-tensorrt\lib\onnxruntime_providers_shared.lib !filename!\lib\onnxruntime_providers_shared.lib
1516
move onnxruntime-win-x64-tensorrt\lib\onnxruntime_providers_shared.pdb !filename!\lib\onnxruntime_providers_shared.pdb
16-
move onnxruntime-win-x64-tensorrt\lib\onnxruntime.dll !filename!\lib\onnxruntime.dll
17+
move onnxruntime-win-x64-tensorrt\bin\onnxruntime.dll !filename!\bin\onnxruntime.dll
1718
move onnxruntime-win-x64-tensorrt\lib\onnxruntime.lib !filename!\lib\onnxruntime.lib
1819
move onnxruntime-win-x64-tensorrt\lib\onnxruntime.pdb !filename!\lib\onnxruntime.pdb
19-
7z a %%~ni.zip !filename!\lib
20+
7z a %%~ni.zip !filename!\bin !filename!\lib
2021
)
2122
)

0 commit comments

Comments
 (0)