|
|
@ -1,6 +1,8 @@ |
|
|
|
include(CMakeParseArguments) |
|
|
|
|
|
|
|
find_package(Qt5Test REQUIRED) |
|
|
|
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 |
|
|
@ -14,21 +16,40 @@ include_directories( |
|
|
|
) |
|
|
|
|
|
|
|
set(MOC_SRCS) |
|
|
|
qt5_wrap_cpp(MOC_SRCS |
|
|
|
CatchShow.h |
|
|
|
) |
|
|
|
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 Qt5::Core Qt5::Gui Qt5::Widgets) |
|
|
|
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) |
|
|
|
qt5_wrap_cpp(MOC_SRCS |
|
|
|
CMakeGUITest.h |
|
|
|
) |
|
|
|
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 Qt5::Core Qt5::Test Qt5::Widgets) |
|
|
|
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}\"" |
|
|
@ -47,11 +68,20 @@ function(add_cmake_gui_lib_test name) |
|
|
|
cmake_parse_arguments(_t "" "" "SOURCES;MOC_SOURCES" ${ARGN}) |
|
|
|
|
|
|
|
set(MOC_SRCS) |
|
|
|
qt5_wrap_cpp(MOC_SRCS |
|
|
|
${_t_MOC_SOURCES} |
|
|
|
) |
|
|
|
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 Qt5::Core Qt5::Test Qt5::Widgets) |
|
|
|
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() |
|
|
|