include(CMakeParseArguments) find_package(Qt5Test REQUIRED) include_directories( ${CMake_SOURCE_DIR}/Source ${CMake_SOURCE_DIR}/Source/QtDialog ${CMake_BINARY_DIR}/Source/QtDialog ) set(MOC_SRCS) qt5_wrap_cpp(MOC_SRCS CatchShow.h ) add_library(CMakeGUITestLib STATIC ${MOC_SRCS} CatchShow.cxx CatchShow.h ) target_link_libraries(CMakeGUITestLib Qt5::Core Qt5::Gui Qt5::Widgets) set(MOC_SRCS) qt5_wrap_cpp(MOC_SRCS CMakeGUITest.h ) add_executable(CMakeGUITest CMakeGUITest.cxx ${MOC_SRCS}) target_link_libraries(CMakeGUITest CMakeGUIMainLib CMakeGUITestLib Qt5::Core Qt5::Test Qt5::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=$" "-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) qt5_wrap_cpp(MOC_SRCS ${_t_MOC_SOURCES} ) add_executable(${name} ${_t_SOURCES} ${MOC_SRCS}) target_link_libraries(${name} CMakeGUILib CMakeGUITestLib Qt5::Core Qt5::Test Qt5::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 )