1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130
|
include(CMakeParseArguments)
get_property(CMake_QT_MAJOR_VERSION TARGET cmake-gui PROPERTY CMake_QT_MAJOR_VERSION)
find_package(Qt${CMake_QT_MAJOR_VERSION}Test REQUIRED)
if(MSVC)
# QTBUG-118993: Qt uses deprecated stdext::checked_array_iterator
add_compile_definitions(_SILENCE_STDEXT_ARR_ITERS_DEPRECATION_WARNING)
endif()
include_directories(
${CMake_SOURCE_DIR}/Source
${CMake_SOURCE_DIR}/Source/QtDialog
${CMake_BINARY_DIR}/Source/QtDialog
)
set(MOC_SRCS)
if(CMake_QT_MAJOR_VERSION VERSION_LESS 6)
qt5_wrap_cpp(MOC_SRCS
CatchShow.h
)
else()
qt_wrap_cpp(MOC_SRCS
CatchShow.h
)
endif()
add_library(CMakeGUITestLib STATIC ${MOC_SRCS}
CatchShow.cxx
CatchShow.h
)
target_link_libraries(CMakeGUITestLib
Qt${CMake_QT_MAJOR_VERSION}::Core
Qt${CMake_QT_MAJOR_VERSION}::Gui
Qt${CMake_QT_MAJOR_VERSION}::Widgets)
set(MOC_SRCS)
if(CMake_QT_MAJOR_VERSION VERSION_LESS 6)
qt5_wrap_cpp(MOC_SRCS
CMakeGUITest.h
)
else()
qt_wrap_cpp(MOC_SRCS
CMakeGUITest.h
)
endif()
add_executable(CMakeGUITest CMakeGUITest.cxx ${MOC_SRCS})
target_link_libraries(CMakeGUITest CMakeGUIMainLib CMakeGUITestLib
Qt${CMake_QT_MAJOR_VERSION}::Core
Qt${CMake_QT_MAJOR_VERSION}::Test
Qt${CMake_QT_MAJOR_VERSION}::Widgets
)
target_compile_definitions(CMakeGUITest PRIVATE
"CMakeGUITest_SOURCE_DIR=\"${CMAKE_CURRENT_SOURCE_DIR}\""
"CMakeGUITest_BINARY_DIR=\"${CMAKE_CURRENT_BINARY_DIR}\""
"CMAKE_GENERATOR=\"${CMAKE_GENERATOR}\""
)
add_test(NAME CMakeGUI COMMAND ${CMAKE_CMAKE_COMMAND}
"-DCMakeGUITest_COMMAND=$<TARGET_FILE:CMakeGUITest>"
"-DCMakeGUITest_SOURCE_DIR=${CMAKE_CURRENT_SOURCE_DIR}"
"-DCMakeGUITest_BINARY_DIR=${CMAKE_CURRENT_BINARY_DIR}"
"-DCMakeGUITest_GENERATOR=${CMAKE_GENERATOR}"
-P "${CMAKE_CURRENT_LIST_DIR}/CMakeGUITest.cmake"
)
function(add_cmake_gui_lib_test name)
cmake_parse_arguments(_t "" "" "SOURCES;MOC_SOURCES" ${ARGN})
set(MOC_SRCS)
if(CMake_QT_MAJOR_VERSION VERSION_LESS 6)
qt5_wrap_cpp(MOC_SRCS
${_t_MOC_SOURCES}
)
else()
qt_wrap_cpp(MOC_SRCS
${_t_MOC_SOURCES}
)
endif()
add_executable(${name} ${_t_SOURCES} ${MOC_SRCS})
target_link_libraries(${name} CMakeGUILib CMakeGUITestLib
Qt${CMake_QT_MAJOR_VERSION}::Core
Qt${CMake_QT_MAJOR_VERSION}::Test
Qt${CMake_QT_MAJOR_VERSION}::Widgets)
add_test(NAME "CMakeGUILib.${name}" COMMAND ${name})
endfunction()
add_cmake_gui_lib_test(CatchShow
SOURCES
CatchShowTest.cxx
CatchShowTest.h
MOC_SOURCES
CatchShowTest.h
)
add_cmake_gui_lib_test(EnvironmentDialog
SOURCES
EnvironmentDialogTest.cxx
EnvironmentDialogTest.h
MOC_SOURCES
EnvironmentDialogTest.h
)
add_cmake_gui_lib_test(QCMakeCacheModel
SOURCES
QCMakeCacheModelTest.cxx
QCMakeCacheModelTest.h
MOC_SOURCES
QCMakeCacheModelTest.h
)
add_cmake_gui_lib_test(QCMakePreset
SOURCES
QCMakePresetTest.cxx
QCMakePresetTest.h
MOC_SOURCES
QCMakePresetTest.h
)
add_cmake_gui_lib_test(QCMakePresetItemModel
SOURCES
QCMakePresetItemModelTest.cxx
QCMakePresetItemModelTest.h
MOC_SOURCES
QCMakePresetItemModelTest.h
)
add_cmake_gui_lib_test(QCMakePresetComboBox
SOURCES
QCMakePresetComboBoxTest.cxx
QCMakePresetComboBoxTest.h
MOC_SOURCES
QCMakePresetComboBoxTest.h
)
|