PROJECT(IDX)

INCLUDE(${VISIT_SOURCE_DIR}/CMake/PluginMacros.cmake)

SET(COMMON_SOURCES
IDXPluginInfo.C
IDXCommonPluginInfo.C
pidx_idx_io.cpp
)

# Visus to remove
IF(USE_VISUS_IDX)
SET(COMMON_SOURCES
IDXPluginInfo.C
IDXCommonPluginInfo.C
visus_idx_io.cpp
pidx_idx_io.cpp
)
ENDIF(USE_VISUS_IDX)

SET(LIBI_SOURCES 
IDXPluginInfo.C
)

SET(LIBM_SOURCES
IDXMDServerPluginInfo.C
${COMMON_SOURCES}
avtIDXFileFormat.C
avtIDXOptions.C
)

SET(LIBE_SOURCES
IDXEnginePluginInfo.C
${COMMON_SOURCES}
avtIDXFileFormat.C
avtIDXOptions.C
)

INCLUDE_DIRECTORIES(
${CMAKE_CURRENT_SOURCE_DIR}
# ${VISUS_INCLUDE_DIR} // Visus to remove
${PIDX_INCLUDE_DIR}
${VISIT_INCLUDE_DIR}/avt/View
${VISIT_COMMON_INCLUDES}
${VISIT_INCLUDE_DIR}/avt/DBAtts/MetaData
${VISIT_INCLUDE_DIR}/avt/DBAtts/SIL
${VISIT_INCLUDE_DIR}/avt/Database/Database
${VISIT_INCLUDE_DIR}/avt/Database/Formats
${VISIT_INCLUDE_DIR}/avt/Database/Ghost
${VISIT_INCLUDE_DIR}/avt/FileWriter
${VISIT_INCLUDE_DIR}/avt/Filters
${VISIT_INCLUDE_DIR}/avt/MIR/Base
${VISIT_INCLUDE_DIR}/avt/MIR/Tet
${VISIT_INCLUDE_DIR}/avt/MIR/Zoo
${VISIT_INCLUDE_DIR}/avt/Math
${VISIT_INCLUDE_DIR}/avt/Pipeline/AbstractFilters
${VISIT_INCLUDE_DIR}/avt/Pipeline/Data
${VISIT_INCLUDE_DIR}/avt/Pipeline/Pipeline
${VISIT_INCLUDE_DIR}/avt/Pipeline/Sinks
${VISIT_INCLUDE_DIR}/avt/Pipeline/Sources
${VISIT_INCLUDE_DIR}/avt/VisWindow/VisWindow
${VISIT_INCLUDE_DIR}/visit_vtk/full
${VISIT_INCLUDE_DIR}/visit_vtk/lightweight
${EAVL_INCLUDE_DIR} 
${VTK_INCLUDE_DIRS} 
)


LINK_DIRECTORIES(${VISIT_LIBRARY_DIR} ${EAVL_LIBRARY_DIR} ${VTK_LIBRARY_DIRS} ${PIDX_LIBRARY_DIR})

ADD_LIBRARY(IIDXDatabase ${LIBI_SOURCES})
TARGET_LINK_LIBRARIES(IIDXDatabase visitcommon)
SET(INSTALLTARGETS IIDXDatabase)

IF(NOT VISIT_ENGINE_ONLY AND NOT VISIT_DBIO_ONLY)
    ADD_LIBRARY(MIDXDatabase ${LIBM_SOURCES}    )
    TARGET_LINK_LIBRARIES(MIDXDatabase visitcommon avtdbatts avtdatabase_ser avtview ${PIDX_LIBRARIES} vtkIOXML)
    ADD_TARGET_DEFINITIONS(MIDXDatabase MDSERVER)
    SET(INSTALLTARGETS ${INSTALLTARGETS} MIDXDatabase)
ENDIF(NOT VISIT_ENGINE_ONLY AND NOT VISIT_DBIO_ONLY)

ADD_LIBRARY(EIDXDatabase_ser ${LIBE_SOURCES})
TARGET_LINK_LIBRARIES(EIDXDatabase_ser visitcommon avtdatabase_ser avtpipeline_ser avtview ${PIDX_LIBRARIES} vtkIOXML)
ADD_TARGET_DEFINITIONS(EIDXDatabase_ser ENGINE)
SET(INSTALLTARGETS ${INSTALLTARGETS} EIDXDatabase_ser)

IF(VISIT_PARALLEL)
    ADD_PARALLEL_LIBRARY(EIDXDatabase_par ${LIBE_SOURCES})
    TARGET_LINK_LIBRARIES(EIDXDatabase_par visitcommon avtdatabase_par avtpipeline_par avtview ${PIDX_LIBRARIES} vtkIOXML)
    ADD_TARGET_DEFINITIONS(EIDXDatabase_par ENGINE)
    SET(INSTALLTARGETS ${INSTALLTARGETS} EIDXDatabase_par)
ENDIF(VISIT_PARALLEL)

VISIT_INSTALL_DATABASE_PLUGINS(${INSTALLTARGETS})
VISIT_PLUGIN_TARGET_RTOD(databases ${INSTALLTARGETS})
VISIT_PLUGIN_TARGET_FOLDER(databases IDX ${INSTALLTARGETS})


## VISUS to remove
IF(USE_VISUS_IDX)
LINK_DIRECTORIES(${VISIT_LIBRARY_DIR} ${EAVL_LIBRARY_DIR} ${VTK_LIBRARY_DIRS} ${VISUS_LIBRARY_DIR} ${PIDX_LIBRARY_DIR})

ADD_LIBRARY(IIDXDatabase ${LIBI_SOURCES})
TARGET_LINK_LIBRARIES(IIDXDatabase visitcommon)
SET(INSTALLTARGETS IIDXDatabase)

IF(NOT VISIT_ENGINE_ONLY AND NOT VISIT_DBIO_ONLY)
    ADD_LIBRARY(MIDXDatabase ${LIBM_SOURCES}    )
    TARGET_LINK_LIBRARIES(MIDXDatabase visitcommon avtdbatts avtdatabase_ser avtview ${VISUS_LIBRARIES} ${PIDX_LIBRARIES} vtkIOXML)
    ADD_TARGET_DEFINITIONS(MIDXDatabase MDSERVER)
    SET(INSTALLTARGETS ${INSTALLTARGETS} MIDXDatabase)
ENDIF(NOT VISIT_ENGINE_ONLY AND NOT VISIT_DBIO_ONLY)

ADD_LIBRARY(EIDXDatabase_ser ${LIBE_SOURCES})
TARGET_LINK_LIBRARIES(EIDXDatabase_ser visitcommon avtdatabase_ser avtpipeline_ser avtview ${VISUS_LIBRARIES} ${PIDX_LIBRARIES} vtkIOXML)
ADD_TARGET_DEFINITIONS(EIDXDatabase_ser ENGINE)
SET(INSTALLTARGETS ${INSTALLTARGETS} EIDXDatabase_ser)

IF(VISIT_PARALLEL)
    ADD_PARALLEL_LIBRARY(EIDXDatabase_par ${LIBE_SOURCES})
    TARGET_LINK_LIBRARIES(EIDXDatabase_par visitcommon avtdatabase_par avtpipeline_par avtview ${VISUS_LIBRARIES} ${PIDX_LIBRARIES} vtkIOXML)
    ADD_TARGET_DEFINITIONS(EIDXDatabase_par ENGINE)
    SET(INSTALLTARGETS ${INSTALLTARGETS} EIDXDatabase_par)
ENDIF(VISIT_PARALLEL)

VISIT_INSTALL_DATABASE_PLUGINS(${INSTALLTARGETS})
VISIT_PLUGIN_TARGET_RTOD(databases ${INSTALLTARGETS})
VISIT_PLUGIN_TARGET_FOLDER(databases IDX ${INSTALLTARGETS})
ENDIF(USE_VISUS_IDX)

