Skip to content

Commit 84f0c10

Browse files
authored
Enhance Qt runtime detection in build workflow
Updated the build workflow to locate Qt runtime and CMake package, and adjusted paths for better compatibility.
1 parent d2e7796 commit 84f0c10

File tree

1 file changed

+33
-6
lines changed

1 file changed

+33
-6
lines changed

.github/workflows/build_openms_package.yaml

Lines changed: 33 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
name: Build OpenMS package
2+
23
on:
34
workflow_dispatch:
45

@@ -26,18 +27,35 @@ jobs:
2627
cache: 'false'
2728
archives: 'qtsvg qtimageformats qtbase'
2829

29-
- name: Locate Qt runtime and add to PATH
30+
- name: Locate Qt runtime and CMake package
3031
shell: pwsh
3132
run: |
3233
$qtCore = Get-ChildItem -Path "$env:RUNNER_WORKSPACE", "$env:RUNNER_TEMP", "C:\Qt" `
3334
-Filter Qt6Core.dll -Recurse -ErrorAction SilentlyContinue | Select-Object -First 1
3435
if (-not $qtCore) {
3536
throw "Qt6Core.dll not found after install-qt-action"
3637
}
38+
3739
$qtBin = $qtCore.Directory.FullName
40+
$qtRoot = Split-Path $qtBin -Parent
41+
$qtCMakeDir = Join-Path $qtRoot "lib\cmake\Qt6"
42+
43+
if (-not (Test-Path (Join-Path $qtBin "Qt6Core.dll"))) {
44+
throw "Qt6Core.dll missing in $qtBin"
45+
}
46+
if (-not (Test-Path $qtCMakeDir)) {
47+
throw "Qt6 CMake package dir not found: $qtCMakeDir"
48+
}
49+
3850
"QT_BIN_DIR=$qtBin" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
51+
"QT_ROOT_DIR=$qtRoot" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
52+
"Qt6_DIR=$qtCMakeDir" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
53+
3954
$qtBin | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
55+
4056
Write-Host "Using Qt bin: $qtBin"
57+
Write-Host "Using Qt root: $qtRoot"
58+
Write-Host "Using Qt6_DIR: $qtCMakeDir"
4159
4260
- name: Set up Visual Studio shell
4361
uses: egor-tensin/vs-shell@v2
@@ -113,9 +131,9 @@ jobs:
113131
- name: Build Windows
114132
shell: bash
115133
run: |
116-
mkdir $GITHUB_WORKSPACE/OpenMS/bld/
117-
bash OpenMS/tools/ci/capture-env.sh -v $GITHUB_WORKSPACE/OpenMS/bld/CMakeCache.txt
118-
ctest --output-on-failure -V -S $GITHUB_WORKSPACE/OpenMS/tools/ci/cibuild.cmake
134+
mkdir -p "$GITHUB_WORKSPACE/OpenMS/bld"
135+
bash OpenMS/tools/ci/capture-env.sh -v "$GITHUB_WORKSPACE/OpenMS/bld/CMakeCache.txt"
136+
ctest --output-on-failure -V -S "$GITHUB_WORKSPACE/OpenMS/tools/ci/cibuild.cmake"
119137
env:
120138
OPENMS_CONTRIB_LIBS: "${{ github.workspace }}/OpenMS/contrib"
121139
CI_PROVIDER: "GitHub-Actions"
@@ -138,27 +156,36 @@ jobs:
138156
CCACHE_COMPRESS: true
139157
CCACHE_COMPRESSLEVEL: 12
140158
CCACHE_MAXSIZE: 400M
159+
CMAKE_PREFIX_PATH: "${{ env.QT_ROOT_DIR }}"
160+
Qt6_DIR: "${{ env.Qt6_DIR }}"
161+
PATH: "${{ env.QT_BIN_DIR }};${{ github.workspace }}\\OpenMS\\contrib\\lib;${{ env.PATH }}"
141162

142163
- name: Verify runtime DLL visibility before packaging
143164
shell: pwsh
144165
run: |
145166
Write-Host "QT_BIN_DIR=$env:QT_BIN_DIR"
167+
Write-Host "QT_ROOT_DIR=$env:QT_ROOT_DIR"
168+
Write-Host "Qt6_DIR=$env:Qt6_DIR"
169+
146170
if (-not (Test-Path (Join-Path $env:QT_BIN_DIR "Qt6Core.dll"))) {
147171
throw "Qt6Core.dll is not reachable in QT_BIN_DIR"
148172
}
149-
Get-Command Qt6Core.dll -ErrorAction SilentlyContinue | Format-List *
173+
174+
Get-ChildItem "$env:QT_BIN_DIR" | Where-Object { $_.Name -like "Qt6*.dll" } | Select-Object Name
150175
151176
- name: Package
152177
shell: bash
153178
run: |
154-
ctest --output-on-failure -V -S $GITHUB_WORKSPACE/OpenMS/tools/ci/cipackage.cmake
179+
ctest --output-on-failure -V -S "$GITHUB_WORKSPACE/OpenMS/tools/ci/cipackage.cmake"
155180
env:
156181
SOURCE_DIRECTORY: "${{ github.workspace }}/OpenMS"
157182
PACKAGE_TYPE: zip
158183
SEARCH_ENGINES_DIRECTORY: "${{ github.workspace }}/_thirdparty"
159184
CI_PROVIDER: "GitHub-Actions"
160185
CPACK_PACKAGE_FILE_NAME: "openms-package"
161186
BUILD_NAME: "${{ env.RUN_NAME }}-Win64-class-topp-${{ github.run_number }}"
187+
CMAKE_PREFIX_PATH: "${{ env.QT_ROOT_DIR }}"
188+
Qt6_DIR: "${{ env.Qt6_DIR }}"
162189
PATH: "${{ env.QT_BIN_DIR }};${{ github.workspace }}\\OpenMS\\contrib\\lib;${{ env.PATH }}"
163190

164191
- name: Upload package as artifact

0 commit comments

Comments
 (0)