Export modules' enabled/disabled features to cmake
Add properties enabled_features and disabled_features the respective library targets. This makes it possible to query the enabled classes in dependent libraries (for example, Qt for Python). Add a test verifying whether the Open GL configuration is reflected correctly in the feature properties to the existing test_opengl_lib autotest. Change-Id: I645c947073dbb36da3be81de6bc62ee0ba1e73d6 Reviewed-by: Kevin Funk <kevin.funk@kdab.com> Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io>bb10
parent
34af9fa0dc
commit
3c5ad626d4
|
|
@ -235,6 +235,9 @@ if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME})
|
|||
set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} PROPERTY
|
||||
INTERFACE_COMPILE_DEFINITIONS $${MODULE_DEFINES})
|
||||
|
||||
set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} PROPERTY INTERFACE_QT_ENABLED_FEATURES $$join(QT.$${MODULE}.enabled_features, ";"))
|
||||
set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} PROPERTY INTERFACE_QT_DISABLED_FEATURES $$join(QT.$${MODULE}.disabled_features, ";"))
|
||||
|
||||
set(_Qt5$${CMAKE_MODULE_NAME}_PRIVATE_DIRS_EXIST TRUE)
|
||||
foreach (_Qt5$${CMAKE_MODULE_NAME}_PRIVATE_DIR ${Qt5$${CMAKE_MODULE_NAME}_OWN_PRIVATE_INCLUDE_DIRS})
|
||||
if (NOT EXISTS ${_Qt5$${CMAKE_MODULE_NAME}_PRIVATE_DIR})
|
||||
|
|
|
|||
|
|
@ -8,11 +8,25 @@ 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.")
|
||||
|
|
|
|||
Loading…
Reference in New Issue