project(QtTapioca)
cmake_minimum_required(VERSION 2.4.3)

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

# Set install locations:
set(LIB_SUFFIX "" CACHE STRING "Define suffix of directory name (32/64)" )
set(EXEC_INSTALL_PREFIX  ${CMAKE_INSTALL_PREFIX}       CACHE PATH  "Base directory for executables and libraries" FORCE)
set(LIB_INSTALL_DIR          "${EXEC_INSTALL_PREFIX}/lib${LIB_SUFFIX}"     CACHE PATH "The subdirectory relative to the install prefix where libraries will be installed (default is /lib${LIB_SUFFIX})" FORCE)

find_package(Qt4 REQUIRED)
include(UsePkgConfig REQUIRED)

pkgconfig(QtDBus QDBUS_INC_DIR QDBUS_LIB_DIR QDBUS_LDFLAGS QDBUS_CFLAGS)
pkgconfig(QtTelepathyClient QTTELEPATHY_INC_DIR QTTELEPATHY_LIB_DIR QTTELEPATHY_LDFLAGS QTTELEPATHY_CFLAGS)

find_library(QTTELEPATHY_LIBRARIES NAMES QtTelepathyClient
    PATHS ${QTTELEPATHY_LIB_DIR}
)

SET (VERSION_MAJOR "0")
SET (VERSION_MINOR "14")
SET (VERSION_PATCH "1")
SET (VERSION_SUFFIX "")
SET (VERSION ${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}${VERSION_SUFFIX})

# put the include dirs which are in the source or build tree
# before all other include dirs, so the headers in the sources
# are prefered over the already installed ones
# since cmake 2.4.1
set(CMAKE_INCLUDE_DIRECTORIES_PROJECT_BEFORE ON)

set(CMAKE_DATA_DIR "/share" CACHE STRING.
    "Install location for data (relative to prefix).")

configure_file(
    "${CMAKE_SOURCE_DIR}/cmake/modules/config.h.cmake"
    "${CMAKE_BINARY_DIR}/config.h")

configure_file(
    "${CMAKE_SOURCE_DIR}/cmake/modules/cmake_uninstall.cmake.in"
    "${CMAKE_BINARY_DIR}/cmake_uninstall.cmake"
    IMMEDIATE @ONLY)

add_custom_target(uninstall
    "${CMAKE_COMMAND}" -P "${CMAKE_BINARY_DIR}/cmake_uninstall.cmake")

# Generate pkg-config file
configure_file(${CMAKE_SOURCE_DIR}/QtTapioca.pc.in ${CMAKE_BINARY_DIR}/QtTapioca.pc)
install(FILES ${CMAKE_BINARY_DIR}/QtTapioca.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)

add_subdirectory(src)
add_subdirectory(include)
add_subdirectory(tests)

# If the cmake version includes cpack, use it
IF(EXISTS "${CMAKE_ROOT}/Modules/CPack.cmake")
    SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Qt Tapioca binding library")
    SET(CPACK_PACKAGE_VENDOR "INdT - Instituto Nokia de Tecnologia")
    SET(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/README")
    SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/README")
    SET(CPACK_PACKAGE_VERSION_MAJOR "${VERSION_MAJOR}")
    SET(CPACK_PACKAGE_VERSION_MINOR "${VERSION_MINOR}")
    SET(CPACK_PACKAGE_VERSION_PATCH "${VERSION_PATCH}")
    SET(CPACK_PACKAGE_INSTALL_DIRECTORY "tapioca-qt ${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}")
    SET(CPACK_SOURCE_PACKAGE_FILE_NAME "tapioca-qt-${VERSION}")
    SET(CPACK_GENERATOR TGZ)
    SET(CPACK_SOURCE_GENERATOR TGZ)
    SET(CPACK_SOURCE_IGNORE_FILES CMakeCache.txt CMakeFiles Makefile progress.make cmake_install.cmake CPackConfig.cmake CPackSourceConfig.cmake "\\\\.svn" "\\\\.swp$" "\\\\.cvs" "\\\\.tar.gz" "\\\\.cxx")
    SET(CPACK_SOURCE_TOPLEVEL_TAG "Linux-Source")
    SET(CPACK_STRIP_FILES "")
    SET(CPACK_SYSTEM_NAME "Linux")
    INCLUDE(CPack)
ENDIF(EXISTS "${CMAKE_ROOT}/Modules/CPack.cmake")
