#-----------------------------------------------------------------------------
# OpenFOAM reader plugin for ParaView GUI (pre-5.7)

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}/../common
    ${PROJECT_SOURCE_DIR}/library
    ${PROJECT_SOURCE_DIR}/plugin
    ${PROJECT_SOURCE_DIR}/plugin/reader
)

set(OPENFOAM_LIBNAMES
    OpenFOAM
    fileFormats
    conversion
    finiteArea
    finiteVolume
)

# 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."
)


qt5_wrap_cpp(MOC_SRCS plugin/pqFoamReaderControls.h)

add_paraview_property_group_widget(IFACES0 IFACES0_SRCS
    TYPE "openfoam_reader_general_controls"
    CLASS_NAME pqFoamReaderControls
)

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

target_link_libraries(
    PVFoamReader_SM
    LINK_PUBLIC
    vtkPVFoamCommon${foamPvLibQualifier}
    vtkPVFoam${foamPvLibQualifier}
    ${OPENFOAM_LIBNAMES}
)

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