
project(kwin4_effect_beclock)

set (KWIN_HEADER_FOUND true )

if (EXISTS ${CMAKE_INSTALL_PREFIX}/include/kwineffects.h)
    MESSAGE( STATUS "GOOD: KWin headers found" )
else()
    MESSAGE( "\n\nWARNING: KWin headers NOT found, compiling might fail.\n\n  -> Ensure you've installed the kde[base][-workspace]-dev package\n\n" )
endif()

cmake_minimum_required(VERSION 2.4)
add_definitions( ${QT_DEFINITIONS} )
set (CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules )

find_package(KDE4)
add_definitions ( ${KDE4_DEFINITIONS} )

find_package(X11)
find_package(OpenGLES)
find_package(OpenGL)

if (OPENGLES_FOUND)
	if (EXISTS ${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}/libkwinglesutils.so)
        option(ENABLE_GLES "Enable GLES compilation" ON)
    else()
        MESSAGE( STATUS "\n\nWARNING: GLES was found, but libkwinglesutils.so is not present\n\nEnsure your KDE is complete and use ccmake to enable GLES nevertheless" )
        option(ENABLE_GLES "Enable GLES compilation" OFF)
    endif()
else (OPENGLES_FOUND)
    option(ENABLE_GLES "Enable GLES compilation" OFF)
endif (OPENGLES_FOUND)

include (KDE4Defaults)
include (MacroLibrary)
include_directories (${KDE4_INCLUDES})

if (KDE_VERSION_MINOR GREATER 7 OR (KDE_VERSION_MINOR GREATER 6 AND KDE_VERSION_RELEASE GREATER 30))
    if (OPENGL_FOUND AND ENABLE_GLES)
        set (JANUS_COMPILATION true)
    else (OPENGL_FOUND AND ENABLE_GLES)
        set (JANUS_COMPILATION false)
    endif (OPENGL_FOUND AND ENABLE_GLES)
else (KDE_VERSION_MINOR GREATER 7 OR (KDE_VERSION_MINOR GREATER 6 AND KDE_VERSION_RELEASE GREATER 30))
    set (JANUS_COMPILATION false)
endif (KDE_VERSION_MINOR GREATER 7 OR (KDE_VERSION_MINOR GREATER 6 AND KDE_VERSION_RELEASE GREATER 30))

set(kwin4_effect_beclock_MOC_HDRS dbus.h)
qt4_wrap_cpp(kwin4_effect_beclock_MOC_SRCS ${kwin4_effect_beclock_MOC_HDRS})
set( kwin4_effect_beclock_SOURCES beclock.cpp )
kde4_add_plugin (kwin4_effect_beclock ${kwin4_effect_beclock_SOURCES} ${kwin4_effect_beclock_MOC_SRCS} )
target_link_libraries(kwin4_effect_beclock ${KDE4_KDEUI_LIBS} kwineffects ${X11_LIBRARIES} GL)

if (JANUS_COMPILATION)
    set(kwin4_effect_gles_beclock_MOC_HDRS dbus.h)
    qt4_wrap_cpp(kwin4_effect_gles_beclock_MOC_SRCS ${kwin4_effect_beclock_MOC_HDRS})
    set( kwin4_effect_gles_beclock_SOURCES beclock.cpp )
    kde4_add_plugin (kwin4_effect_gles_beclock ${kwin4_effect_beclock_SOURCES} ${kwin4_effect_beclock_MOC_SRCS} )
    target_link_libraries(kwin4_effect_gles_beclock ${KDE4_KDEUI_LIBS} kwineffects ${X11_LIBRARIES} GL)
endif (JANUS_COMPILATION)

if (X11_Xrender_FOUND)
    target_link_libraries(kwin4_effect_beclock ${X11_Xrender_LIB})
    if (JANUS_COMPILATION)
        target_link_libraries(kwin4_effect_gles_beclock ${X11_Xrender_LIB})
    endif (JANUS_COMPILATION)
endif (X11_Xrender_FOUND)

if (JANUS_COMPILATION)
    MESSAGE( STATUS "COMPILING GL & GLES FOR KDE >= 4.8" )
    target_link_libraries(kwin4_effect_beclock kwinglutils)
    set_target_properties(kwin4_effect_beclock PROPERTIES COMPILE_FLAGS -DKWIN_HAVE_OPENGL)
    target_link_libraries(kwin4_effect_gles_beclock kwinglesutils)
    set_target_properties(kwin4_effect_gles_beclock PROPERTIES COMPILE_FLAGS "-DKWIN_HAVE_OPENGL -DKWIN_HAVE_OPENGLES")
    install( TARGETS kwin4_effect_beclock DESTINATION ${PLUGIN_INSTALL_DIR} )
    install( TARGETS kwin4_effect_gles_beclock DESTINATION ${PLUGIN_INSTALL_DIR} )
else (JANUS_COMPILATION)
    if (ENABLE_GLES)
        MESSAGE( STATUS "COMPILING GLES ONLY" )
        set_target_properties(kwin4_effect_beclock PROPERTIES COMPILE_FLAGS "-DKWIN_HAVE_OPENGL -DKWIN_HAVE_OPENGLES")
    else (ENABLE_GLES)
        MESSAGE( STATUS "COMPILING OPENGL ONLY" )
        set_target_properties(kwin4_effect_beclock PROPERTIES COMPILE_FLAGS -DKWIN_HAVE_OPENGL)
    endif (ENABLE_GLES)

# only KWin >= 4.8 has kwinglutils / kwinglesutils
    if (KDE_VERSION_MINOR GREATER 7 OR (KDE_VERSION_MINOR GREATER 6 AND KDE_VERSION_RELEASE GREATER 30))
        target_link_libraries(kwin4_effect_beclock kwinglutils)
    endif (KDE_VERSION_MINOR GREATER 7 OR (KDE_VERSION_MINOR GREATER 6 AND KDE_VERSION_RELEASE GREATER 30))

    install( TARGETS kwin4_effect_beclock DESTINATION ${PLUGIN_INSTALL_DIR} )

endif (JANUS_COMPILATION)


install( FILES beclock.desktop DESTINATION ${SERVICES_INSTALL_DIR}/kwin )

project (kcm_kwin4_effect_beclock)
set( kcm_kwin4_effect_beclock_SOURCES beclock_config.cpp )
kde4_add_ui_files( kcm_kwin4_effect_beclock_SOURCES beclock_config.ui )
kde4_add_plugin (kcm_kwin4_effect_beclock ${kcm_kwin4_effect_beclock_SOURCES})
target_link_libraries(kcm_kwin4_effect_beclock ${KDE4_KDEUI_LIBS} kwineffects)
install (TARGETS kcm_kwin4_effect_beclock DESTINATION ${PLUGIN_INSTALL_DIR})
install( FILES beclock_config.desktop DESTINATION ${SERVICES_INSTALL_DIR}/kwin )

