CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/libqsane_version.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/libqsane_version.h)
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/config.h.in ${CMAKE_CURRENT_BINARY_DIR}/config.h)

set(CMAKE_AUTOMOC ON)

INCLUDE_DIRECTORIES(${SANE_INCLUDE_DIR}
    ${CMAKE_CURRENT_SOURCE_DIR}/options
    ${CMAKE_CURRENT_SOURCE_DIR}/widgets
)

SET(qsane_LIB_SRCS previewimagechunkupdater.cpp
    previewimageupdater.cpp
    widgets/slider.cpp
    widgets/fslider.cpp
    widgets/textentry.cpp
    widgets/gamma_disp.cpp
    widgets/labeled_gamma.cpp
    widgets/labeled_separator.cpp
    widgets/labeled_slider.cpp
    selectionitem.cpp
    sane_viewer.cpp
    sane_device_dialog.cpp
    sane_device_info.cpp
    sane_find_devices_thread.cpp
    sane_widget.cpp
    sane_scan_thread.cpp
    sane_preview_thread.cpp
    sane_widget_private.cpp
    sane_password_dialog.cpp
    sane_options_widget.cpp
    sane_options_widget_private.cpp
    sane_image_data.cpp
    sane_auth.cpp
    sane_i18n.cpp
    splittercollapser.cpp
    options/sane_option.cpp
    options/sane_opt_button.cpp
    options/sane_opt_checkbox.cpp
    options/sane_opt_entry.cpp
    options/sane_opt_gamma.cpp
    options/sane_opt_slider.cpp
    options/sane_opt_fslider.cpp
    options/sane_opt_combo.cpp
    )


SET(TRANSLATIONS i18n/libqsane_ru.ts)
SET(FILES_TO_TRANSLATE ${qsane_LIB_SRCS})

IF( UPDATE_TRANSLATIONS )
  QT5_CREATE_TRANSLATION( QM_FILES ${FILES_TO_TRANSLATE} ${TRANSLATIONS} )
ELSE( UPDATE_TRANSLATIONS )
  QT5_ADD_TRANSLATION( QM_FILES ${TRANSLATIONS} )
ENDIF( UPDATE_TRANSLATIONS )

ADD_CUSTOM_TARGET( translations_target DEPENDS ${QM_FILES} )

INSTALL(FILES ${QM_FILES} DESTINATION ${I18N_INSTALL_DIR})

ADD_LIBRARY(qsane SHARED ${qsane_LIB_SRCS} ${QM_FILES})

TARGET_LINK_LIBRARIES(qsane Qt5::Widgets ${SANE_LIBRARY})

SET_TARGET_PROPERTIES(qsane PROPERTIES VERSION ${QSANE_LIB_SO_VERSION_STRING} SOVERSION ${QSANE_LIB_SO_CUR_VERSION} DEFINE_SYMBOL MAKE_QSANE_LIB)

if ("$ENV{COMPILE_VIEWER_TESTAPP}" STREQUAL "YES")
    message("Compile testapp")
    add_executable(viewer_test sane_viewer.cpp sane_viewer_test.cpp selectionitem.cpp)
    target_link_libraries(viewer_test ${QT4_LIBS})
endif()

install(TARGETS qsane LIBRARY DESTINATION ${LIB_INSTALL_DIR} )

INSTALL(FILES sane_device_dialog.h
              sane_device_info.h
              sane_widget.h
              sane_options_widget.h
              sane_viewer.h
              sane_image_data.h
              libqsane_export.h
              ${CMAKE_CURRENT_BINARY_DIR}/libqsane_version.h
        DESTINATION ${INCLUDE_INSTALL_DIR} COMPONENT Devel)

FILE(GLOB qsane_ICONS icons/*.png)

INSTALL(FILES ${qsane_ICONS} DESTINATION ${ICONS_INSTALL_DIR})
