Skip to content

Commit 1470452

Browse files
author
Vladimir Vilimaitis
committed
Set Qt plugin paths for CI tests
1 parent 95ef8d7 commit 1470452

2 files changed

Lines changed: 41 additions & 7 deletions

File tree

.github/workflows/release-binaries.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,8 @@ jobs:
112112
- name: Test
113113
env:
114114
QT_QPA_PLATFORM: minimal
115+
QT_PLUGIN_PATH: ${{ github.workspace }}/vcpkg_installed/${{ matrix.triplet }}/Qt6/plugins
116+
QT_QPA_PLATFORM_PLUGIN_PATH: ${{ github.workspace }}/vcpkg_installed/${{ matrix.triplet }}/Qt6/plugins/platforms
115117
REMBG_NATIVE_RUN_MODEL_TESTS: "1"
116118
U2NET_HOME: ${{ github.workspace }}/build/model-cache
117119
run: ctest --test-dir build --output-on-failure -C Release

src_cpp/CMakeLists.txt

Lines changed: 39 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -206,6 +206,32 @@ if(COMMAND qt_generate_deploy_app_script)
206206
install(SCRIPT ${rembg_gui_deploy_script})
207207
endif()
208208

209+
function(rembg_resolve_qt_plugin_dir output_variable)
210+
if(TARGET Qt6::qmake)
211+
get_target_property(qmake_executable Qt6::qmake IMPORTED_LOCATION)
212+
if(qmake_executable)
213+
execute_process(
214+
COMMAND "${qmake_executable}" -query QT_INSTALL_PLUGINS
215+
OUTPUT_VARIABLE qmake_plugin_dir
216+
OUTPUT_STRIP_TRAILING_WHITESPACE
217+
RESULT_VARIABLE qmake_result
218+
)
219+
if(qmake_result EQUAL 0 AND qmake_plugin_dir)
220+
file(TO_CMAKE_PATH "${qmake_plugin_dir}" qmake_plugin_dir)
221+
set(${output_variable} "${qmake_plugin_dir}" PARENT_SCOPE)
222+
return()
223+
endif()
224+
endif()
225+
endif()
226+
227+
if(DEFINED VCPKG_INSTALLED_DIR AND DEFINED VCPKG_TARGET_TRIPLET)
228+
set(${output_variable} "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/Qt6/plugins" PARENT_SCOPE)
229+
return()
230+
endif()
231+
232+
set(${output_variable} "${CMAKE_BINARY_DIR}/vcpkg_installed/${VCPKG_TARGET_TRIPLET}/Qt6/plugins" PARENT_SCOPE)
233+
endfunction()
234+
209235
if(BUILD_TESTING)
210236
file(TO_CMAKE_PATH "${REMBG_REPO_ROOT}/example.png" REMBG_NATIVE_SAMPLE_IMAGE)
211237
add_executable(rembg-native-tests
@@ -226,15 +252,21 @@ if(BUILD_TESTING)
226252
$<TARGET_FILE_DIR:rembg-native-tests>
227253
)
228254
add_test(NAME rembg-native-tests COMMAND rembg-native-tests)
229-
if(DEFINED VCPKG_INSTALLED_DIR AND DEFINED VCPKG_TARGET_TRIPLET)
230-
set(REMBG_QT_PLUGIN_DIR "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/Qt6/plugins")
231-
else()
232-
set(REMBG_QT_PLUGIN_DIR "${CMAKE_BINARY_DIR}/vcpkg_installed/${VCPKG_TARGET_TRIPLET}/Qt6/plugins")
233-
endif()
255+
rembg_resolve_qt_plugin_dir(REMBG_QT_PLUGIN_DIR)
256+
set(REMBG_QT_PLATFORM_PLUGIN_DIR "${REMBG_QT_PLUGIN_DIR}/platforms")
257+
set(REMBG_TEST_ENVIRONMENT
258+
"QT_QPA_PLATFORM=minimal"
259+
"QT_PLUGIN_PATH=${REMBG_QT_PLUGIN_DIR}"
260+
"QT_QPA_PLATFORM_PLUGIN_PATH=${REMBG_QT_PLATFORM_PLUGIN_DIR}"
261+
)
262+
set(REMBG_TEST_ENVIRONMENT_MODIFICATION
263+
"PATH=path_list_prepend:$<TARGET_FILE_DIR:Qt6::Core>"
264+
"PATH=path_list_prepend:$<TARGET_FILE_DIR:onnxruntime::onnxruntime>"
265+
)
234266
set_tests_properties(rembg-native-tests
235267
PROPERTIES
236268
TIMEOUT 600
237-
ENVIRONMENT_MODIFICATION
238-
"PATH=path_list_prepend:$<TARGET_FILE_DIR:Qt6::Core>;PATH=path_list_prepend:$<TARGET_FILE_DIR:onnxruntime::onnxruntime>;QT_PLUGIN_PATH=path_list_prepend:${REMBG_QT_PLUGIN_DIR}"
269+
ENVIRONMENT "${REMBG_TEST_ENVIRONMENT}"
270+
ENVIRONMENT_MODIFICATION "${REMBG_TEST_ENVIRONMENT_MODIFICATION}"
239271
)
240272
endif()

0 commit comments

Comments
 (0)