diff options
author | Leander Beernaert <leander.beernaert@qt.io> | 2019-08-08 16:46:05 +0200 |
---|---|---|
committer | Leander Beernaert <leander.beernaert@qt.io> | 2019-08-09 08:23:38 +0000 |
commit | 9c3af6ecb26f6d5238addf6be6077a27c3961268 (patch) | |
tree | ca7351893bd436457bb2c9189a10e1e09178f781 /cmake | |
parent | 2d484909405941f69f9005250723518cb7da1587 (diff) |
Fix sourceless qml test case
Minor tweaks to make sure QML test cases without source files work as
expected.
Change-Id: I30b72622692b8f36d01f7a17b9d1456b0ab223ea
Reviewed-by: Qt CMake Build Bot
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Diffstat (limited to 'cmake')
-rw-r--r-- | cmake/QtBuild.cmake | 85 |
1 files changed, 45 insertions, 40 deletions
diff --git a/cmake/QtBuild.cmake b/cmake/QtBuild.cmake index 8d828127c5..bf75a1392b 100644 --- a/cmake/QtBuild.cmake +++ b/cmake/QtBuild.cmake @@ -2121,49 +2121,52 @@ function(add_qt_test name) set(gui_text "GUI") endif() - set(private_includes - "${CMAKE_CURRENT_SOURCE_DIR}" - "${CMAKE_CURRENT_BINARY_DIR}" - "$<BUILD_INTERFACE:${QT_BUILD_DIR}/include>" - ${arg_INCLUDE_DIRECTORIES} - ) + # Handle cases where we have a qml test without source files + if (arg_SOURCES) + set(private_includes + "${CMAKE_CURRENT_SOURCE_DIR}" + "${CMAKE_CURRENT_BINARY_DIR}" + "$<BUILD_INTERFACE:${QT_BUILD_DIR}/include>" + ${arg_INCLUDE_DIRECTORIES} + ) - add_qt_executable("${name}" - ${exceptions_text} - ${gui_text} - NO_INSTALL - OUTPUT_DIRECTORY "${path}" - SOURCES "${arg_SOURCES}" - INCLUDE_DIRECTORIES - ${private_includes} - DEFINES - QT_TESTCASE_BUILDDIR="${CMAKE_CURRENT_BINARY_DIR}" - QT_TESTCASE_SOURCEDIR="${CMAKE_CURRENT_SOURCE_DIR}" - ${arg_DEFINES} - PUBLIC_LIBRARIES ${QT_CMAKE_EXPORT_NAMESPACE}::Core ${QT_CMAKE_EXPORT_NAMESPACE}::Test ${arg_PUBLIC_LIBRARIES} - LIBRARIES ${arg_LIBRARIES} - COMPILE_OPTIONS ${arg_COMPILE_OPTIONS} - LINK_OPTIONS ${arg_LINK_OPTIONS} - MOC_OPTIONS ${arg_MOC_OPTIONS} - ENABLE_AUTOGEN_TOOLS ${arg_ENABLE_AUTOGEN_TOOLS} - DISABLE_AUTOGEN_TOOLS ${arg_DISABLE_AUTOGEN_TOOLS} - ) + add_qt_executable("${name}" + ${exceptions_text} + ${gui_text} + NO_INSTALL + OUTPUT_DIRECTORY "${path}" + SOURCES "${arg_SOURCES}" + INCLUDE_DIRECTORIES + ${private_includes} + DEFINES + QT_TESTCASE_BUILDDIR="${CMAKE_CURRENT_BINARY_DIR}" + QT_TESTCASE_SOURCEDIR="${CMAKE_CURRENT_SOURCE_DIR}" + ${arg_DEFINES} + PUBLIC_LIBRARIES ${QT_CMAKE_EXPORT_NAMESPACE}::Core ${QT_CMAKE_EXPORT_NAMESPACE}::Test ${arg_PUBLIC_LIBRARIES} + LIBRARIES ${arg_LIBRARIES} + COMPILE_OPTIONS ${arg_COMPILE_OPTIONS} + LINK_OPTIONS ${arg_LINK_OPTIONS} + MOC_OPTIONS ${arg_MOC_OPTIONS} + ENABLE_AUTOGEN_TOOLS ${arg_ENABLE_AUTOGEN_TOOLS} + DISABLE_AUTOGEN_TOOLS ${arg_DISABLE_AUTOGEN_TOOLS} + ) - # QMLTest specifics + # QMLTest specifics - extend_target("${name}" CONDITION arg_QMLTEST - PUBLIC_LIBRARIES ${QT_CMAKE_EXPORT_NAMESPACE}::QuickTest - ) + extend_target("${name}" CONDITION arg_QMLTEST + PUBLIC_LIBRARIES ${QT_CMAKE_EXPORT_NAMESPACE}::QuickTest + ) - extend_target("${name}" CONDITION arg_QMLTEST AND NOT ANDROID - DEFINES - QUICK_TEST_SOURCE_DIR="${CMAKE_CURRENT_SOURCE_DIR}" - ) + extend_target("${name}" CONDITION arg_QMLTEST AND NOT ANDROID + DEFINES + QUICK_TEST_SOURCE_DIR="${CMAKE_CURRENT_SOURCE_DIR}" + ) - extend_target("${name}" CONDITION arg_QMLTEST AND ANDROID - DEFINES - QUICK_TEST_SOURCE_DIR=":/" - ) + extend_target("${name}" CONDITION arg_QMLTEST AND ANDROID + DEFINES + QUICK_TEST_SOURCE_DIR=":/" + ) + endif() if (arg_QML_IMPORTPATH) set(extra_test_args "-import" "${arg_QML_IMPORTPATH}") @@ -2174,12 +2177,14 @@ function(add_qt_test name) file(RELATIVE_PATH label "${PROJECT_SOURCE_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}/${name}") if(arg_QMLTEST AND NOT arg_SOURCES) - set(test_executable ${QT_CMAKE_EXPORT_NAMESPACE}::qmltestrunner "$<TARGET_FILE:${name}>") + set(test_working_dir "${CMAKE_CURRENT_SOURCE_DIR}") + set(test_executable ${QT_CMAKE_EXPORT_NAMESPACE}::qmltestrunner) else() + set(test_working_dir "${CMAKE_CURRENT_BINARY_DIR}") set(test_executable "${name}") endif() - add_test(NAME "${name}" COMMAND ${test_executable} ${extra_test_args} -o ${name}.xml,xml -o -,txt WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}") + add_test(NAME "${name}" COMMAND ${test_executable} ${extra_test_args} -o ${name}.xml,xml -o -,txt WORKING_DIRECTORY "${test_working_dir}") set_tests_properties("${name}" PROPERTIES RUN_SERIAL "${arg_RUN_SERIAL}" LABELS "${label}") set_property(TEST "${name}" APPEND PROPERTY ENVIRONMENT "PATH=${path}${QT_PATH_SEPARATOR}${CMAKE_CURRENT_BINARY_DIR}${QT_PATH_SEPARATOR}$ENV{PATH}") |