project(libQtGConf)
cmake_minimum_required(VERSION 2.8)

# Dependencies
include(FindPkgConfig)
find_package(Qt4 REQUIRED)
pkg_check_modules(GCONF REQUIRED gconf-2.0)
pkg_check_modules(GOBJECT REQUIRED gobject-2.0)

# Sources
## QtGConf
set(QtGConf_SRCS
    gconfitem.cpp
    gconfitem-qml-wrapper.cpp
    )

set(QtGConf_MOC_HDRS
    gconfitem.h
    gconfitem-qml-wrapper.h
    )

qt4_wrap_cpp(QtGConf_MOC_SRCS ${QtGConf_MOC_HDRS})

## QtGConfQml
set(QtGConfQml_SRCS
    qml-plugin.cpp
    )

set(QtGConfQml_MOC_HDRS
    qml-plugin.h
    )

qt4_wrap_cpp(QtGConfQml_MOC_SRCS ${QtGConfQml_MOC_HDRS})

# Build
add_definitions(-DQT_NO_KEYWORDS)

include_directories(
    ${CMAKE_CURRENT_SOURCE_DIR}/libgq-fremantle/gconf
    ${CMAKE_CURRENT_BINARY_DIR}
    ${QT_INCLUDE_DIR}
    ${QT_QTCORE_INCLUDE_DIR}
    ${QT_QTGUI_INCLUDE_DIR}
    ${QT_QTDBUS_INCLUDE_DIR}
    ${QT_QTDECLARATIVE_INCLUDE_DIR}
    ${GCONF_INCLUDE_DIRS}
    ${GOBJECT_INCLUDE_DIRS}
    )

## QtGConf
add_library(QtGConf SHARED ${QtGConf_SRCS} ${QtGConf_MOC_SRCS})

set_target_properties(QtGConf PROPERTIES
    SOVERSION 1
    VERSION 1.0.0
    )

target_link_libraries(QtGConf
    ${QT_QTCORE_LIBRARIES}
    ${QT_QTDBUS_LIBRARIES}
    ${GCONF_LDFLAGS}
    ${GOBJECT_LDFLAGS}
    )

## QtGConfQml
add_library(QtGConfQml SHARED ${QtGConfQml_SRCS} ${QtGConfQml_MOC_SRCS})

target_link_libraries(QtGConfQml
    QtGConf
    ${QT_QTDECLARATIVE_LIBRARIES}
    )

## test
add_executable(test test.cpp)
target_link_libraries(test
    QtGConf
    ${QT_QTCORE_LIBRARIES}
    ${QT_QTGUI_LIBRARIES}
    ${QT_QTDECLARATIVE_LIBRARIES}
    )

# Install
set(IMPORT_INSTALL_DIR lib/qt4/imports/gconf)
set(INCLUDE_INSTALL_DIR include/QtGConf)

## QtGConf
install(TARGETS QtGConf
    LIBRARY DESTINATION lib${LIB_SUFFIX}
    )

install(FILES gconfitem-qml-wrapper.h
    DESTINATION ${INCLUDE_INSTALL_DIR}
    )

# FIXME: Generate from ${CMAKE_INSTALL_PREFIX}
install(FILES libqtgconf.pc
    DESTINATION lib/pkgconfig
    )

## QtGConfQml
install(TARGETS QtGConfQml
    LIBRARY DESTINATION ${IMPORT_INSTALL_DIR}
    )

install(FILES qmldir
    DESTINATION ${IMPORT_INSTALL_DIR}
    )
