cmake_minimum_required(VERSION 2.8) project(no_link_gui) set(CMAKE_INCLUDE_CURRENT_DIR ON) if (EXISTS "${CMAKE_CURRENT_LIST_DIR}/FindPackageHints.cmake") include("${CMAKE_CURRENT_LIST_DIR}/FindPackageHints.cmake") endif() find_package(Qt5Gui REQUIRED HINTS ${Qt5Tests_PREFIX_PATH}) find_package(Qt5Test REQUIRED HINTS ${Qt5Tests_PREFIX_PATH}) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${Qt5Core_EXECUTABLE_COMPILE_FLAGS}") include_directories( ${Qt5Gui_INCLUDE_DIRS} ${Qt5Test_INCLUDE_DIRS} ) add_definitions( ${Qt5Gui_DEFINITIONS} ${Qt5Test_DEFINITIONS} ) set(main_file "main.cpp") set(moc_file "${CMAKE_CURRENT_BINARY_DIR}/main.moc") qt5_generate_moc("${main_file}" "${moc_file}") # The core_test is expected to fail to build because # QT_GUI_LIB is defined, which affects the contents of # Qt Test and the definition of QTEST_MAIN. # If running this test manually (ctest -V -R no_link_gui from # the tests/auto/cmake/build directory), the core_test is # expected to fail to link because of missing symbols from Qt GUI. # The gui_test is expected to build successfully (though it may # be necessary to comment out the core_test and re-run cmake) add_executable(core_test "${main_file}" "${moc_file}") target_link_libraries(core_test ${Qt5Core_LIBRARIES} ${Qt5Test_LIBRARIES} ) add_executable(gui_test "${main_file}" "${moc_file}") target_link_libraries(gui_test ${Qt5Gui_LIBRARIES} ${Qt5Test_LIBRARIES} )