project(kdemultimedia)

set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules)

# search packages used by KDE
find_package(KDE4 REQUIRED)
include(KDE4Defaults)
include(MacroLibrary)
find_package(Alsa)

set(PULSEAUDIO_MINIMUM_VERSION "0.9.12")
macro_optional_find_package(PulseAudio)
macro_log_feature(PULSEAUDIO_FOUND "PulseAudio" "PulseAudio Audio Server" "http://www.pulseaudio.org/" FALSE "0.9.12" "libpulse is needed to let KMix control PulseAudio")
find_package(GLIB2)
macro_optional_find_package(MusicBrainz3)
macro_log_feature(MUSICBRAINZ3_FOUND "MusicBrainz3" "A library that provides access to metadata lookup on the MusicBrainz server" "http://www.musicbrainz.org" FALSE "" "Music metadata lookup for KDE multimedia applications. You need version 3.x of libmusicbrainz.")

alsa_configure_file(${CMAKE_BINARY_DIR}/config-alsa.h)

macro_optional_find_package(FFMPEG)
macro_log_feature(FFMPEG_FOUND "FFmpeg" "FFmpeg libraries" "FFmpeg" FALSE "http://www.ffmpeg.org" "FFmpeg required for FFMpegVideoPreview backend")
macro_optional_find_package(Swscale)
macro_log_feature(SWSCALE_FOUND "swscale" "FFmpeg video scaling libraries" "swscale" FALSE "" "swscale required for FFMpegVideoPreview backend")

macro_optional_find_package(Xine)
macro_log_feature(XINE_XCB_FOUND "Xine XCB" "Xine libraries" "http://www.xine-project.org/" FALSE "" "Xine and phonon-xine must be compiled with XCB support.")

macro_optional_find_package(Taglib 1.6)
macro_log_feature(TAGLIB_FOUND "taglib" "Library for reading and editing audio meta data." "http://ktown.kde.org/~wheeler/taglib/" FALSE "1.6" "Required to build Juk and many Strigi Analyzers.")

macro_optional_find_package(OggVorbis)
macro_log_feature(OGGVORBIS_FOUND "OggVorbis" "Libraries for Ogg Vorbis general audio compression codec" "http://www.xiph.org" FALSE "" "Required for the AudioCD Ogg Vorbis plugin.")

add_definitions (${QT_DEFINITIONS} ${QT_QTDBUS_DEFINITIONS} ${KDE4_DEFINITIONS} )
include_directories (${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR} ${KDE4_INCLUDES})
if(MSVC)
    include_directories( ${TAGLIB_INCLUDES} )
endif(MSVC)

include (ConfigureChecks.cmake)
configure_file (config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config.h )

add_subdirectory(libkcddb)
add_subdirectory(libkcompactdisc)
macro_optional_add_subdirectory(mplayerthumbs)

if (FFMPEG_FOUND AND SWSCALE_FOUND)
     macro_optional_add_subdirectory(ffmpegthumbs)
endif (FFMPEG_FOUND AND SWSCALE_FOUND)

if (TAGLIB_FOUND)
  macro_optional_add_subdirectory(juk)
endif(TAGLIB_FOUND)

if (NOT APPLE)
  if(MUSICBRAINZ3_FOUND)
     macro_optional_add_subdirectory(kscd)
  endif(MUSICBRAINZ3_FOUND)
endif (NOT APPLE)

macro_optional_add_subdirectory(strigi-analyzer)
macro_optional_add_subdirectory(kioslave)


if(NOT WIN32)
  macro_optional_add_subdirectory(kmix)
endif(NOT WIN32)
macro_optional_add_subdirectory(dragonplayer)

macro_optional_add_subdirectory(doc)
macro_display_feature_log()
