@@ -206,6 +206,32 @@ if(COMMAND qt_generate_deploy_app_script)
206206 install (SCRIPT ${rembg_gui_deploy_script} )
207207endif ()
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+
209235if (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 )
240272endif ()
0 commit comments