project(KGtk)
cmake_minimum_required(VERSION 2.4.0)

set(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/README")
set(CPACK_GENERATOR "TBZ2")
set(CPACK_SOURCE_GENERATOR "TBZ2")
set(CPACK_PACKAGE_VERSION_MAJOR "0")
set(CPACK_PACKAGE_VERSION_MINOR "10")
set(CPACK_PACKAGE_VERSION_PATCH "1")
set(KGTK_VERSION "${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}")
set(KGTK_VERSION_FULL "${KGTK_VERSION}.${CPACK_PACKAGE_VERSION_PATCH}")
set(CPACK_SOURCE_PACKAGE_FILE_NAME "${CMAKE_PROJECT_NAME}-${KGTK_VERSION_FULL}")
include(CPack)

set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake)
include(CheckFunctionExists)
check_function_exists(getpeereid HAVE_GETPEEREID)

# Cant compile Qt3/KDE3 at the same time as Qt4/KDE4...
if ("${KGTK_KDE4}" MATCHES "true" OR "${KGTK_QT4}" MATCHES "true")
    if (NOT "${KGTK_KDE3}" MATCHES "false" OR NOT "${KGTK_QT3}" MATCHES "false")
        set(KGTK_KDE3 "false")
        set(KGTK_QT3 "false")
        message("** INFORMATION: Compiling Qt4/KDE4, Qt3/KDE3 disabled")
    endif (NOT "${KGTK_KDE3}" MATCHES "false" OR NOT "${KGTK_QT3}" MATCHES "false")
endif ("${KGTK_KDE4}" MATCHES "true" OR "${KGTK_QT4}" MATCHES "true")

if (NOT "${KGTK_KDE3}" MATCHES "false")
    add_subdirectory(kdialogd3)
endif (NOT "${KGTK_KDE3}" MATCHES "false")

if ("${KGTK_KDE4}" MATCHES "true")
    add_subdirectory(kdialogd4)
    # For some reason kdialogd4 does not install unless you cd into the kdialogd4 folder?
    # ...hacky fix for this...
    install(PROGRAMS ${CMAKE_BINARY_DIR}/kdialogd4/kdialogd4 DESTINATION bin)
endif ("${KGTK_KDE4}" MATCHES "true")

if (NOT "${KGTK_GTK2}" MATCHES "false")
    # Check if we have dlvsym...
    find_library(LIBDLVSYM_LIBRARY
                 NAMES dl
                 PATHS /lib /usr/lib /usr/X11R6/lib /usr/local/lib)

    if(LIBDLVSYM_LIBRARY)
        set(HAVE_DLVSYM 1)
        # Determine version of dlsym...
        find_library(LIBDL_LIBRARY
                     NAMES dl
                     PATHS /lib /usr/lib /usr/X11R6/lib /usr/local/lib)

        if(LIBDL_LIBRARY)
            execute_process(COMMAND objdump --dynamic-syms ${LIBDL_LIBRARY}
                            COMMAND grep dlsym
                            OUTPUT_VARIABLE DLSYM_DATA)
            separate_arguments(DLSYM_DATA)
            if (${CMAKE_MAJOR_VERSION} GREATER 2 OR ${CMAKE_MINOR_VERSION} GREATER 4)
                cmake_policy(SET CMP0007 OLD)
            endif (${CMAKE_MAJOR_VERSION} GREATER 2 OR ${CMAKE_MINOR_VERSION} GREATER 4)
            list(GET DLSYM_DATA 4 KGTK_DLSYM_VERSION)
        endif(LIBDL_LIBRARY)
    else(LIBDLVSYM_LIBRARY)
        message("** INFORMATION: You're libdl does not contain dlvsym - SWT apps will not be supported")
    endif(LIBDLVSYM_LIBRARY)

    add_subdirectory(gtk2)
endif (NOT "${KGTK_GTK2}" MATCHES "false")

if (NOT "${KGTK_QT3}" MATCHES "false")
    add_subdirectory(qt3)
endif (NOT "${KGTK_QT3}" MATCHES "false")

if ("${KGTK_QT4}" MATCHES "true")
    add_subdirectory(qt4)
endif ("${KGTK_QT4}" MATCHES "true")


install(PROGRAMS ${CMAKE_SOURCE_DIR}/kdialogd-wrapper DESTINATION bin)
install(PROGRAMS ${CMAKE_SOURCE_DIR}/kgtk-wrapper DESTINATION bin)

message("** INFORMATION: Using installation prefix: ${CMAKE_INSTALL_PREFIX}")
configure_file (config.h.cmake ${CMAKE_BINARY_DIR}/config.h)
