#-----------------------------------------------------------------------------
# OpenFOAM blockMeshDict 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}/meshing/blockMesh/lnInclude
    ${PROJECT_SOURCE_DIR}/../foamPv
    ${PROJECT_SOURCE_DIR}/../vtkPVblockMesh
)

set(OPENFOAM_LIBRARIES
    OpenFOAM
    blockMesh
)

# 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 pqFoamBlockMeshControls.h)
else()
  qt4_wrap_cpp(MOC_SRCS pqFoamBlockMeshControls.h)
endif()

add_paraview_property_group_widget(IFACES0 IFACES0_SRCS
    TYPE "openfoam_blockMesh_general_controls"
    CLASS_NAME pqFoamBlockMeshControls
)

add_paraview_plugin(
    PVblockMeshReader_SM "1.0"
    SERVER_MANAGER_XML PVblockMeshReader_SM.xml
    SERVER_MANAGER_SOURCES  vtkPVblockMeshReader.cxx
    GUI_INTERFACES
        ${IFACES0}
    SOURCES
        ${IFACES0_SRCS}
        ${MOC_SRCS}
        pqFoamBlockMeshControls.cxx
)


target_link_libraries(
    PVblockMeshReader_SM
    LINK_PUBLIC
    vtkPVblockMesh-pv${PARAVIEW_VERSION_MAJOR}.${PARAVIEW_VERSION_MINOR}
    foamPv-pv${PARAVIEW_VERSION_MAJOR}.${PARAVIEW_VERSION_MINOR}
    ${OPENFOAM_LIBRARIES}
)

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