[kwin] Follow Qt's OpenGL choice for KWin
As KWin indirectly uses Qt's OpenGL through QtQuick we need to ensure to not mix OpenGL and OpenGLES. So we have to built KWin only against OpenGL if Qt is built against OpenGL and we have to built KWin only against GLESv2 if Qt is built against GLESv2. This means the kwin_gles binary is no more. There is only kwin which either links GL or GLESv2.
This commit is contained in:
parent
3ec1b9fd6a
commit
e3618e8796
3 changed files with 31 additions and 37 deletions
|
@ -34,12 +34,27 @@ endif()
|
|||
|
||||
cmake_dependent_option(KWIN_BUILD_KAPPMENU "Build without appmenu support" ON "KWIN_BUILD_DECORATIONS" FALSE)
|
||||
|
||||
set(KWIN_BUILD_OPENGL FALSE)
|
||||
set(KWIN_BUILD_OPENGLES FALSE)
|
||||
if(OPENGL_FOUND AND (${Qt5Gui_OPENGL_IMPLEMENTATION} STREQUAL "GL"))
|
||||
set(KWIN_BUILD_OPENGL TRUE)
|
||||
message("Building KWin with OpenGL support")
|
||||
endif()
|
||||
if(OPENGLES_FOUND AND (${Qt5Gui_OPENGL_IMPLEMENTATION} STREQUAL "GLESv2"))
|
||||
set(KWIN_BUILD_OPENGLES TRUE)
|
||||
message("Building KWin with OpenGL ES 2 support")
|
||||
endif()
|
||||
|
||||
if(NOT KWIN_BUILD_OPENGL AND NOT KWIN_BUILD_OPENGLES)
|
||||
message(FATAL_ERROR "KWin needs to be built against either OpenGL or OpenGL ES 2. Check your Qt config!")
|
||||
endif()
|
||||
|
||||
# KWIN_HAVE_XRENDER_COMPOSITING - whether XRender-based compositing support is available: may be disabled
|
||||
if( KWIN_BUILD_XRENDER_COMPOSITING )
|
||||
set( KWIN_HAVE_XRENDER_COMPOSITING 1 )
|
||||
endif()
|
||||
|
||||
if(OPENGL_FOUND)
|
||||
if(KWIN_BUILD_OPENGL)
|
||||
include_directories(${OPENGL_INCLUDE_DIR})
|
||||
endif()
|
||||
|
||||
|
@ -48,7 +63,7 @@ if(OPENGL_EGL_FOUND)
|
|||
set(KWIN_HAVE_EGL 1)
|
||||
endif()
|
||||
|
||||
if(OPENGLES_FOUND)
|
||||
if(KWIN_BUILD_OPENGLES)
|
||||
include_directories(${OPENGLES_INCLUDE_DIR})
|
||||
endif()
|
||||
|
||||
|
@ -312,7 +327,7 @@ target_link_libraries(kdeinit_kwin ${kwinLibs})
|
|||
set_target_properties(kwin PROPERTIES OUTPUT_NAME ${KWIN_NAME})
|
||||
set_target_properties(kdeinit_kwin PROPERTIES OUTPUT_NAME kdeinit4_${KWIN_NAME})
|
||||
|
||||
if(OPENGL_FOUND)
|
||||
if(KWIN_BUILD_OPENGL)
|
||||
if( KWIN_BUILD_OPENGL_1_COMPOSITING )
|
||||
set_target_properties(kdeinit_kwin PROPERTIES COMPILE_FLAGS -DKWIN_HAVE_OPENGL_1)
|
||||
endif()
|
||||
|
@ -323,7 +338,7 @@ if(OPENGL_FOUND)
|
|||
if (DL_LIBRARY)
|
||||
target_link_libraries(kdeinit_kwin ${DL_LIBRARY})
|
||||
endif()
|
||||
elseif(OPENGLES_FOUND)
|
||||
elseif(KWIN_BUILD_OPENGLES)
|
||||
target_link_libraries(kdeinit_kwin ${kwinLibs} kwinglesutils ${OPENGLES_LIBRARIES})
|
||||
set_target_properties(kdeinit_kwin PROPERTIES COMPILE_FLAGS "-DKWIN_HAVE_OPENGLES")
|
||||
endif()
|
||||
|
@ -331,16 +346,6 @@ endif()
|
|||
install(TARGETS kdeinit_kwin ${INSTALL_TARGETS_DEFAULT_ARGS} )
|
||||
install(TARGETS kwin ${INSTALL_TARGETS_DEFAULT_ARGS} )
|
||||
|
||||
if(OPENGLES_FOUND)
|
||||
kf5_add_kdeinit_executable( kwin_gles ${kwin_KDEINIT_SRCS})
|
||||
target_link_libraries(kdeinit_kwin_gles ${kwinLibs} kwinglesutils ${OPENGLES_LIBRARIES})
|
||||
set_target_properties(kdeinit_kwin_gles PROPERTIES COMPILE_FLAGS "-DKWIN_HAVE_OPENGLES")
|
||||
set_target_properties(kwin_gles PROPERTIES OUTPUT_NAME ${KWIN_NAME}_gles)
|
||||
set_target_properties(kdeinit_kwin_gles PROPERTIES OUTPUT_NAME kdeinit4_${KWIN_NAME}_gles)
|
||||
install(TARGETS kdeinit_kwin_gles ${INSTALL_TARGETS_DEFAULT_ARGS} )
|
||||
install(TARGETS kwin_gles ${INSTALL_TARGETS_DEFAULT_ARGS} )
|
||||
endif()
|
||||
|
||||
########### install files ###############
|
||||
|
||||
install( FILES kwin.kcfg DESTINATION ${KCFG_INSTALL_DIR} RENAME ${KWIN_NAME}.kcfg )
|
||||
|
|
|
@ -36,9 +36,9 @@ if( KWIN_HAVE_XRENDER_COMPOSITING )
|
|||
set(kwin_effect_XCB_LIBS ${kwin_effect_XCB_LIBS} ${XCB_RENDER_LIBRARIES})
|
||||
endif()
|
||||
|
||||
if(OPENGL_FOUND)
|
||||
if(KWIN_BUILD_OPENGL)
|
||||
set(kwin_effect_OWN_LIBS ${kwin_effect_OWN_LIBS} kwinglutils)
|
||||
elseif(OPENGLES_FOUND)
|
||||
elseif(KWIN_BUILD_OPENGLES)
|
||||
set(kwin_effect_OWN_LIBS ${kwin_effect_OWN_LIBS} kwinglesutils)
|
||||
endif()
|
||||
|
||||
|
@ -49,28 +49,17 @@ endmacro()
|
|||
|
||||
# Adds effect plugin with given name. Sources are given after the name
|
||||
macro( KWIN4_ADD_EFFECT name )
|
||||
if(OPENGL_FOUND OR NOT (OPENGL_FOUND AND OPENGLES_FOUND))
|
||||
# OpenGL or neither OpenGL nor OpenGL ES - default set
|
||||
KWIN4_ADD_EFFECT_BACKEND(kwin4_effect_${name} ${ARGN})
|
||||
if(OPENGL_FOUND)
|
||||
if( KWIN_BUILD_OPENGL_1_COMPOSITING )
|
||||
set_target_properties(kwin4_effect_${name} PROPERTIES COMPILE_FLAGS -DKWIN_HAVE_OPENGL_1)
|
||||
endif()
|
||||
elseif(OPENGLES_FOUND)
|
||||
set_target_properties(kwin4_effect_${name} PROPERTIES COMPILE_FLAGS "-DKWIN_HAVE_OPENGLES")
|
||||
KWIN4_ADD_EFFECT_BACKEND(kwin4_effect_${name} ${ARGN})
|
||||
if(KWIN_BUILD_OPENGL)
|
||||
if( KWIN_BUILD_OPENGL_1_COMPOSITING )
|
||||
set_target_properties(kwin4_effect_${name} PROPERTIES COMPILE_FLAGS -DKWIN_HAVE_OPENGL_1)
|
||||
endif()
|
||||
set_target_properties(kwin4_effect_${name} PROPERTIES OUTPUT_NAME ${KWIN_NAME}4_effect_${name})
|
||||
install( TARGETS kwin4_effect_${name} DESTINATION ${PLUGIN_INSTALL_DIR} )
|
||||
elseif(KWIN_BUILD_OPENGLES)
|
||||
set_target_properties(kwin4_effect_${name} PROPERTIES COMPILE_FLAGS "-DKWIN_HAVE_OPENGLES")
|
||||
endif()
|
||||
set_target_properties(kwin4_effect_${name} PROPERTIES OUTPUT_NAME ${KWIN_NAME}4_effect_${name})
|
||||
install( TARGETS kwin4_effect_${name} DESTINATION ${PLUGIN_INSTALL_DIR} )
|
||||
|
||||
|
||||
if(OPENGLES_FOUND)
|
||||
KWIN4_ADD_EFFECT_BACKEND(kwin4_effect_gles_${name} ${ARGN})
|
||||
# OpenGL ES gets into a different library
|
||||
set_target_properties(kwin4_effect_gles_${name} PROPERTIES COMPILE_FLAGS "-DKWIN_HAVE_OPENGLES")
|
||||
set_target_properties(kwin4_effect_gles_${name} PROPERTIES OUTPUT_NAME ${KWIN_NAME}4_effect_gles_${name})
|
||||
install( TARGETS kwin4_effect_gles_${name} DESTINATION ${PLUGIN_INSTALL_DIR} )
|
||||
endif()
|
||||
endmacro()
|
||||
|
||||
macro( KWIN4_ADD_EFFECT_CONFIG name )
|
||||
|
|
|
@ -61,12 +61,12 @@ macro( KWIN4_ADD_GLUTILS_BACKEND name glinclude )
|
|||
install(TARGETS ${name} EXPORT kdeworkspaceLibraryTargets ${INSTALL_TARGETS_DEFAULT_ARGS})
|
||||
endmacro()
|
||||
|
||||
if(OPENGLES_FOUND)
|
||||
if(KWIN_BUILD_OPENGLES)
|
||||
KWIN4_ADD_GLUTILS_BACKEND(kwinglesutils ${OPENGLES_INCLUDE_DIR} ${OPENGLES_LIBRARIES})
|
||||
set_target_properties(kwinglesutils PROPERTIES COMPILE_FLAGS -DKWIN_HAVE_OPENGLES)
|
||||
set_target_properties(kwinglesutils PROPERTIES OUTPUT_NAME ${KWIN_NAME}glesutils)
|
||||
endif()
|
||||
if(OPENGL_FOUND)
|
||||
if(KWIN_BUILD_OPENGL)
|
||||
KWIN4_ADD_GLUTILS_BACKEND(kwinglutils ${OPENGL_INCLUDE_DIR} ${OPENGL_gl_LIBRARY})
|
||||
set_target_properties(kwinglutils PROPERTIES OUTPUT_NAME ${KWIN_NAME}glutils)
|
||||
|
||||
|
|
Loading…
Reference in a new issue