check_include_files(limits      HAVE_NUMERIC_LIMITS)
configure_file (config-kdesavers.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-kdesavers.h )

find_package(Strigi REQUIRED)
add_subdirectory( data )

option(KDE4_SOUND_SUPPORT "Build with sound support" OFF)


########### next target ###############

set(kbanner.kss_SRCS banner.cpp )


kde4_add_executable(kbanner.kss ${kbanner.kss_SRCS})

target_link_libraries(kbanner.kss  ${KDE4_KDEUI_LIBS} ${STRIGI_LIBRARIES} kscreensaver ${QT_QT3SUPPORT_LIBRARY})

install(TARGETS kbanner.kss  DESTINATION ${BIN_INSTALL_DIR} )


########### next target ###############

set(kpolygon.kss_SRCS polygon.cpp )

kde4_add_executable(kpolygon.kss ${kpolygon.kss_SRCS})

target_link_libraries(kpolygon.kss  ${KDE4_KDEUI_LIBS} ${STRIGI_LIBRARIES} kscreensaver ${QT_QT3SUPPORT_LIBRARY})

install(TARGETS kpolygon.kss  DESTINATION ${BIN_INSTALL_DIR} )


########### next target ###############

set(kslideshow.kss_SRCS slideshow.cpp )

kde4_add_ui_files(kslideshow.kss_SRCS slideshowcfg.ui )

kde4_add_executable(kslideshow.kss ${kslideshow.kss_SRCS})

target_link_libraries(kslideshow.kss  ${KDE4_KIO_LIBS}  m kscreensaver)

install(TARGETS kslideshow.kss  DESTINATION ${BIN_INSTALL_DIR} )


########### next target ###############

set(klines.kss_SRCS lines.cpp )

kde4_add_executable(klines.kss ${klines.kss_SRCS})

target_link_libraries(klines.kss  ${KDE4_KDEUI_LIBS} ${STRIGI_LIBRARIES} kscreensaver)

install(TARGETS klines.kss  DESTINATION ${BIN_INSTALL_DIR} )


########### next target ###############

set(klorenz.kss_SRCS lorenz.cpp )

kde4_add_executable(klorenz.kss ${klorenz.kss_SRCS})

target_link_libraries(klorenz.kss  ${KDE4_KDEUI_LIBS} ${STRIGI_LIBRARIES} m kscreensaver)

install(TARGETS klorenz.kss  DESTINATION ${BIN_INSTALL_DIR} )


########### next target ###############

set(kblob.kss_SRCS blob.cpp )

kde4_add_executable(kblob.kss ${kblob.kss_SRCS})

target_link_libraries(kblob.kss  ${KDE4_KDEUI_LIBS} ${STRIGI_LIBRARIES} m kscreensaver)

install(TARGETS kblob.kss  DESTINATION ${BIN_INSTALL_DIR} )


########### next target ###############

set(kvm.kss_SRCS kvm.cpp vm.c vm_random.c )

kde4_add_executable(kvm.kss ${kvm.kss_SRCS})

target_link_libraries(kvm.kss  ${KDE4_KDEUI_LIBS} ${STRIGI_LIBRARIES} kscreensaver)

install(TARGETS kvm.kss  DESTINATION ${BIN_INSTALL_DIR} )


########### next target ###############

set(kclock.kss_SRCS kclock.cpp )

kde4_add_executable(kclock.kss ${kclock.kss_SRCS})

target_link_libraries(kclock.kss  ${KDE4_KDEUI_LIBS} ${STRIGI_LIBRARIES} m kscreensaver)

install(TARGETS kclock.kss DESTINATION ${BIN_INSTALL_DIR} )
install(FILES KClock.desktop DESTINATION ${SERVICES_INSTALL_DIR}/ScreenSavers)


########### next target ###############

#set($(X11_KSAVERS)_SRCS dummy.cpp )
set(kscience.kss_SRCS science.cpp )

kde4_add_executable(kscience.kss ${kscience.kss_SRCS})

target_link_libraries(kscience.kss  ${KDE4_KDEUI_LIBS} ${STRIGI_LIBRARIES} kscreensaver ${QT_QT3SUPPORT_LIBRARY} )

install(TARGETS kscience.kss DESTINATION ${BIN_INSTALL_DIR} )


########### next target ###############

message(STATUS "readd opengl+sound support screensaver")
if(OPENGL_FOUND AND OPENGL_GLU_FOUND AND KDE4_SOUND_SUPPORT)
#set(kfiresaver.kss_SRCS firesaverparticle.cpp firesaverwriter.cpp firesaver.cpp )
#kde4_add_ui3_files(kfiresaver.kss_SRCS aversetup.ui)
##kde4_add_executable(kfiresaver.kss ${kfiresaver.kss_SRCS})
#target_link_libraries(kfiresaver.kss  ${KDE4_KDEUI_LIBS} )
#install(TARGETS kfiresaver.kss DESTINATION ${BIN_INSTALL_DIR} )
#install( FILES KFiresaver.desktop DESTINATION  ${SERVICES_INSTALL_DIR}/ScreenSavers )
endif(OPENGL_FOUND AND OPENGL_GLU_FOUND AND KDE4_SOUND_SUPPORT)

########### next target ###############
if(OPENGL_FOUND AND OPENGL_GLU_FOUND AND QT_QTOPENGL_LIBRARY)

  set(kpendulum.kss_SRCS  pendulum.cpp sspreviewarea.cpp rkodesolver.cpp)
  kde4_add_ui3_files(kpendulum.kss_SRCS pendulumcfg.ui)
  kde4_add_executable(kpendulum.kss ${kpendulum.kss_SRCS})
  target_link_libraries(kpendulum.kss ${KDE4_KDEUI_LIBS} ${STRIGI_LIBRARIES} ${QT_QTOPENGL_LIBRARY} ${OPENGL_glu_LIBRARY} kscreensaver)
  install(TARGETS kpendulum.kss DESTINATION ${BIN_INSTALL_DIR} )
  
  set(krotation.kss_SRCS rotation.cpp sspreviewarea.cpp rkodesolver.cpp vec3.cpp )
  kde4_add_ui3_files(krotation.kss_SRCS rotationcfg.ui)
  kde4_add_executable(krotation.kss ${krotation.kss_SRCS})
  target_link_libraries(krotation.kss ${KDE4_KDEUI_LIBS} ${STRIGI_LIBRARIES} ${QT_QTOPENGL_LIBRARY} ${OPENGL_glu_LIBRARY} kscreensaver ${QT_QT3SUPPORT_LIBRARY})
  install(TARGETS krotation.kss DESTINATION ${BIN_INSTALL_DIR} )
  
  set(ksolarwinds.kss_SRCS SolarWinds.cpp )
  kde4_add_executable(ksolarwinds.kss ${ksolarwinds.kss_SRCS})
  target_link_libraries( ksolarwinds.kss ${KDE4_KDEUI_LIBS} ${STRIGI_LIBRARIES}  ${QT_QTOPENGL_LIBRARY} ${OPENGL_glu_LIBRARY} kscreensaver)
  install(TARGETS ksolarwinds.kss DESTINATION ${BIN_INSTALL_DIR} )
  
  set(kflux.kss_SRCS Flux.cpp )
  kde4_add_executable(kflux.kss ${kflux.kss_SRCS})
  target_link_libraries( kflux.kss ${KDE4_KDEUI_LIBS} ${STRIGI_LIBRARIES} ${QT_QTOPENGL_LIBRARY} ${OPENGL_glu_LIBRARY} kscreensaver)
  install(TARGETS kflux.kss DESTINATION ${BIN_INSTALL_DIR} )
  
  set(keuphoria.kss_SRCS Euphoria.cpp )
  kde4_add_executable(keuphoria.kss ${keuphoria.kss_SRCS})
  target_link_libraries( keuphoria.kss ${KDE4_KDEUI_LIBS} ${STRIGI_LIBRARIES} ${QT_QTOPENGL_LIBRARY} ${OPENGL_glu_LIBRARY} kscreensaver)
  install(TARGETS keuphoria.kss DESTINATION ${BIN_INSTALL_DIR} )
  
  set(kfountain.kss_SRCS fountain.cpp )
  kde4_add_ui_files(kfountain.kss_SRCS fountaincfg.ui)
  kde4_add_executable(kfountain.kss ${kfountain.kss_SRCS})
  target_link_libraries( kfountain.kss ${KDE4_KDEUI_LIBS} ${STRIGI_LIBRARIES} ${QT_QTOPENGL_LIBRARY} ${OPENGL_glu_LIBRARY} kscreensaver)
  install(TARGETS kfountain.kss DESTINATION ${BIN_INSTALL_DIR} )
  
  set(kwave.kss_SRCS wave.cpp )
  kde4_add_ui_files(kwave.kss_SRCS wavecfg.ui)
  kde4_add_executable(kwave.kss ${kwave.kss_SRCS})
  target_link_libraries( kwave.kss ${KDE4_KDEUI_LIBS} ${STRIGI_LIBRARIES} ${QT_QTOPENGL_LIBRARY} ${OPENGL_glu_LIBRARY} kscreensaver)
  install(TARGETS kwave.kss DESTINATION ${BIN_INSTALL_DIR} )
  
  set(kgravity.kss_SRCS gravity.cpp )
  kde4_add_ui_files(kgravity.kss_SRCS gravitycfg.ui)
  kde4_add_executable(kgravity.kss ${kgravity.kss_SRCS})
  target_link_libraries( kgravity.kss ${KDE4_KDEUI_LIBS} ${STRIGI_LIBRARIES} ${QT_QTOPENGL_LIBRARY} ${OPENGL_glu_LIBRARY} kscreensaver)
  install(TARGETS kgravity.kss DESTINATION ${BIN_INSTALL_DIR} )
  
  install( FILES KGravity.desktop KWave.desktop KFountain.desktop KFlux.desktop KEuphoria.desktop KSolarWinds.desktop KRotation.desktop KPendulum.desktop DESTINATION  ${SERVICES_INSTALL_DIR}/ScreenSavers )

endif(OPENGL_FOUND AND OPENGL_GLU_FOUND AND QT_QTOPENGL_LIBRARY)

########### install files ###############

install( FILES kscience.png particle.png image.png  DESTINATION  ${DATA_INSTALL_DIR}/kscreensaver )
install( FILES KBanner.desktop KPolygon.desktop KSlideshow.desktop KLines-saver.desktop KLorenz.desktop KBlob.desktop KVm.desktop DESTINATION  ${SERVICES_INSTALL_DIR}/ScreenSavers )

