Tests/QtAutogen: Enable per-config source tests when possible

Pass CMAKE_BUILD_TYPE into the test on generators that use it so that
the per-config part of the test can activate as needed.  Do not make the
per-config part conditional on the Debug configuration because the
generator expressions evaluate to empty in other configurations.

Skip the per-config source case with the Ninja generator because it does
not currently work.  cmQtAutoGenerators::InitializeAutogenTarget needs
to know the list of source files on a target, but generator expressions
in the list cannot be evaluated until after CreateGeneratorTargets has
been called.  That cannot happen until after Autogen targets have been
generated.  It is a chicken-and-egg problem.
This commit is contained in:
Brad King 2015-04-16 13:30:32 -04:00
parent 4556640855
commit 26b5cc5e79
2 changed files with 9 additions and 5 deletions

View File

@ -1173,10 +1173,13 @@ ${CMake_BINARY_DIR}/bin/cmake -DDIR=dev -P ${CMake_SOURCE_DIR}/Utilities/Release
set(run_autogen_test QtAutogen) set(run_autogen_test QtAutogen)
set(run_autouic_test QtAutoUicInterface) set(run_autouic_test QtAutoUicInterface)
endif() endif()
if(NOT CMAKE_CONFIGURATION_TYPES)
set(QtAutogen_BUILD_OPTIONS -DCMAKE_BUILD_TYPE=$<CONFIGURATION>)
endif()
find_package(Qt5Widgets QUIET NO_MODULE) find_package(Qt5Widgets QUIET NO_MODULE)
if(Qt5Widgets_FOUND) if(Qt5Widgets_FOUND)
add_test(Qt5Autogen ${CMAKE_CTEST_COMMAND} add_test(NAME Qt5Autogen COMMAND ${CMAKE_CTEST_COMMAND}
--build-and-test --build-and-test
"${CMake_SOURCE_DIR}/Tests/QtAutogen" "${CMake_SOURCE_DIR}/Tests/QtAutogen"
"${CMake_BINARY_DIR}/Tests/Qt5Autogen" "${CMake_BINARY_DIR}/Tests/Qt5Autogen"
@ -1186,6 +1189,7 @@ ${CMake_BINARY_DIR}/bin/cmake -DDIR=dev -P ${CMake_SOURCE_DIR}/Utilities/Release
--force-new-ctest-process --force-new-ctest-process
--build-options ${build_options} --build-options ${build_options}
-DQT_QMAKE_EXECUTABLE:FILEPATH=${QT_QMAKE_EXECUTABLE} -DQT_TEST_VERSION=5 -DQT_QMAKE_EXECUTABLE:FILEPATH=${QT_QMAKE_EXECUTABLE} -DQT_TEST_VERSION=5
${QtAutogen_BUILD_OPTIONS}
--test-command ${run_autogen_test} --test-command ${run_autogen_test}
) )
list(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/Qt5Autogen") list(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/Qt5Autogen")
@ -1205,7 +1209,7 @@ ${CMake_BINARY_DIR}/bin/cmake -DDIR=dev -P ${CMake_SOURCE_DIR}/Utilities/Release
list(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/Qt5AutoUicInterface") list(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/Qt5AutoUicInterface")
endif() endif()
if(QT4_WORKS AND QT_QTGUI_FOUND) if(QT4_WORKS AND QT_QTGUI_FOUND)
add_test(Qt4Autogen ${CMAKE_CTEST_COMMAND} add_test(NAME Qt4Autogen COMMAND ${CMAKE_CTEST_COMMAND}
--build-and-test --build-and-test
"${CMake_SOURCE_DIR}/Tests/QtAutogen" "${CMake_SOURCE_DIR}/Tests/QtAutogen"
"${CMake_BINARY_DIR}/Tests/Qt4Autogen" "${CMake_BINARY_DIR}/Tests/Qt4Autogen"
@ -1215,6 +1219,7 @@ ${CMake_BINARY_DIR}/bin/cmake -DDIR=dev -P ${CMake_SOURCE_DIR}/Utilities/Release
--force-new-ctest-process --force-new-ctest-process
--build-options ${build_options} --build-options ${build_options}
-DQT_QMAKE_EXECUTABLE:FILEPATH=${QT_QMAKE_EXECUTABLE} -DQT_TEST_VERSION=4 -DQT_QMAKE_EXECUTABLE:FILEPATH=${QT_QMAKE_EXECUTABLE} -DQT_TEST_VERSION=4
${QtAutogen_BUILD_OPTIONS}
--test-command ${run_autogen_test} --test-command ${run_autogen_test}
) )
list(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/Qt4Autogen") list(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/Qt4Autogen")

View File

@ -67,10 +67,9 @@ add_custom_command(
DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/myotherinterface.h.in" DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/myotherinterface.h.in"
) )
message("CMAKE_BUILD_TYPE = ${CMAKE_BUILD_TYPE}") if (NOT CMAKE_CONFIGURATION_TYPES AND NOT CMAKE_GENERATOR STREQUAL Ninja)
if (CMAKE_BUILD_TYPE MATCHES "[Dd][Ee][Bb][Uu][Gg]" AND NOT CMAKE_CONFIGURATION_TYPES)
set(debug_srcs "$<$<CONFIG:Debug>:debug_class.cpp>" $<$<CONFIG:Debug>:debug_resource.qrc>) set(debug_srcs "$<$<CONFIG:Debug>:debug_class.cpp>" $<$<CONFIG:Debug>:debug_resource.qrc>)
add_definitions(-DTEST_DEBUG_CLASS) set_property(DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS $<$<CONFIG:Debug>:TEST_DEBUG_CLASS>)
endif() endif()
# The -no-protection option disables the generation of include guards. Verify # The -no-protection option disables the generation of include guards. Verify