#-----------------------------------------------------------------------------
# OpenFOAM reader plugin for ParaView GUI

link_directories(
    $ENV{FOAM_LIBBIN}
)

include_directories(
    ${LIB_SRC}/OpenFOAM/include
    ${LIB_SRC}/OpenFOAM/lnInclude
    ${LIB_SRC}/OSspecific/${WM_OSTYPE}/lnInclude
    ${LIB_SRC}/fileFormats/lnInclude
    ${LIB_SRC}/conversion/lnInclude
    ${LIB_SRC}/finiteArea/lnInclude
    ${LIB_SRC}/finiteVolume/lnInclude
    ${PROJECT_SOURCE_DIR}/../foamPv
    ${PROJECT_SOURCE_DIR}/../vtkPVFoam
)

set(OPENFOAM_LIBRARIES
    OpenFOAM
    finiteVolume
    finiteArea
    fileFormats
    conversion
)

# Set output library destination to plugin directory
set(
    LIBRARY_OUTPUT_PATH $ENV{FOAM_PV_PLUGIN_LIBBIN}
    CACHE INTERNAL
    "Single output directory for building all libraries."
)


if (PARAVIEW_QT_VERSION VERSION_GREATER "4")
  qt5_wrap_cpp(MOC_SRCS pqFoamReaderControls.h)
else()
  qt4_wrap_cpp(MOC_SRCS pqFoamReaderControls.h)
endif()

add_paraview_property_group_widget(IFACES0 IFACES0_SRCS
    TYPE "openfoam_reader_general_controls"
    CLASS_NAME pqFoamReaderControls
)

add_paraview_plugin(
    PVFoamReader_SM "1.0"
    SERVER_MANAGER_XML PVFoamReader_SM.xml
    SERVER_MANAGER_SOURCES vtkPVFoamReader.cxx
    GUI_INTERFACES
        ${IFACES0}
    SOURCES
        ${IFACES0_SRCS}
        ${MOC_SRCS}
        pqFoamReaderControls.cxx
)


target_link_libraries(
    PVFoamReader_SM
    LINK_PUBLIC
    vtkPVFoam-pv${PARAVIEW_VERSION_MAJOR}.${PARAVIEW_VERSION_MINOR}
    foamPv-pv${PARAVIEW_VERSION_MAJOR}.${PARAVIEW_VERSION_MINOR}
    ${OPENFOAM_LIBRARIES}
)

#-----------------------------------------------------------------------------
