PROJECT(kbfx)

CMAKE_MINIMUM_REQUIRED(VERSION 2.4.5 FATAL_ERROR)
SET(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmakemodules)
SET(CMAKE_COLOR_MAKEFILE ON CACHE STRING "Enable/Disable color output during build." FORCE)
#SET(CMAKE_VERBOSE_MAKEFILE OFF CACHE STRING "Enable/Disable cmake debug output during build." FORCE)

# Global variable CMAKE_BUILD_TYPE
# None (CMAKE_C_FLAGS or CMAKE_CXX_FLAGS used)
# Debug (CMAKE_C_FLAGS_DEBUG or CMAKE_CXX_FLAGS_DEBUG)
# Release (CMAKE_C_FLAGS_RELEASE or CMAKE_CXX_FLAGS_RELEASE)
# RelWithDebInfo (CMAKE_C_FLAGS_RELWITHDEBINFO or CMAKE_CXX_FLAGS_RELWITHDEBINFO
# MinSizeRel (CMAKE_C_FLAGS_MINSIZEREL or CMAKE_CXX_FLAGS_MINSIZEREL)
IF (NOT CMAKE_BUILD_TYPE)
	SET(CMAKE_BUILD_TYPE RelWithDebInfo
	    CACHE
	    STRING "Specify build type: None Debug Release RelWithDebInfo MinSizeRel."
	    FORCE)
ENDIF (NOT CMAKE_BUILD_TYPE)

OPTION(USE_STRIGI "Enable use of Strigi search support (disabled)" OFF)
OPTION(USE_MENUDRAKE "Use 'menudrake' instead of 'kmenuedit' in Mandriva (auto)" ON)

include_directories (${CMAKE_CURRENT_BINARY_DIR})
add_definitions (-w )

SET(BIN_SEARCH_PATHES
    $ENV{HOME}/bin
    $ENV{HOME}/usr/bin
    $ENV{KDEDIR}/bin
    ${CMAKE_INSTALL_PREFIX}/bin
    /opt/kde/bin
    /opt/kde3/bin
    /opt/kde4/bin
    /usr/kde/3.5/bin
    /usr/bin
    /usr/local/bin
    /opt/bin
    )
SET(INCLUDE_SEARCH_PATHES
  $ENV{HOME}/include
  $ENV{HOME}/usr/include
  $ENV{KDEDIR}/include
  /opt/kde/include
  /opt/kde3/include
  /opt/kde4/include
  /usr/kde/3.5/include
  /usr/include
  /usr/local/include
  /opt/include
  ${CMAKE_SYSTEM_INCLUDE_PATH}
  )
SET(LIB_SEARCH_PATHES
  $ENV{HOME}/lib
  $ENV{HOME}/usr/lib
  $ENV{KDEDIR}/lib
  /opt/kde/lib
  /opt/kde3/lib
  /opt/kde4/lib
  /usr/kde/3.5/lib
  /usr/lib
  /usr/local/lib
  /opt/lib
  )

SET(LIB_MAJOR 4)
SET(LIB_MINOR 9)
SET(LIB_RELEASE 3)
SET(LIB_SUB_RELEASE 20070221)
SET(APPLICATION_INTERNAL_VERSION "20070221")

SET(APPLICATION_NAME "${PROJECT_NAME}")
SET(APPLICATION_MAIN_VERSION "0.${LIB_MAJOR}.${LIB_MINOR}.${LIB_RELEASE}")
SET(APPLICATION_VERSION "${APPLICATION_MAIN_VERSION}-${LIB_SUB_RELEASE}")
SET(VERSION ${APPLICATION_VERSION})

SET(STRIGI_VERSION "0.3.11")
SET(GENTOO_VERSION "${APPLICATION_MAIN_VERSION}_pre${LIB_SUB_RELEASE}")
SET(GENTOO_KEYWORDS "~x86 ~ppc ~amd64")

IF (USE_STRIGI)
	FIND_PACKAGE(Strigi REQUIRED)
	INCLUDE_DIRECTORIES(${STRIGI_INCLUDE_DIR})
	MESSAGE(STATUS "Strigi support is: ON!")
ELSE (USE_STRIGI)
	MESSAGE(STATUS "Strigi support is: OFF!")
ENDIF (USE_STRIGI)


FIND_PROGRAM(HAVE_MANDRAKE menudrake)
IF (HAVE_MANDRAKE AND USE_MENUDRAKE)
	SET(MANDRAKE "1")
	MESSAGE(STATUS "Will use 'menudrake' instead of 'kmenuedit'!")
ELSE (HAVE_MANDRAKE AND USE_MENUDRAKE)
	SET(MANDRAKE "")
	MESSAGE(STATUS "Will use 'kmenuedit'!")
ENDIF (HAVE_MANDRAKE AND USE_MENUDRAKE)

MESSAGE(STATUS "Building for KDE4")
FIND_PACKAGE(KDE4 REQUIRED)
ADD_DEFINITIONS(${KDE4_DEFINITIONS} ${QT_DEFINITIONS})
SET(INCLUDE_SEARCH_PATHES
    ${INCLUDE_SEARCH_PATHES}
    ${KDE4_INCLUDES}
    )
SET(LIB_SEARCH_PATHES
    ${LIB_SEARCH_PATHES}
    ${KDE4_LIB_DIR}
    )

INCLUDE_DIRECTORIES(
    ${CMAKE_BINARY_DIR}
    ${CMAKE_CURRENT_BINARY_DIR}/src
    ${CMAKE_CURRENT_BINARY_DIR}/kbfxlib/data
    ${CMAKE_CURRENT_BINARY_DIR}/kbfxlib/common
    ${CMAKE_CURRENT_BINARY_DIR}/configdialog
    ${CMAKE_CURRENT_BINARY_DIR}/plugins/common
    ${CMAKE_SOURCE_DIR}
    ${CMAKE_CURRENT_SOURCE_DIR}/src
    ${CMAKE_CURRENT_SOURCE_DIR}/kbfxlib
    ${CMAKE_CURRENT_SOURCE_DIR}/kbfxlib/data
    ${CMAKE_CURRENT_SOURCE_DIR}/kbfxlib/common
    ${CMAKE_CURRENT_SOURCE_DIR}/configdialog
    ${CMAKE_CURRENT_SOURCE_DIR}/plugins/common
    ${KDE3_INCLUDE_DIR}/kbfx
    ${KDE3_INCLUDE_DIR}/kbfx/plugins
    ${INCLUDE_SEARCH_PATHES}
    )

SET(KBFX_LIB_INSTALL_DIR ${LIB_INSTALL_DIR})

add_definitions (-DQT3_SUPPORT -DQT3_SUPPORT_WARNINGS)
add_definitions (-DKDE3_SUPPORT)

ADD_SUBDIRECTORY(kbfxlib/data)
ADD_SUBDIRECTORY(kbfxlib/common)
ADD_SUBDIRECTORY(src)
ADD_SUBDIRECTORY(configdialog)
ADD_SUBDIRECTORY(skin/vector)
ADD_SUBDIRECTORY(skin/raster/default)
ADD_SUBDIRECTORY(skin/raster/2panels)
ADD_SUBDIRECTORY(images)
ADD_SUBDIRECTORY(doc)
ADD_SUBDIRECTORY(plugins/common)
ADD_SUBDIRECTORY(plugins/applications)
ADD_SUBDIRECTORY(plugins/settings)
ADD_SUBDIRECTORY(plugins/plasmoids)
ADD_SUBDIRECTORY(plugins/recentstuff)
IF (USE_STRIGI)
	ADD_SUBDIRECTORY(plugins/strigi)
ENDIF (USE_STRIGI)

CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/config-plasmamenu.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-plasmamenu.h @ONLY)
#CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/kbfx.spec.in ${CMAKE_BINARY_DIR}/kbfx.spec @ONLY)
#CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/kbfx.ebuild.in ${CMAKE_BINARY_DIR}/kbfx-${GENTOO_VERSION}.ebuild @ONLY)
#CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/strigi.ebuild.in ${CMAKE_BINARY_DIR}/strigi-${STRIGI_VERSION}.ebuild @ONLY)
#CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/kbfx-svn.ebuild.in ${CMAKE_BINARY_DIR}/kbfx-9999.ebuild @ONLY)

SET(DIST_INCLUDE "kbfx-9999.ebuild kbfx.spec kbfx-${GENTOO_VERSION}.ebuild strigi-${STRIGI_VERSION}.ebuild")
SET(DIST_EXCLUDE "Helperstuff")
CONFIGURE_FILE(
    "${CMAKE_CURRENT_SOURCE_DIR}/cmakemodules/makedist.sh.in"
    "${CMAKE_CURRENT_BINARY_DIR}/makedist.sh"
    IMMEDIATE
    @ONLY)
ADD_CUSTOM_TARGET(dist
    "${CMAKE_BINARY_DIR}/makedist.sh"
    WORKING_DIRECTORY ${CMAKE_BINARY_DIR})

SET(MESSAGES_DIR ${CMAKE_SOURCE_DIR})
CONFIGURE_FILE(
    "${CMAKE_CURRENT_SOURCE_DIR}/cmakemodules/package_messages.sh.in"
    "${CMAKE_CURRENT_BINARY_DIR}/package_messages.sh"
    IMMEDIATE
    @ONLY)
ADD_CUSTOM_TARGET(package-messages
    "${CMAKE_CURRENT_BINARY_DIR}/package_messages.sh")

