@@ -15,22 +15,28 @@ set(QMLTEST_OPTIONS ADD_TEST CACHE INTERNAL "")
15set(QMLTEST_SINGLE ITERATIONS ARG_PREFIX CACHE INTERNAL "")
15set(QMLTEST_SINGLE ITERATIONS ARG_PREFIX CACHE INTERNAL "")
16set(QMLTEST_MULTI ARGS ENVIRONMENT DEPENDS IMPORT_PATHS TARGETS CACHE INTERNAL "")
16set(QMLTEST_MULTI ARGS ENVIRONMENT DEPENDS IMPORT_PATHS TARGETS CACHE INTERNAL "")
18−# import_executables(name1 [name2 [...]])
18+# import_executables(name1 [name2 [...]]
19+# [OPTIONAL] # continue when not found
20# This will find the named executables and import them
22# This will find the named executables and import them
21# to an imported target of the same name.
23# to an imported target of the same name.
23function(import_executables)
25function(import_executables)
26+ cmake_parse_arguments(QMLTEST "OPTIONAL" "" "" ${ARGN})
24− foreach(NAME ${ARGN})
28+ foreach(NAME ${QMLTEST_UNPARSED_ARGUMENTS})
25 if(NOT TARGET ${NAME})
29 if(NOT TARGET ${NAME})
30+ add_executable(${NAME} IMPORTED GLOBAL)
26 find_program(${NAME}_exe ${NAME})
31 find_program(${NAME}_exe ${NAME})
28− if(NOT ${NAME}_exe)
33+ if(NOT QMLTEST_OPTIONAL AND NOT ${NAME}_exe)
29 message(FATAL_ERROR "Could not locate ${NAME}.")
34 message(FATAL_ERROR "Could not locate ${NAME}.")
35+ elseif(NOT ${NAME}_exe)
36+ message(STATUS "Could not locate ${NAME}, skipping.")
38+ set_target_properties(${NAME} PROPERTIES IMPORTED_LOCATION ${${NAME}_exe})
32− add_executable(${NAME} IMPORTED)
33− set_target_properties(${NAME} PROPERTIES IMPORTED_LOCATION ${${NAME}_exe})
35 endforeach()
41 endforeach()
36endfunction()
42endfunction()
@@ -117,7 +123,7 @@ endfunction()
117# - gdbtest${component_name} - Runs the test under gdb
123# - gdbtest${component_name} - Runs the test under gdb
119function(add_executable_test COMPONENT_NAME TARGET)
125function(add_executable_test COMPONENT_NAME TARGET)
120− import_executables(gdb xvfb-run)
126+ import_executables(gdb xvfb-run OPTIONAL)
122 cmake_parse_arguments(QMLTEST "${QMLTEST_OPTIONS}" "${QMLTEST_SINGLE}" "${QMLTEST_MULTI}" ${ARGN})
128 cmake_parse_arguments(QMLTEST "${QMLTEST_OPTIONS}" "${QMLTEST_SINGLE}" "${QMLTEST_MULTI}" ${ARGN})
123 mangle_arguments()
129 mangle_arguments()
@@ -146,18 +152,22 @@ function(add_executable_test COMPONENT_NAME TARGET)
146 ${targets}
152 ${targets}
149− add_qmltest_target(xvfbtest${COMPONENT_NAME} ${TARGET}
156+ add_qmltest_target(xvfbtest${COMPONENT_NAME} ${TARGET}
150− COMMAND $<TARGET_FILE:xvfb-run> --server-args "-screen 0 1024x768x24" --auto-servernum ${qmltest_command}
157+ COMMAND $<TARGET_FILE:xvfb-run> --server-args "-screen 0 1024x768x24" --auto-servernum ${qmltest_command}
151− ${depends}
158+ ${depends}
152− ENVIRONMENT QML2_IMPORT_PATH=${imports} ${QMLTEST_ENVIRONMENT} LD_PRELOAD=/usr/lib/${ARCH_TRIPLET}/mesa/libGL.so.1
159+ ENVIRONMENT QML2_IMPORT_PATH=${imports} ${QMLTEST_ENVIRONMENT} LD_PRELOAD=/usr/lib/${ARCH_TRIPLET}/mesa/libGL.so.1
153− TARGETS ${xvfb_targets}
160+ TARGETS ${xvfb_targets}
156− add_qmltest_target(gdbtest${COMPONENT_NAME} ${TARGET}
165+ add_qmltest_target(gdbtest${COMPONENT_NAME} ${TARGET}
157− COMMAND $<TARGET_FILE:gdb> -ex run -args ${qmltest_command}
166+ COMMAND $<TARGET_FILE:gdb> -ex run -args ${qmltest_command}
158− ${depends}
167+ ${depends}
159− ENVIRONMENT QML2_IMPORT_PATH=${imports} ${QMLTEST_ENVIRONMENT}
168+ ENVIRONMENT QML2_IMPORT_PATH=${imports} ${QMLTEST_ENVIRONMENT}
161endfunction()
171endfunction()
@@ -173,7 +183,7 @@ endfunction()
173# - gdbtry${component_name} - Runs the test under gdb
183# - gdbtry${component_name} - Runs the test under gdb
175function(add_manual_test COMPONENT_NAME TARGET)
185function(add_manual_test COMPONENT_NAME TARGET)
176− import_executables(gdb)
186+ import_executables(gdb OPTIONAL)
178 cmake_parse_arguments(QMLTEST "${QMLTEST_OPTIONS}" "${QMLTEST_SINGLE}" "${QMLTEST_MULTI}" ${ARGN})
188 cmake_parse_arguments(QMLTEST "${QMLTEST_OPTIONS}" "${QMLTEST_SINGLE}" "${QMLTEST_MULTI}" ${ARGN})
179 mangle_arguments()
189 mangle_arguments()
@@ -192,11 +202,13 @@ function(add_manual_test COMPONENT_NAME TARGET)
192 ENVIRONMENT QML2_IMPORT_PATH=${imports} ${QMLTEST_ENVIRONMENT}
202 ENVIRONMENT QML2_IMPORT_PATH=${imports} ${QMLTEST_ENVIRONMENT}
195− add_qmltest_target(gdbtry${COMPONENT_NAME} ${TARGET}
206+ add_qmltest_target(gdbtry${COMPONENT_NAME} ${TARGET}
196− COMMAND $<TARGET_FILE:gdb> -ex run -args ${qmltry_command}
207+ COMMAND $<TARGET_FILE:gdb> -ex run -args ${qmltry_command}
197− ${depends}
208+ ${depends}
198− ENVIRONMENT QML2_IMPORT_PATH=${imports} ${QMLTEST_ENVIRONMENT}
209+ ENVIRONMENT QML2_IMPORT_PATH=${imports} ${QMLTEST_ENVIRONMENT}
200endfunction()
212endfunction()