PROJECT(KST)

cmake_minimum_required(VERSION 2.6)

find_package(Qt3 REQUIRED)
find_package(KDE3 REQUIRED)

add_definitions(${QT_DEFINITIONS} ${KDE3_DEFINITIONS})

link_directories(${KDE3_LIB_DIR})

include(CheckFunctionExists)
include(FindPkgConfig)

SET(KST_VERSION 1.9.0_devel)
SET(KST_LIBKST_VERSION 1.9.0)

SET(CMAKE_REQUIRED_INCLUDES "/usr/include /usr/local/include")

CHECK_FUNCTION_EXISTS(strlcpy HAVE_STRLCPY)
CHECK_FUNCTION_EXISTS(strlcat HAVE_STRLCAT)
CHECK_FUNCTION_EXISTS(setenv HAVE_SETENV)
CHECK_FUNCTION_EXISTS(unsetenv HAVE_UNSETENV)

FIND_PATH(HAVE_LINUX_VT NAMES linux/vt.h) 
IF (HAVE_LINUX_VT)
    SET(HAVE_LINUX 1)
ENDIF (HAVE_LINUX_VT)

FIND_PATH(HAVE_CFITSIO_FITSIO_H_ NAMES cfitsio/fitsio.h)
FIND_PATH(HAVE_FITSIO_H_ NAMES fitsio.h)
FIND_LIBRARY(HAVE_FITSIO_LIB_ NAMES cfitsio)
IF (HAVE_CFITSIO_FITSIO_H_ OR HAVE_FITSIO_H_)
    IF (HAVE_FITSIO_LIB_)
        SET(FITSIO_LIBS cfitsio m)
        IF (HAVE_CFITSIO_FITSIO_H_)
            SET(KST_FITSIO_PATH ${HAVE_CFITSIO_FITSIO_H_}/cfitsio)
        ENDIF (HAVE_CFITSIO_FITSIO_H_)
        SET(KST_HAVE_FITSIO 1)
    ENDIF (HAVE_FITSIO_LIB_)
ENDIF (HAVE_CFITSIO_FITSIO_H_ OR HAVE_FITSIO_H_)

FIND_PATH(HAVE_MUPARSER_H_ NAMES muParserDLL.h)
FIND_LIBRARY(HAVE_MUPARSER_LIB_ NAMES muparser)
IF (HAVE_MUPARSER_H_ AND HAVE_MUPARSER_LIB_)
    SET(MUPARSER_LIBS muparser m)
    SET(KST_HAVE_MUPARSER 1)
ENDIF (HAVE_MUPARSER_H_ AND HAVE_MUPARSER_LIB_)

FIND_PATH(HAVE_GSL_H_ NAMES gsl/gsl_sys.h)
FIND_LIBRARY(HAVE_GSL_LIB_ NAMES gsl)
IF (HAVE_GSL_H_ AND HAVE_GSL_LIB_)
    SET(GSL_LIBS gsl gslcblas m)
    SET(KST_HAVE_GSL 1)
ENDIF (HAVE_GSL_H_ AND HAVE_GSL_LIB_)

FIND_PATH(HAVE_READLINE_H_ NAMES readline/readline.h)
FIND_LIBRARY(HAVE_READLINE_LIB_ NAMES readline)
FIND_PATH(HAVE_NCURSES_H_ NAMES ncurses/ncurses.h)
FIND_LIBRARY(HAVE_NCURSES_LIB_ NAMES ncurses)
IF (HAVE_READLINE_H_ AND HAVE_READLINE_LIB_ AND HAVE_NCURSES_H_ AND HAVE_NCURSES_LIB_)
    SET(READLINE_LIBS readline ncurses)
    SET(KST_HAVE_READLINE 1)
ENDIF (HAVE_READLINE_H_ AND HAVE_READLINE_LIB_ AND HAVE_NCURSES_H_ AND HAVE_NCURSES_LIB_)

FIND_PATH(HAVE_KJSEMBED_H_ NAMES kjsembed/jssecuritypolicy.h)
FIND_LIBRARY(HAVE_KJSEMBED_LIB_ NAMES kjsembed)
IF (HAVE_KJSEMBED_H_ AND HAVE_KJSEMBED_LIB_)
    SET(KST_HAVE_KJSEMBED 1)
ENDIF (HAVE_KJSEMBED_H_ AND HAVE_KJSEMBED_LIB_)

FIND_PATH(HAVE_GETDATA_H_ NAMES getdata.h)
FIND_LIBRARY(HAVE_GETDATA_LIB_ NAMES getdata)
pkg_check_modules(GETDATA getdata>=0.6.0)
IF (HAVE_GETDATA_H_ AND HAVE_GETDATA_LIB_ AND GETDATA_FOUND)
    SET(HAVE_EXTERNAL_GETDATA 1)
    SET(GETDATA_LIBS getdata m)
    UNSET(GETDATA_C)
ELSE (HAVE_GETDATA_H_ AND HAVE_GETDATA_LIB_ AND GETDATA_FOUND)
    UNSET(HAVE_EXTERNAL_GETDATA)
    UNSET(GETDATA_LIBS)
    SET(GETDATA_C getdata.c)
ENDIF (HAVE_GETDATA_H_ AND HAVE_GETDATA_LIB_ AND GETDATA_FOUND)

get_filename_component(QT_UI_LIBRARY_DIR ${QT_QASSISTANTCLIENT_LIBRARY} PATH)

CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/config.h.cmake ${CMAKE_SOURCE_DIR}/config.h)

add_subdirectory(src)
add_subdirectory(misc)
