INCLUDE(${ParaView_CMAKE_DIR}/ParaViewPlugins.cmake)

# PARAVIEW_PLUGINLIST is used to generate the config file distributed with
# ParaView that lists the plugins distributed with ParaView.
SET (BUILD_PARAVIEW_PLUGINLIST ON)

MACRO(paraview_build_optional_plugin name comment subdirectory default)
  OPTION(PARAVIEW_BUILD_PLUGIN_${name} "Build ${comment}" ${default})
  MARK_AS_ADVANCED(PARAVIEW_BUILD_PLUGIN_${name})
  IF(PARAVIEW_BUILD_PLUGIN_${name})
    MESSAGE(STATUS "Plugin: ${comment} enabled")
    ADD_SUBDIRECTORY("${subdirectory}")
  ELSE(PARAVIEW_BUILD_PLUGIN_${name})
    MESSAGE(STATUS "Plugin: ${comment} disabled")
  ENDIF(PARAVIEW_BUILD_PLUGIN_${name})
ENDMACRO(paraview_build_optional_plugin)

#paraview_build_optional_plugin(Array "Array" Array OFF)
#paraview_build_optional_plugin(ChartViewFrame "ChartViewFrame" ChartViewFrame OFF)
#paraview_build_optional_plugin(ClientChartView "ClientChartView" ClientChartView OFF)
#paraview_build_optional_plugin(ClientGeoView "ClientGeoView" ClientGeoView OFF)
#paraview_build_optional_plugin(ClientGeoView2D "ClientGeoView2D" ClientGeoView2D OFF)
#paraview_build_optional_plugin(ClientGraphView "ClientGraphView" ClientGraphView OFF)
#paraview_build_optional_plugin(ClientRecordView "ClientRecordView" ClientRecordView OFF)
#paraview_build_optional_plugin(ClientRichTextView "ClientRichTextView" ClientRichTextView OFF)
#paraview_build_optional_plugin(ClientTableView "ClientTableView" ClientTableView OFF)
#paraview_build_optional_plugin(ClientTreeView "ClientTreeView" ClientTreeView OFF)
#paraview_build_optional_plugin(CommonToolbar "CommonToolbar" CommonToolbar OFF)
#paraview_build_optional_plugin(CosmoFilters "Cosmology Filters" CosmoFilters ON)
#paraview_build_optional_plugin(GraphLayoutFilterPanel "GraphLayoutFilterPanel" GraphLayoutFilterPanel OFF)
#paraview_build_optional_plugin(Infovis "Infovis" Infovis OFF)
paraview_build_optional_plugin(Manta "Manta ray traced rendering" Manta OFF)
paraview_build_optional_plugin(Moments "Filters for Flux and Circulation Fields" Moments ON)
paraview_build_optional_plugin(NetDMFReader "NetDMF file format reader" NetDMFReader OFF)
paraview_build_optional_plugin(Prism "Prism" PrismPlugins ON)
paraview_build_optional_plugin(PointSprite "Point Sprites" PointSprite ON) 
IF(PARAVIEW_ENABLE_PYTHON)
  paraview_build_optional_plugin(pvblot "pvblot" pvblot ON)
ENDIF(PARAVIEW_ENABLE_PYTHON)
paraview_build_optional_plugin(SierraPlotTools "SierraPlotTools" SierraPlotTools ON)
paraview_build_optional_plugin(SLACTools "SLACTools" SLACTools ON)
#paraview_build_optional_plugin(SQLDatabaseGraphSourcePanel "SQLDatabaseGraphSourcePanel" SQLDatabaseGraphSourcePanel OFF) 
#paraview_build_optional_plugin(SQLDatabaseTableSourcePanel "SQLDatabaseTableSourcePanel" SQLDatabaseTableSourcePanel OFF) 
#paraview_build_optional_plugin(SplitTableFieldPanel "SplitTableFieldPanel" SplitTableFieldPanel OFF) 
#paraview_build_optional_plugin(StatisticsToolbar "StatisticsToolbar" StatisticsToolbar OFF) 
# Surface LIC needs major work to function correctly on Apple
IF(NOT APPLE)
  paraview_build_optional_plugin( SurfaceLIC "SurfaceLIC" SurfaceLIC ON )
ENDIF(NOT APPLE)
#paraview_build_optional_plugin(TableToGraphPanel "TableToGraphPanel" TableToGraphPanel OFF) 
#paraview_build_optional_plugin(TableToSparseArrayPanel "TableToSparseArrayPanel" TableToSparseArrayPanel OFF) 
#paraview_build_optional_plugin(ThresholdTablePanel "ThresholdTablePanel" ThresholdTablePanel OFF) 
#paraview_build_optional_plugin(ClientGraphViewFrame "ClientGraphViewFrame" ClientGraphViewFrame OFF) 
#paraview_build_optional_plugin(ClientTreeAreaView "ClientTreeAreaView" ClientTreeAreaView OFF) 
paraview_build_optional_plugin(VisItReaderPlugin "VisItReaderPlugin" VisItDatabaseBridge OFF) 
paraview_build_optional_plugin(H5PartReader "Reader for *.h5part files" H5PartReader ON)
IF(PARAVIEW_BUILD_QT_GUI)
  paraview_build_optional_plugin(CoProcessingScriptGenerator "Plugin for creating python coprocessing scripts" CoProcessingScriptGenerator OFF)
ENDIF(PARAVIEW_BUILD_QT_GUI)
paraview_build_optional_plugin(AnalyzeNIfTIReaderWriter "Reader/Writer for Analyze and NIfTI." AnalyzeNIfTIReaderWriter ON)

# We do not include VisTrails source in our repo for Licensing reasons. If the directory is manually copied into Plugins, build it.
IF(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/VisTrails/CMakeLists.txt)
  paraview_build_optional_plugin(VisTrailsPlugin "VisTrailsPlugin" VisTrails ON)
ENDIF(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/VisTrails/CMakeLists.txt)

