# Copyright (C) 1995-2019, Rene Brun and Fons Rademakers.
# All rights reserved.
#
# For the licensing terms see $ROOTSYS/LICENSE.
# For the list of contributors see $ROOTSYS/README/CREDITS.

############################################################################
# CMakeLists.txt file for building ROOT graf3d/eve package
############################################################################

set(EVE_HEADERS1
  TEveBrowser.h
  TEveChunkManager.h
  TEveCompound.h
  TEveElementEditor.h
  TEveElement.h
  TEveEventManager.h
  TEveGedEditor.h
  TEveGValuators.h
  TEveMacro.h
  TEveManager.h
  TEvePad.h
  TEveParamList.h
  TEvePathMark.h
  TEveProjectionAxes.h
  TEveProjectionAxesEditor.h
  TEveProjectionAxesGL.h
  TEveProjectionBases.h
  TEveProjectionManager.h
  TEveProjectionManagerEditor.h
  TEveProjections.h
  TEveScene.h
  TEveSceneInfo.h
  TEveSecondarySelectable.h
  TEveSelection.h
  TEveTrans.h
  TEveTransEditor.h
  TEveTreeTools.h
  TEveUtil.h
  TEveViewer.h
  TEveViewerListEditor.h
  TEveVSD.h
  TEveWindow.h
  TEveWindowEditor.h
  TEveWindowManager.h
)

set(EVE_HEADERS2
  TEveArrowEditor.h
  TEveArrowGL.h
  TEveArrow.h
  TEveBoxGL.h
  TEveBox.h
  TEveBoxSetGL.h
  TEveBoxSet.h
  TEveCalo2DGL.h
  TEveCalo3DGL.h
  TEveCaloData.h
  TEveCalo.h
  TEveCaloLegoEditor.h
  TEveCaloLegoGL.h
  TEveCaloLegoOverlay.h
  TEveCaloVizEditor.h
  TEveDigitSetEditor.h
  TEveDigitSetGL.h
  TEveDigitSet.h
  TEveFrameBoxGL.h
  TEveFrameBox.h
  TEveGeoNodeEditor.h
  TEveGeoNode.h
  TEveGeoPolyShape.h
  TEveGeoShapeExtract.h
  TEveGeoShape.h
  TEveGridStepperEditor.h
  TEveGridStepper.h
  TEveJetCone.h
  TEveJetConeEditor.h
  TEveJetConeGL.h
  TEveLegoEventHandler.h
  TEveLineEditor.h
  TEveLineGL.h
  TEveLine.h
  TEvePlot3D.h
  TEvePlot3DGL.h
  TEvePointSetArrayEditor.h
  TEvePointSet.h
  TEvePolygonSetProjected.h
  TEvePolygonSetProjectedGL.h
  TEveQuadSet.h
  TEveQuadSetGL.h
  TEveRGBAPalette.h
  TEveRGBAPaletteEditor.h
  TEveRGBAPaletteOverlay.h
  TEveScalableStraightLineSet.h
  TEveShape.h
  TEveShapeEditor.h
  TEveStraightLineSet.h
  TEveStraightLineSetEditor.h
  TEveStraightLineSetGL.h
  TEveText.h
  TEveTextEditor.h
  TEveTextGL.h
  TEveTrack.h
  TEveTrackEditor.h
  TEveTrackGL.h
  TEveTrackProjected.h
  TEveTrackProjectedGL.h
  TEveTrackPropagator.h
  TEveTrackPropagatorEditor.h
  TEveTriangleSet.h
  TEveTriangleSetEditor.h
  TEveTriangleSetGL.h
)

set(EVE_SOURCES
  src/TEveArrow.cxx
  src/TEveArrowEditor.cxx
  src/TEveArrowGL.cxx
  src/TEveBox.cxx
  src/TEveBoxGL.cxx
  src/TEveBoxSet.cxx
  src/TEveBoxSetGL.cxx
  src/TEveBrowser.cxx
  src/TEveCalo2DGL.cxx
  src/TEveCalo3DGL.cxx
  src/TEveCalo.cxx
  src/TEveCaloData.cxx
  src/TEveCaloLegoEditor.cxx
  src/TEveCaloLegoGL.cxx
  src/TEveCaloLegoOverlay.cxx
  src/TEveCaloVizEditor.cxx
  src/TEveChunkManager.cxx
  src/TEveCompound.cxx
  src/TEveDigitSet.cxx
  src/TEveDigitSetEditor.cxx
  src/TEveDigitSetGL.cxx
  src/TEveElement.cxx
  src/TEveElementEditor.cxx
  src/TEveEventManager.cxx
  src/TEveFrameBox.cxx
  src/TEveFrameBoxGL.cxx
  src/TEveGedEditor.cxx
  src/TEveGeoNode.cxx
  src/TEveGeoNodeEditor.cxx
  src/TEveGeoPolyShape.cxx
  src/TEveGeoShape.cxx
  src/TEveGeoShapeExtract.cxx
  src/TEveGridStepper.cxx
  src/TEveGridStepperEditor.cxx
  src/TEveGValuators.cxx
  src/TEveJetCone.cxx
  src/TEveJetConeEditor.cxx
  src/TEveJetConeGL.cxx
  src/TEveLegoEventHandler.cxx
  src/TEveLine.cxx
  src/TEveLineEditor.cxx
  src/TEveLineGL.cxx
  src/TEveMacro.cxx
  src/TEveManager.cxx
  src/TEvePad.cxx
  src/TEveParamList.cxx
  src/TEvePathMark.cxx
  src/TEvePlot3D.cxx
  src/TEvePlot3DGL.cxx
  src/TEvePointSetArrayEditor.cxx
  src/TEvePointSet.cxx
  src/TEvePolygonSetProjected.cxx
  src/TEvePolygonSetProjectedGL.cxx
  src/TEveProjectionAxes.cxx
  src/TEveProjectionAxesEditor.cxx
  src/TEveProjectionAxesGL.cxx
  src/TEveProjectionBases.cxx
  src/TEveProjectionManager.cxx
  src/TEveProjectionManagerEditor.cxx
  src/TEveProjections.cxx
  src/TEveQuadSet.cxx
  src/TEveQuadSetGL.cxx
  src/TEveRGBAPalette.cxx
  src/TEveRGBAPaletteEditor.cxx
  src/TEveRGBAPaletteOverlay.cxx
  src/TEveScalableStraightLineSet.cxx
  src/TEveScene.cxx
  src/TEveSceneInfo.cxx
  src/TEveSecondarySelectable.cxx
  src/TEveSelection.cxx
  src/TEveShape.cxx
  src/TEveShapeEditor.cxx
  src/TEveStraightLineSet.cxx
  src/TEveStraightLineSetEditor.cxx
  src/TEveStraightLineSetGL.cxx
  src/TEveText.cxx
  src/TEveTextEditor.cxx
  src/TEveTextGL.cxx
  src/TEveTrack.cxx
  src/TEveTrackEditor.cxx
  src/TEveTrackGL.cxx
  src/TEveTrackProjected.cxx
  src/TEveTrackProjectedGL.cxx
  src/TEveTrackPropagator.cxx
  src/TEveTrackPropagatorEditor.cxx
  src/TEveTrans.cxx
  src/TEveTransEditor.cxx
  src/TEveTreeTools.cxx
  src/TEveTriangleSet.cxx
  src/TEveTriangleSetEditor.cxx
  src/TEveTriangleSetGL.cxx
  src/TEveUtil.cxx
  src/TEveVector.cxx
  src/TEveViewer.cxx
  src/TEveViewerListEditor.cxx
  src/TEveVSD.cxx
  src/TEveVSDStructs.cxx
  src/TEveWindow.cxx
  src/TEveWindowEditor.cxx
  src/TEveWindowManager.cxx
)

if(MSVC)
  ROOT_STANDARD_LIBRARY_PACKAGE(Eve
    HEADERS
      ${EVE_HEADERS1}
    NO_INSTALL_HEADERS
    SOURCES
      ${EVE_SOURCES}
    LINKDEF
      LinkDef1.h
    LIBRARIES
      OpenGL::GL
      OpenGL::GLU
      ${FTGL_LIBRARIES}
      RGlew
    DEPENDENCIES
      Core
      EG
      Ged
      Geom
      RGL
      Physics
  )

  ROOT_GENERATE_DICTIONARY(G__Eve2
    ${EVE_HEADERS2}
    LINKDEF
      LinkDef2.h
    MODULE
      Eve
    MULTIDICT
  )

  ROOT_INSTALL_HEADERS()
else()
  if(MACOSX_GLU_DEPRECATED)
    add_definitions(-Wno-deprecated-declarations)
  endif()

  ROOT_STANDARD_LIBRARY_PACKAGE(Eve
    HEADERS
      ${EVE_HEADERS1}
      ${EVE_HEADERS2}
    SOURCES
      ${EVE_SOURCES}
    LIBRARIES
      OpenGL::GL
      OpenGL::GLU
      ${FTGL_LIBRARIES}
      RGlew
    DEPENDENCIES
      Core
      EG
      Ged
      Geom
      RGL
      Physics
  )
endif()

target_include_directories(Eve PRIVATE
  ${FTGL_INCLUDE_DIRS})
