cf5de22586
If the build option is enabled KWIN_HAVE_OPENGL_1 is passed as a compile flag when build against OpenGL. This compile flag is meant to replace the KWIN_HAVE_OPENGLES. So far code has been ifdefed for special behavior of OpenGL ES 2.0 and to remove fixed functionality calls which are not available in OpenGL ES 2.0. With this build flag the fixed functionality calls which are only used in the OpenGL1 Compositor can be removed and keeping the KWIN_HAVE_OPENGLES for the real differences between OpenGL 2.x and OpenGL ES 2.0. E.g. a call like glColor4f should be in an glColor4f(1.0, 1.0, 1.0, 1.0); while a call like glPolygonMode should be in an glPolygonMode(GL_FRONT_AND_BACK, GL_LINE); Building for OpenGL ES 2.0 of course implies that KWIN_HAVE_OPENGL_1 is not defined.
83 lines
2.9 KiB
CMake
83 lines
2.9 KiB
CMake
########### next target ###############
|
|
|
|
### effects lib ###
|
|
set(kwin_EFFECTSLIB_SRCS
|
|
kwinglobals.cpp
|
|
kwineffects.cpp
|
|
anidata.cpp
|
|
kwinanimationeffect.cpp
|
|
kwinxrenderutils.cpp
|
|
)
|
|
|
|
kde4_add_library(kwineffects SHARED ${kwin_EFFECTSLIB_SRCS})
|
|
target_link_libraries(kwineffects ${KDE4_KDEUI_LIBS} ${QT_QTGUI_LIBRARY}
|
|
${X11_LIBRARIES}
|
|
${X11_Xrender_LIB}
|
|
${X11_Xrandr_LIB}
|
|
${X11_Xcomposite_LIB}
|
|
${X11_Xdamage_LIB}
|
|
${X11_Xfixes_LIB}
|
|
)
|
|
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
|
|
)
|
|
|
|
macro( KWIN4_ADD_GLUTILS_BACKEND name glinclude )
|
|
include_directories(${glinclude})
|
|
if(OPENGL_EGL_FOUND)
|
|
include_directories(OPENGLES_EGL_INCLUDE_DIR)
|
|
endif(OPENGL_EGL_FOUND)
|
|
kde4_add_library(${name} SHARED ${kwin_GLUTILSLIB_SRCS})
|
|
target_link_libraries(${name} ${KDE4_KDEUI_LIBS} ${QT_QTGUI_LIBRARY} ${X11_LIBRARIES} kwineffects)
|
|
if(OPENGL_EGL_FOUND)
|
|
target_link_libraries(${name} ${OPENGLES_EGL_LIBRARY})
|
|
endif(OPENGL_EGL_FOUND)
|
|
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})
|
|
set_target_properties(kwinglesutils PROPERTIES COMPILE_FLAGS -DKWIN_HAVE_OPENGLES)
|
|
set_target_properties(kwinglesutils PROPERTIES OUTPUT_NAME ${KWIN_NAME}glesutils)
|
|
endif(OPENGLES_FOUND)
|
|
if(OPENGL_FOUND)
|
|
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( KWIN_BUILD_OPENGL_1_COMPOSITING )
|
|
|
|
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)
|
|
|
|
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)
|