cmake_minimum_required(VERSION 2.8) project(test_opengl_lib) find_package(Qt5Gui REQUIRED) include_directories(${Qt5Gui_INCLUDE_DIRS} ${Qt5Gui_OPENGL_INCLUDE_DIRS} ) add_definitions(${Qt5Gui_DEFINITIONS}) get_property(QtGui_enabled_features TARGET Qt5::Gui PROPERTY INTERFACE_QT_ENABLED_FEATURES) list(LENGTH QtGui_enabled_features _QtGui_enabled_featuresSize) if (_QtGui_enabled_featuresSize LESS 1) message(SEND_ERROR "The INTERFACE_QT_ENABLED_FEATURES property of Qt5::Gui is empty!") endif() set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${Qt5Gui_EXECUTABLE_COMPILE_FLAGS}") if (${Qt5Gui_OPENGL_IMPLEMENTATION} STREQUAL GLESv2) list(FIND QtGui_enabled_features "opengles2" _opengles2Index) if(_opengles2Index EQUAL -1) message(SEND_ERROR "The INTERFACE_QT_ENABLED_FEATURES property of Qt5::Gui does not contain the opengles2 feature!") endif() add_definitions(-DGL_IMPLEMENTATION_GLES2) elseif (${Qt5Gui_OPENGL_IMPLEMENTATION} STREQUAL GL) list(FIND QtGui_enabled_features "opengl" _openglIndex) if(_openglIndex EQUAL -1) message(SEND_ERROR "The INTERFACE_QT_ENABLED_FEATURES property of Qt5::Gui does not contain the opengl feature!") endif() add_definitions(-DGL_IMPLEMENTATION_GL) else() message(SEND_ERROR "Qt5Gui_OPENGL_IMPLEMENTATION does not contain valid data.") endif() add_executable(myobject main.cpp ) target_link_libraries(myobject ${Qt5Gui_LIBRARIES} ${Qt5Gui_OPENGL_LIBRARIES})