From c807e97e0a59d3b58a4b7e60198a2445f19e823d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Gr=C3=A4=C3=9Flin?= Date: Sun, 17 Jul 2011 16:15:07 +0200 Subject: [PATCH] Split glutils out of kwineffects All OpenGL related files are build as a kwinglutils library for OpenGL and as a kwinglesutils library for OpenGL ES. The appropriate defines are set using target_properties and removed from kwinconfig.h.cmake. --- libkwineffects/CMakeLists.txt | 58 +++++++++++++++++++++---------- libkwineffects/kwinconfig.h.cmake | 18 ---------- 2 files changed, 39 insertions(+), 37 deletions(-) diff --git a/libkwineffects/CMakeLists.txt b/libkwineffects/CMakeLists.txt index cb9703b6fc..9c3a79ce0f 100644 --- a/libkwineffects/CMakeLists.txt +++ b/libkwineffects/CMakeLists.txt @@ -4,10 +4,6 @@ set(kwin_EFFECTSLIB_SRCS kwinglobals.cpp kwineffects.cpp - kwinglutils.cpp - kwingltexture.cpp - kwinglutils_funcs.cpp - kwinglplatform.cpp kwinxrenderutils.cpp ) @@ -18,21 +14,45 @@ set_target_properties(kwineffects PROPERTIES VERSION 1.0.0 SOVERSION 1 ) install(TARGETS kwineffects EXPORT kdeworkspaceLibraryTargets ${INSTALL_TARGETS_DEFAULT_ARGS}) -if(OPENGL_FOUND AND NOT KWIN_HAVE_OPENGLES_COMPOSITING) - target_link_libraries(kwineffects ${OPENGL_gl_LIBRARY}) - target_link_libraries(kwineffects LINK_INTERFACE_LIBRARIES ${OPENGL_gl_LIBRARY}) -# -ldl used by OpenGL code - find_library(DL_LIBRARY dl) - if (DL_LIBRARY) - target_link_libraries(kwineffects ${DL_LIBRARY}) - endif(DL_LIBRARY) - include_directories(${OPENGL_INCLUDE_DIR}) -endif(OPENGL_FOUND AND NOT KWIN_HAVE_OPENGLES_COMPOSITING) -if(KWIN_HAVE_OPENGLES_COMPOSITING) - target_link_libraries(kwineffects ${OPENGLES_LIBRARIES} ${OPENGLES_EGL_LIBRARIES}) - target_link_libraries(kwineffects LINK_INTERFACE_LIBRARIES ${OPENGLES_LIBRARIES} ${OPENGLES_EGL_LIBRARIES}) - include_directories(${OPENGLES_INCLUDE_DIR}) -endif(KWIN_HAVE_OPENGLES_COMPOSITING) +if(OPENGL_FOUND OR OPENGLES_FOUND) + + set(kwin_GLUTILSLIB_SRCS + kwinglutils.cpp + kwingltexture.cpp + kwinglutils_funcs.cpp + kwinglplatform.cpp + ) + + macro( KWIN4_ADD_GLUTILS_BACKEND name glinclude ) + include_directories(${glinclude}) + kde4_add_library(${name} SHARED ${kwin_GLUTILSLIB_SRCS}) + target_link_libraries(${name} ${KDE4_KDEUI_LIBS} ${QT_QTGUI_LIBRARY} ${X11_LIBRARIES} kephal kwineffects) + 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( KWIN4_ADD_GLUTILS_BACKEND ) + + if(OPENGLES_FOUND) + KWIN4_ADD_GLUTILS_BACKEND(kwinglesutils ${OPENGLES_INCLUDE_DIR} ${OPENGLES_LIBRARIES} ${OPENGLES_EGL_LIBRARIES}) + set_target_properties(kwinglesutils PROPERTIES COMPILE_FLAGS "-DKWIN_HAVE_OPENGL -DKWIN_HAVE_OPENGLES") + endif(OPENGLES_FOUND) + if(OPENGL_FOUND) + KWIN4_ADD_GLUTILS_BACKEND(kwinglutils ${OPENGL_INCLUDE_DIR} ${OPENGL_gl_LIBRARY}) + set_target_properties(kwinglutils PROPERTIES COMPILE_FLAGS -DKWIN_HAVE_OPENGL) + + 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(DL_LIBRARY) + endif(OPENGL_FOUND) + +endif(OPENGL_FOUND OR OPENGLES_FOUND) + if (X11_Xrender_FOUND) target_link_libraries(kwineffects ${X11_Xrender_LIB}) endif (X11_Xrender_FOUND) diff --git a/libkwineffects/kwinconfig.h.cmake b/libkwineffects/kwinconfig.h.cmake index 22405a585c..381231908d 100644 --- a/libkwineffects/kwinconfig.h.cmake +++ b/libkwineffects/kwinconfig.h.cmake @@ -9,21 +9,6 @@ #ifndef KWINCONFIG_H #define KWINCONFIG_H -#if ${HAVE_OPENGL} -#define KWIN_HAVE_OPENGL 1 -#else -#undef KWIN_HAVE_OPENGL -#endif - -#if ${KWIN_HAVE_OPENGLES} -#define KWIN_HAVE_OPENGLES 1 -#ifndef KWIN_HAVE_OPENGL -#define KWIN_HAVE_OPENGL 1 -#endif -#else -#undef KWIN_HAVE_OPENGLES -#endif - /* These should be primarily used to detect what kind of compositing @@ -37,9 +22,6 @@ /* KWIN_HAVE_OPENGL_COMPOSITING - whether OpenGL-based compositing support is available */ #cmakedefine KWIN_HAVE_OPENGL_COMPOSITING -/* KWIN_HAVE_OPENGLES_COMPOSITING - whether OpenGL ES-based compositing support is available */ -#cmakedefine KWIN_HAVE_OPENGLES_COMPOSITING - /* KWIN_HAVE_XRENDER_COMPOSITING - whether XRender-based compositing support is available */ #cmakedefine KWIN_HAVE_XRENDER_COMPOSITING