CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/version.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/version.h)

INCLUDE_DIRECTORIES(
                     # basic libs
                     ${CMAKE_CURRENT_SOURCE_DIR}/../libs/dimg
                     ${CMAKE_CURRENT_SOURCE_DIR}/../libs/dimg/loaders
                     ${CMAKE_CURRENT_SOURCE_DIR}/../libs/dimg/filters
                     ${CMAKE_CURRENT_SOURCE_DIR}/../libs/dimg/filters/auto
                     ${CMAKE_CURRENT_SOURCE_DIR}/../libs/dimg/filters/bcg
                     ${CMAKE_CURRENT_SOURCE_DIR}/../libs/dimg/filters/bw
                     ${CMAKE_CURRENT_SOURCE_DIR}/../libs/dimg/filters/hsl
                     ${CMAKE_CURRENT_SOURCE_DIR}/../libs/dimg/filters/decorate
                     ${CMAKE_CURRENT_SOURCE_DIR}/../libs/dimg/filters/fx
                     ${CMAKE_CURRENT_SOURCE_DIR}/../libs/dimg/filters/greycstoration
                     ${CMAKE_CURRENT_SOURCE_DIR}/../libs/dimg/filters/icc
                     ${CMAKE_CURRENT_SOURCE_DIR}/../libs/dimg/filters/lc
                     ${CMAKE_CURRENT_SOURCE_DIR}/../libs/dimg/filters/nr
                     ${CMAKE_CURRENT_SOURCE_DIR}/../libs/dimg/filters/sharp
                     ${CMAKE_CURRENT_SOURCE_DIR}/../libs/dimg/filters/cb
                     ${CMAKE_CURRENT_SOURCE_DIR}/../libs/dimg/filters/levels
                     ${CMAKE_CURRENT_SOURCE_DIR}/../libs/dimg/filters/curves
                     ${CMAKE_CURRENT_SOURCE_DIR}/../libs/dimg/filters/wb
                     ${CMAKE_CURRENT_SOURCE_DIR}/../libs/dimg/filters/transform
                     ${CMAKE_CURRENT_SOURCE_DIR}/../libs/dimg/filters/lens
                     ${CMAKE_CURRENT_SOURCE_DIR}/../libs/dmetadata
                     ${CMAKE_CURRENT_SOURCE_DIR}/../libs/histogram
                     ${CMAKE_CURRENT_SOURCE_DIR}/../libs/jpegutils
                     ${CMAKE_CURRENT_SOURCE_DIR}/../libs/jpegutils/${DIGIKAM_LIBJPEG_DIR}
                     ${CMAKE_CURRENT_SOURCE_DIR}/../libs/threadimageio
                     ${CMAKE_CURRENT_SOURCE_DIR}/../libs/template

                     # widgets and dialogs
                     ${CMAKE_CURRENT_SOURCE_DIR}/../libs/widgets/common
                     ${CMAKE_CURRENT_SOURCE_DIR}/../libs/widgets/metadata
                     ${CMAKE_CURRENT_SOURCE_DIR}/../libs/widgets/iccprofiles
                     ${CMAKE_CURRENT_SOURCE_DIR}/../libs/imageproperties
                     ${CMAKE_CURRENT_SOURCE_DIR}/../libs/dialogs

                     # database libs
                     ${CMAKE_CURRENT_SOURCE_DIR}/../libs/database
                     ${CMAKE_CURRENT_SOURCE_DIR}/../libs/database/haar
                     ${CMAKE_CURRENT_SOURCE_DIR}/../libs/models

                     # shared utilities
                     ${CMAKE_CURRENT_SOURCE_DIR}/../utilities/slideshow
                     ${CMAKE_CURRENT_SOURCE_DIR}/../utilities/imageeditor/editor
                     ${CMAKE_CURRENT_SOURCE_DIR}/../utilities/imageeditor/widgets
                     ${CMAKE_CURRENT_SOURCE_DIR}/../utilities/imageeditor/canvas
                     ${CMAKE_CURRENT_SOURCE_DIR}/../utilities/imageeditor/printiface
                     ${CMAKE_CURRENT_SOURCE_DIR}/../utilities/imageeditor/rawimport

                     # specific libs and utilities
                     ${CMAKE_CURRENT_SOURCE_DIR}/../libs/3rdparty/lprof
                     ${CMAKE_CURRENT_SOURCE_DIR}/../libs/3rdparty/sqlite2
                     ${CMAKE_CURRENT_SOURCE_DIR}/../libs/3rdparty/libpgf
                     ${CMAKE_CURRENT_SOURCE_DIR}/../libs/3rdparty/clapack
                     ${CMAKE_CURRENT_SOURCE_DIR}/../libs/3rdparty/cimg
                     ${CMAKE_CURRENT_SOURCE_DIR}/../libs/themeengine
                     ${CMAKE_CURRENT_SOURCE_DIR}/../utilities/kipiiface
                     ${CMAKE_CURRENT_SOURCE_DIR}/../utilities/cameragui
                     ${CMAKE_CURRENT_SOURCE_DIR}/../utilities/setup
                     ${CMAKE_CURRENT_SOURCE_DIR}/../utilities/slideshow
                     ${CMAKE_CURRENT_SOURCE_DIR}/../utilities/batch
                     ${CMAKE_CURRENT_SOURCE_DIR}/../utilities/lighttable
                     ${CMAKE_CURRENT_SOURCE_DIR}/../utilities/queuemanager
                     ${CMAKE_CURRENT_SOURCE_DIR}/../utilities/queuemanager/basetools/color
                     ${CMAKE_CURRENT_SOURCE_DIR}/../utilities/queuemanager/basetools/convert
                     ${CMAKE_CURRENT_SOURCE_DIR}/../utilities/queuemanager/basetools/enhance
                     ${CMAKE_CURRENT_SOURCE_DIR}/../utilities/queuemanager/basetools/filters
                     ${CMAKE_CURRENT_SOURCE_DIR}/../utilities/queuemanager/basetools/transform
                     ${CMAKE_CURRENT_SOURCE_DIR}/../utilities/queuemanager/basetools/metadata
                     ${CMAKE_CURRENT_SOURCE_DIR}/../utilities/queuemanager/basetools/decorate
                     ${CMAKE_CURRENT_SOURCE_DIR}/../utilities/searchwindow
                     ${CMAKE_CURRENT_SOURCE_DIR}/../utilities/fuzzysearch
                     ${CMAKE_CURRENT_SOURCE_DIR}/../utilities/gpssearch
                     ${CMAKE_CURRENT_SOURCE_DIR}/../utilities/timeline
                     ${CMAKE_CURRENT_SOURCE_DIR}/../utilities/firstrun
                     ${CMAKE_CURRENT_SOURCE_DIR}/../utilities/advancedrename
                     ${CMAKE_CURRENT_SOURCE_DIR}/../utilities/advancedrename/common
                     ${CMAKE_CURRENT_SOURCE_DIR}/../utilities/advancedrename/parser
                     ${CMAKE_CURRENT_SOURCE_DIR}/../utilities/advancedrename/parser/options
                     ${CMAKE_CURRENT_SOURCE_DIR}/../utilities/advancedrename/parser/modifiers
                     ${CMAKE_CURRENT_SOURCE_DIR}/../digikam

                     # config-digikam.h
                     ${CMAKE_CURRENT_BINARY_DIR}/../

                     # external library paths
                     ${JPEG_INCLUDE_DIR}
                     ${PNG_PNG_INCLUDE_DIR}
                     ${TIFF_INCLUDE_DIR}
                   )

IF(LENSFUN_LIBRARY)
   INCLUDE_DIRECTORIES(${LENSFUN_INCLUDE_DIR})
ENDIF(LENSFUN_LIBRARY)

# Shared libdigikamcore ################################################################

# Disable Clapack C code warnings.
SET_SOURCE_FILES_PROPERTIES(${libclapack_SRCS} PROPERTIES COMPILE_FLAGS "-w")

# Disable libpgf warnings.
SET_SOURCE_FILES_PROPERTIES(${libpgf_SRCS} PROPERTIES COMPILE_FLAGS "-w")

# Disable liblqr C code warnings.
SET_SOURCE_FILES_PROPERTIES(${liblqr_SRCS} PROPERTIES COMPILE_FLAGS "-w")

SET(digikamcore_LIB_SRCS
                        # basic libs
                        ${libdimg_SRCS}
                        ${libdimgloaders_SRCS}
                        ${libdimgfilters_SRCS}
                        ${libdmetadata_SRCS}
                        ${libdatabasecore_SRCS}
                        ${libhistogram_SRCS}
                        ${libwhitebalance_SRCS}
                        ${libcurves_SRCS}
                        ${liblevels_SRCS}
                        ${liblprof_SRCS}
                        ${libjpegutils_SRCS}
                        ${libthreadimageio_SRCS}
                        ${libthemeengine_SRCS}
                        ${libpgf_SRCS}
                        ${pgfutils_SRCS}
                        ${libdigikamhelpers_SRCS}

                        # widgets and dialogs
                        ${libcommonwidgets_SRCS}
                        ${libeditorwidgets_SRCS}
                        ${libiccprofileswidgets_SRCS}
                        ${libmetadatawidgets_SRCS}
                        ${libdialogs_SRCS}
                        ${libimageproperties_SRCS}

                        # utilities
                        ${libslideshow_SRCS}
                        ${libdimgcanvas_SRCS}
                        ${libdimgeditorprintiface_SRCS}
                        ${libdimgeditor_SRCS}
                        ${librawimport_SRCS}
   )

KDE4_ADD_UI_FILES(digikamcore_LIB_SRCS
                  ${CMAKE_CURRENT_SOURCE_DIR}/../utilities/advancedrename/parser/modifiers/fillmodifierdialogwidget.ui
                  ${CMAKE_CURRENT_SOURCE_DIR}/../utilities/advancedrename/parser/modifiers/replacemodifierdialogwidget.ui
                  ${CMAKE_CURRENT_SOURCE_DIR}/../utilities/advancedrename/parser/modifiers/rangemodifierdialogwidget.ui
                  ${CMAKE_CURRENT_SOURCE_DIR}/../utilities/advancedrename/parser/options/dateoptiondialogwidget.ui
                  ${CMAKE_CURRENT_SOURCE_DIR}/../utilities/advancedrename/parser/options/sequencenumberoptiondialogwidget.ui
                  ${CMAKE_CURRENT_SOURCE_DIR}/../utilities/imageeditor/printiface/printoptionspage.ui
                 )

KDE4_ADD_KCFG_FILES(digikamcore_LIB_SRCS
                    ${CMAKE_CURRENT_SOURCE_DIR}/../utilities/imageeditor/printiface/digikamconfig.kcfgc
                   )

KDE4_ADD_LIBRARY(digikamcore SHARED ${digikamcore_LIB_SRCS})

ADD_DEPENDENCIES(digikamcore digikam-svnversion)

TARGET_LINK_LIBRARIES(digikamcore
                      ${KDE4_KDECORE_LIBS}
                      ${KDE4_KIO_LIBS}
                      ${KDE4_KFILE_LIBS}
                      ${KDE4_KHTML_LIBS}
                      ${KDE4_KNOTIFYCONFIG_LIBRARY}
                      ${KDE4_KDEUI_LIBS}
                      ${KDE4_KUTILS_LIBS}
                      ${KDE4_SOLID_LIBS}
                      ${QT_QTSQL_LIBRARY}
                      ${QT_QT3SUPPORT_LIBRARY}

                      ${JPEG_LIBRARIES}
                      ${TIFF_LIBRARIES}
                      ${PNG_LIBRARIES}
                      ${LCMS_LIBRARIES}
                      ${JASPER_LIBRARIES}

                      # Require by CImg library which use pthread internally.
                      ${CMAKE_THREAD_LIBS_INIT}

                      ${KDCRAW_LIBRARIES}
                      ${KEXIV2_LIBRARIES}
                      ${KIPI_LIBRARIES}
              )

IF(MARBLEWIDGET_FOUND)
    TARGET_LINK_LIBRARIES(digikamcore ${LIBMARBLEWIDGET_LIBRARY})
ENDIF(MARBLEWIDGET_FOUND)

IF(Q_WS_X11)
    TARGET_LINK_LIBRARIES(digikamcore ${X11_LIBRARIES})
ENDIF(Q_WS_X11)

# For Contents Aware Resizer filter.
IF(GLIB2_FOUND)
    TARGET_LINK_LIBRARIES(digikamcore ${GLIB2_LIBRARIES} ${liblqr_LIBS})
ENDIF(GLIB2_FOUND)

IF(LENSFUN_LIBRARY)
    TARGET_LINK_LIBRARIES(digikamcore ${LENSFUN_LIBRARY})
ENDIF(LENSFUN_LIBRARY)

SET_TARGET_PROPERTIES(digikamcore PROPERTIES VERSION 1.0.0 SOVERSION 1)
IF(WIN32)
    SET_TARGET_PROPERTIES(digikamcore PROPERTIES COMPILE_FLAGS -DJPEG_STATIC)
    SET_TARGET_PROPERTIES(digikamcore PROPERTIES OUTPUT_NAME digikamlib)
ENDIF(WIN32)
INSTALL(TARGETS digikamcore ${INSTALL_TARGETS_DEFAULT_ARGS})


# Shared libdigikamdatabase ########################################################

# Disable libsqlite2 C code warnings plus specific flags.
IF(WIN32)
    SET_SOURCE_FILES_PROPERTIES(${libsqlite2_SRCS} PROPERTIES COMPILE_FLAGS "-w -D_OFF_T_ -D_OFF_T_DEFINED")
ELSE(WIN32)
    SET_SOURCE_FILES_PROPERTIES(${libsqlite2_SRCS} PROPERTIES COMPILE_FLAGS "-w")
ENDIF(WIN32)

## Disable libpgf warnings.
#SET_SOURCE_FILES_PROPERTIES(${libpgf_SRCS} PROPERTIES COMPILE_FLAGS "-w")

SET(digikamdatabase_LIB_SRCS ${libdatabase_SRCS}
                             ${libhaar_SRCS}
                             ${libdatabasemodels_SRCS}
                             ${libsqlite2_SRCS}
                             ${libpgf_SRCS}
                             ${pgfutils_SRCS}
   )

KDE4_ADD_LIBRARY(digikamdatabase SHARED ${digikamdatabase_LIB_SRCS})

TARGET_LINK_LIBRARIES(digikamdatabase
                      digikamcore
                      ${KDE4_KIO_LIBS}
                      ${KDE4_SOLID_LIBS}
                      ${KEXIV2_LIBRARIES}
                      ${KDCRAW_LIBRARIES}
                      ${QT_QTCORE_LIBRARY}
                      ${QT_QTGUI_LIBRARY}
                      ${QT_QTSQL_LIBRARY}
                     )

SET_TARGET_PROPERTIES(digikamdatabase PROPERTIES VERSION 1.0.0 SOVERSION 1 )
INSTALL(TARGETS digikamdatabase ${INSTALL_TARGETS_DEFAULT_ARGS} )

# digiKam nepomuk services #########################################################

IF (NEPOMUK_FOUND)

    SET(digikamnepomukservices_SRCS ${libnepomukservices_SRCS} )

    KDE4_ADD_PLUGIN(digikamnepomukservice ${digikamnepomukservices_SRCS})

    TARGET_LINK_LIBRARIES(digikamnepomukservice
                          ${KDE4_KIO_LIBS}
                          ${KDE4_SOLID_LIBS}
                          ${KIPI_LIBRARIES}
                          ${KEXIV2_LIBRARIES}
                          ${KDCRAW_LIBRARIES}
                          ${QT_QTSQL_LIBRARY}
                          ${SOPRANO_CLIENT_LIBRARIES}
                          ${SOPRANO_LIBRARIES}
                          ${KDE4_KDEUI_LIBS}
                          ${KDE4_KIO_LIBS}
                          ${NEPOMUK_LIBRARIES}
                          digikamcore
                          digikamdatabase
                         )

    INSTALL(
    FILES ${CMAKE_CURRENT_SOURCE_DIR}/../utilities/nepomuk/digikamnepomukservice.desktop
    DESTINATION ${SERVICES_INSTALL_DIR})
    INSTALL(
    TARGETS digikamnepomukservice
    DESTINATION ${PLUGIN_INSTALL_DIR})

ENDIF (NEPOMUK_FOUND)

# digiKam binary progam #########################################################

SET(digikam_SRCS ${libdimgimagewindow_SRCS}
                 ${libdeletedialog_SRCS}
                 ${libimagepropertiesdigikam_SRCS}
                 ${libsetup_SRCS}
                 ${libcameragui_SRCS}
                 ${liblighttable_SRCS}
                 ${libbatch_SRCS}
                 ${libkipiiface_SRCS}
                 ${libsearchwindow_SRCS}
                 ${libfuzzysearch_SRCS}
                 ${libgpssearch_SRCS}
                 ${libtimeline_SRCS}
                 ${libqueuemanager_SRCS}
                 ${libalbummodels_SRCS}
                 ${libdigikamgui_SRCS}
                 ${libfirstrun_SRCS}
                 ${libtemplate_SRCS}
                 ${libadvancedrename_SRCS}

                 main.cpp
    )

QT4_ADD_DBUS_ADAPTOR(digikam_SRCS org.kde.digikam.xml digikamapp.h Digikam::DigikamApp)

KDE4_ADD_APP_ICON(digikam_SRCS "../data/icons/apps/hi*-app-digikam.png")

KDE4_ADD_EXECUTABLE(digikam ${digikam_SRCS})

TARGET_LINK_LIBRARIES(digikam
                      ${KDE4_KPARTS_LIBS}
                      ${KDE4_PHONON_LIBS}
                      ${KDE4_KHTML_LIBS}
                      ${KDE4_KUTILS_LIBS}
                      ${KDE4_KNOTIFYCONFIG_LIBRARY}
                      ${KDE4_SOLID_LIBS}
                      ${KIPI_LIBRARIES}
                      ${KEXIV2_LIBRARIES}
                      ${KDCRAW_LIBRARIES}
                      ${QT_QTSQL_LIBRARY}
                      ${QT_QT3SUPPORT_LIBRARY}
                      ${STRIGI_LIBRARIES}
                      ${LCMS_LIBRARIES}
                      ${GPHOTO2_LIBRARIES}
                      digikamcore
                      digikamdatabase
                     )

IF(KDEPIMLIBS_FOUND)
  TARGET_LINK_LIBRARIES(digikam ${KDE4_KABC_LIBS})
ENDIF(KDEPIMLIBS_FOUND)

IF(MARBLEWIDGET_FOUND)
  TARGET_LINK_LIBRARIES(digikam ${LIBMARBLEWIDGET_LIBRARY})
ENDIF(MARBLEWIDGET_FOUND)

INSTALL(TARGETS digikam ${INSTALL_TARGETS_DEFAULT_ARGS})


# Others Files to install #######################################################

INSTALL(FILES digikam.desktop DESTINATION ${XDG_APPS_INSTALL_DIR})
INSTALL(FILES digikamui.rc DESTINATION ${DATA_INSTALL_DIR}/digikam)
INSTALL(FILES digikam.notifyrc DESTINATION ${DATA_INSTALL_DIR}/digikam)
INSTALL(FILES digikam_export.h DESTINATION ${INCLUDE_INSTALL_DIR} COMPONENT Devel)
