project(kdegames)

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

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

macro_optional_find_package(QCA2)
macro_log_feature(QCA2_FOUND "QCA2" "Qt Cryptographic Architecture" "http://delta.affinix.com/qca" FALSE "2.0.0" "Needed to build Ksirk Jabber support's GroupWise and Jabberprotocols.")

macro_optional_find_package(OpenGL)
macro_log_feature(OPENGL_FOUND "OpenGL" "API for developing portable, interactive 2D and 3Dgraphics applications" "http://mesa3d.sourceforge.net" FALSE "" "Kubrick will not be built and KSudoku will not have Roxdoku support without OpenGL.")
macro_log_feature(QT_QTOPENGL_FOUND "QtOpenGL" "Qt module that make it easy to use OpenGL in Qt apps" "http://doc.trolltech.com/latest/qtopengl.html" FALSE "" "Kubrick will not be built and KSudoku will not have Roxdoku support without QtOpenGL.")

macro_optional_find_package(PythonInterp)
macro_log_feature(PYTHONINTERP_FOUND "Python" "Programming language that lets you work more quickly and integrate your systems more effectively." "http://python.org" FALSE "" "Kajongg will not be built without the python interpreter (version 2.6 < 3.0).")

macro_optional_find_package(OpenAL)
macro_log_feature(OPENAL_FOUND "OpenAL" "OpenAL (Open Audio Library) is a free software cross-platform audio API." "http://connect.creativelabs.com/openal" FALSE "" "Phonon is used as a fallback, but low-latency sound output is only available with OpenAL/SndFile.")

macro_optional_find_package(SndFile)
macro_log_feature(SNDFILE_FOUND "SndFile" "libsndfile is a C library written by Erik de Castro Lopo for reading and writing audio files." "http://www.mega-nerd.com/libsndfile/" FALSE "" "Phonon is used as a fallback, but low-latency sound output is only available with OpenAL/SndFile.")

if(OPENGL_FOUND AND QT_QTOPENGL_FOUND)
    set(OPENGL_SUPPORT true)
endif(OPENGL_FOUND AND QT_QTOPENGL_FOUND)

add_definitions (${QT_DEFINITIONS} ${KDE4_DEFINITIONS})
add_definitions (-DQT_USE_FAST_CONCATENATION -DQT_USE_FAST_OPERATOR_PLUS)
include_directories ( ${QDBUS_INCLUDE_DIRS} ${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR} ${KDE4_INCLUDES})
# add the includes for libkdegames and the fwd headers, available for all the applications
include_directories(${CMAKE_SOURCE_DIR}/libkdegames ${CMAKE_BINARY_DIR}/libkdegames ${CMAKE_SOURCE_DIR}/libkdegames/audio ${CMAKE_SOURCE_DIR}/libkdegames/includes)
set(HIGHSCORE_DIRECTORY "" CACHE STRING "Where to install system-wide highscores e.g. /var/games")

add_subdirectory(libkdegames)
add_subdirectory(libkmahjongg)

macro_optional_add_subdirectory(bomber)
macro_optional_add_subdirectory(bovo)
macro_optional_add_subdirectory(granatier)
macro_optional_add_subdirectory(lskat)
macro_optional_add_subdirectory(kapman)
macro_optional_add_subdirectory(katomic)
macro_optional_add_subdirectory(kbattleship)
macro_optional_add_subdirectory(kblackbox)
macro_optional_add_subdirectory(kblocks)
macro_optional_add_subdirectory(kbounce)
macro_optional_add_subdirectory(kbreakout)
macro_optional_add_subdirectory(kdiamond)
macro_optional_add_subdirectory(kfourinline)
macro_optional_add_subdirectory(kgoldrunner)
macro_optional_add_subdirectory(killbots)
macro_optional_add_subdirectory(kigo)
macro_optional_add_subdirectory(kiriki)
macro_optional_add_subdirectory(kjumpingcube)
macro_optional_add_subdirectory(klickety)
macro_optional_add_subdirectory(klines)
macro_optional_add_subdirectory(kmahjongg)
macro_optional_add_subdirectory(kmines)
macro_optional_add_subdirectory(knetwalk)
macro_optional_add_subdirectory(kolf)
macro_optional_add_subdirectory(kollision)
macro_optional_add_subdirectory(konquest)
macro_optional_add_subdirectory(kpat)
macro_optional_add_subdirectory(kreversi)
macro_optional_add_subdirectory(kshisen)
if(QCA2_FOUND)
    macro_optional_add_subdirectory(ksirk)
endif(QCA2_FOUND)
macro_optional_add_subdirectory(kspaceduel)
macro_optional_add_subdirectory(ksquares)
macro_optional_add_subdirectory(ksudoku)
macro_optional_add_subdirectory(ktuberling)
macro_optional_add_subdirectory(ktron)
if(OPENGL_SUPPORT)
    macro_optional_add_subdirectory(kubrick)
endif(OPENGL_SUPPORT)
macro_optional_add_subdirectory(palapeli)
if(PYTHONINTERP_FOUND)
    macro_optional_add_subdirectory(kajongg)
endif(PYTHONINTERP_FOUND)

macro_optional_add_subdirectory(doc)
macro_display_feature_log()
