find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Widgets OpenGL Quick QuickWidgets QUIET)

if (Qt${QT_VERSION_MAJOR}Widgets_FOUND)
  project(fei_inventor_QtViewerComponents)

  #Ask CMake to automoc needed includes
  set(CMAKE_AUTOMOC ON)
  set(CMAKE_INCLUDE_CURRENT_DIR ON)

  qt_add_resources( ${PROJECT_NAME}_ico  Viewers/icons.qrc )
  qt_wrap_ui( ${PROJECT_NAME}_headers Viewers/ViewerExaminer.ui Viewers/PreferencesDialog.ui )

  if(MSVC)
   add_definitions(-DQtViewerComponents_EXPORTS)
  endif(MSVC)

  set(source_files
    RenderAreaOrbiter.cxx
    RenderAreaExaminer.cxx
    RenderAreaInteractive.cxx
    RenderArea.cxx
    QtTimer.cxx
    QtEventToSoEvent.cxx
  )

  set(source_viewers_files
    Viewers/ViewerExaminer.cxx
    Viewers/PreferencesDialog.cxx
    Viewers/PreferencesDialog.h
  )

  set(source_qml_files
    QML/RenderArea.cxx
    QML/RenderAreaInteractive.cxx
    QML/RenderAreaOrbiter.cxx
  )

  set(header_files
    ../../../../include/Inventor/ViewerComponents/Qt/QtEventToSoEvent.h
    ../../../../include/Inventor/ViewerComponents/Qt/QEventToSoEvent.h
    ../../../../include/Inventor/ViewerComponents/Qt/QtTimer.h
    ../../../../include/Inventor/ViewerComponents/Qt/QtHelper.h
    ../../../../include/Inventor/ViewerComponents/Qt/RenderArea.h
    ../../../../include/Inventor/ViewerComponents/Qt/RenderAreaExaminer.h
    ../../../../include/Inventor/ViewerComponents/Qt/RenderAreaOrbiter.h
    ../../../../include/Inventor/ViewerComponents/Qt/RenderAreaInteractive.h
  )

  set(header_qml_files
    ../../../../include/Inventor/ViewerComponents/Qt/QML/RenderArea.h
    ../../../../include/Inventor/ViewerComponents/Qt/QML/RenderAreaInteractive.h
    ../../../../include/Inventor/ViewerComponents/Qt/QML/RenderAreaOrbiter.h
  )

  set(resource_files resource/Version.rc)
  
  create_vcproj_hierarchy("Resource Files" FILES ${resource_files})
  
  set(header_viewers_files
    ../../../../include/Inventor/ViewerComponents/Qt/Viewers/ViewerExaminer.h
  )

  add_oiv_library(${PROJECT_NAME} SHARED
              ${source_files}
              ${source_viewers_files}
              ${source_qml_files}
              ${header_files}
              ${header_viewers_files}
              ${header_qml_files}
              ${resource_files}
              ${MOC_RENDERAREA_SOURCES}
              ${${PROJECT_NAME}_ico}
              ${${PROJECT_NAME}_headers} )
  target_link_libraries(${PROJECT_NAME} fei_inventor_ViewerComponents ${OpenInventor_LIBRARIES} Qt::Widgets Qt::OpenGL Qt::Quick Qt::QuickWidgets)
  if (${QT_VERSION_MAJOR} EQUAL 6)
    qt_allow_non_utf8_sources(${PROJECT_NAME})
    qt_disable_unicode_defines(${PROJECT_NAME})
  endif()

  source_group("Source Files/Viewers" FILES ${source_viewers_files})
  source_group("Header Files/Viewers" FILES ${header_viewers_files} ${${PROJECT_NAME}_headers})
  source_group("Resources Files/Viewers" FILES ${resource_viewers_files})
  source_group("Header Files/QML" FILES ${header_qml_files})
  source_group("Source Files/QML" FILES ${source_qml_files})

endif()
