CMakePM: Filter test also by BUILD_EXECUTABLES list

This way one can build only one test.

Change-Id: Iebf9686108988793193106ebed312f7e86ee2e61
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
This commit is contained in:
Cristian Adam
2021-06-10 15:49:13 +02:00
parent 0bdafc56b0
commit 99396421de
2 changed files with 14 additions and 15 deletions

View File

@@ -799,31 +799,26 @@ function(add_qtc_test name)
endif() endif()
endforeach() endforeach()
set(TEST_DEFINES SRCDIR="${CMAKE_CURRENT_SOURCE_DIR}")
# relax cast requirements for tests
set(default_defines_copy ${DEFAULT_DEFINES})
list(REMOVE_ITEM default_defines_copy QT_NO_CAST_TO_ASCII QT_RESTRICTED_CAST_FROM_ASCII)
file(RELATIVE_PATH _RPATH "/${IDE_BIN_PATH}" "/${IDE_LIBRARY_PATH}") file(RELATIVE_PATH _RPATH "/${IDE_BIN_PATH}" "/${IDE_LIBRARY_PATH}")
add_executable(${name} ${_arg_SOURCES}) add_qtc_executable(${name}
SOURCES ${_arg_SOURCES}
extend_qtc_target(${name} DEPENDS ${_arg_DEPENDS}
DEPENDS ${_arg_DEPENDS} ${IMPLICIT_DEPENDS} INCLUDES ${_arg_INCLUDES}
INCLUDES "${CMAKE_BINARY_DIR}/src" ${_arg_INCLUDES} DEFINES ${_arg_DEFINES}
DEFINES ${_arg_DEFINES} ${TEST_DEFINES} ${default_defines_copy}
EXPLICIT_MOC ${_arg_EXPLICIT_MOC} EXPLICIT_MOC ${_arg_EXPLICIT_MOC}
SKIP_AUTOMOC ${_arg_SKIP_AUTOMOC} SKIP_AUTOMOC ${_arg_SKIP_AUTOMOC}
ALLOW_ASCII_CASTS
) )
if (NOT TARGET ${name})
return()
endif()
set_target_properties(${name} PROPERTIES set_target_properties(${name} PROPERTIES
CXX_VISIBILITY_PRESET hidden
VISIBILITY_INLINES_HIDDEN ON
BUILD_RPATH "${_RPATH_BASE}/${_RPATH}" BUILD_RPATH "${_RPATH_BASE}/${_RPATH}"
INSTALL_RPATH "${_RPATH_BASE}/${_RPATH}" INSTALL_RPATH "${_RPATH_BASE}/${_RPATH}"
) )
enable_pch(${name})
if (NOT _arg_GTEST) if (NOT _arg_GTEST)
add_test(NAME ${name} COMMAND ${name}) add_test(NAME ${name} COMMAND ${name})

View File

@@ -194,6 +194,10 @@ add_qtc_test(unittest GTEST
mockimagecachestorage.h mockimagecachestorage.h
) )
if (NOT TARGET unittest)
return()
endif()
function(extend_qtc_test_with_target_sources target) function(extend_qtc_test_with_target_sources target)
cmake_parse_arguments(_arg "" "" "DEFINES;INCLUDES" ${ARGN}) cmake_parse_arguments(_arg "" "" "DEFINES;INCLUDES" ${ARGN})