find_package(Eigen3 REQUIRED)
# Add as "system headers" to avoid warnings generated by them with
# compilers that support that notion.
include_directories(SYSTEM ${EIGEN3_INCLUDE_DIR})
find_package(OpenGL REQUIRED)
find_package(GLEW REQUIRED)
include_directories(SYSTEM ${OPENGL_INCLUDE_DIR} ${GLEW_INCLUDE_DIRS})
if(WIN32 AND NOT BUILD_SHARED_LIBS)
  add_definitions(-DGLEW_STATIC)
endif()

find_package(Qt5 COMPONENTS Widgets REQUIRED)

find_package(VTK
  COMPONENTS
    RenderingOpenGL2 GUISupportQt DomainsChemistry
    RenderingVolumeOpenGL2 ViewsCore RenderingFreeType
    ChartsCore ViewsContext2D RenderingContextOpenGL2
  REQUIRED)

set(HEADERS
  vtkAvogadroActor.h
  vtkglwidget.h
  vtkplot.h
)

set(SOURCES
  vtkAvogadroActor.cxx
  vtkglwidget.cpp
  vtkplot.cpp
)

avogadro_add_library(AvogadroVtk ${HEADERS} ${SOURCES})
set_target_properties(AvogadroVtk PROPERTIES AUTOMOC TRUE)
target_link_libraries(AvogadroVtk AvogadroRendering AvogadroQtGui
  VTK::RenderingOpenGL2 VTK::GUISupportQt VTK::RenderingVolumeOpenGL2
  VTK::RenderingFreeType VTK::InteractionStyle VTK::ChartsCore VTK::ViewsContext2D
  VTK::RenderingContextOpenGL2 VTK::DomainsChemistryOpenGL2 Qt5::Widgets)
