e3618e8796
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.
96 lines
2.9 KiB
CMake
96 lines
2.9 KiB
CMake
########### next target ###############
|
|
|
|
### effects lib ###
|
|
set(kwin_EFFECTSLIB_SRCS
|
|
kwineffects.cpp
|
|
anidata.cpp
|
|
kwinanimationeffect.cpp
|
|
kwinxrenderutils.cpp
|
|
)
|
|
|
|
set(kwineffects_QT_LIBS
|
|
Qt5::DBus
|
|
Qt5::Widgets
|
|
Qt5::X11Extras
|
|
)
|
|
|
|
set(kwineffects_KDE_LIBS
|
|
KF5::KConfigCore
|
|
)
|
|
|
|
set(kwineffects_XCB_LIBS
|
|
${XCB_XCB_LIBRARY}
|
|
${XCB_XFIXES_LIBRARY}
|
|
${XCB_RENDER_LIBRARY}
|
|
)
|
|
|
|
kde4_add_library(kwineffects SHARED ${kwin_EFFECTSLIB_SRCS})
|
|
target_link_libraries(kwineffects
|
|
${kwineffects_QT_LIBS}
|
|
${kwineffects_KDE_LIBS}
|
|
${kwineffects_XCB_LIBS}
|
|
)
|
|
set_target_properties(kwineffects PROPERTIES VERSION 1.0.0 SOVERSION 1 )
|
|
set_target_properties(kwineffects PROPERTIES OUTPUT_NAME ${KWIN_NAME}effects)
|
|
|
|
install(TARGETS kwineffects EXPORT kdeworkspaceLibraryTargets ${INSTALL_TARGETS_DEFAULT_ARGS})
|
|
|
|
# kwingl(es)utils library
|
|
set(kwin_GLUTILSLIB_SRCS
|
|
kwinglutils.cpp
|
|
kwingltexture.cpp
|
|
kwinglutils_funcs.cpp
|
|
kwinglplatform.cpp
|
|
kwinglcolorcorrection.cpp
|
|
)
|
|
|
|
macro( KWIN4_ADD_GLUTILS_BACKEND name glinclude )
|
|
include_directories(${glinclude})
|
|
if(OPENGL_EGL_FOUND)
|
|
include_directories(${OPENGLES_EGL_INCLUDE_DIR})
|
|
endif()
|
|
kde4_add_library(${name} SHARED ${kwin_GLUTILSLIB_SRCS})
|
|
target_link_libraries(${name} ${kwineffects_QT_LIBS} ${kwineffects_XCB_LIBS} kwineffects)
|
|
if(OPENGL_EGL_FOUND)
|
|
target_link_libraries(${name} ${OPENGLES_EGL_LIBRARY})
|
|
endif()
|
|
set_target_properties(${name} PROPERTIES VERSION 1.0.0 SOVERSION 1 )
|
|
target_link_libraries(${name} ${ARGN})
|
|
target_link_libraries(${name} LINK_INTERFACE_LIBRARIES ${ARGN})
|
|
|
|
install(TARGETS ${name} EXPORT kdeworkspaceLibraryTargets ${INSTALL_TARGETS_DEFAULT_ARGS})
|
|
endmacro()
|
|
|
|
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(KWIN_BUILD_OPENGL)
|
|
KWIN4_ADD_GLUTILS_BACKEND(kwinglutils ${OPENGL_INCLUDE_DIR} ${OPENGL_gl_LIBRARY})
|
|
set_target_properties(kwinglutils PROPERTIES OUTPUT_NAME ${KWIN_NAME}glutils)
|
|
|
|
if( KWIN_BUILD_OPENGL_1_COMPOSITING )
|
|
set_target_properties(kwinglutils PROPERTIES COMPILE_FLAGS -DKWIN_HAVE_OPENGL_1)
|
|
endif()
|
|
|
|
target_link_libraries(kwinglutils ${OPENGL_gl_LIBRARY})
|
|
target_link_libraries(kwinglutils LINK_INTERFACE_LIBRARIES ${OPENGL_gl_LIBRARY})
|
|
# -ldl used by OpenGL code
|
|
find_library(DL_LIBRARY dl)
|
|
if (DL_LIBRARY)
|
|
target_link_libraries(kwinglutils ${DL_LIBRARY})
|
|
endif()
|
|
endif()
|
|
|
|
install( FILES
|
|
kwinglobals.h
|
|
kwineffects.h
|
|
kwinanimationeffect.h
|
|
kwinglplatform.h
|
|
kwinglutils.h
|
|
kwinglutils_funcs.h
|
|
kwingltexture.h
|
|
kwinxrenderutils.h
|
|
${CMAKE_CURRENT_BINARY_DIR}/kwinconfig.h
|
|
DESTINATION ${INCLUDE_INSTALL_DIR} COMPONENT Devel)
|