# ------------------- Source files --------------------

set(checkpointing_SOURCES)

list(APPEND checkpointing_SOURCES
  Checkpoint.cpp
  PrintCheckpointInfo.cpp
  PrintScriptFrom.cpp
  Resume.cpp
  ResumingManager.cpp
  ResumingUtils.cpp
  SetResumeFrom.cpp
)

if(PUGS_HAS_HDF5)
  list(APPEND checkpointing_SOURCES
    ReadDiscreteFunctionVariant.cpp
    ReadIBoundaryConditionDescriptor.cpp
    ReadIBoundaryDescriptor.cpp
    ReadIDiscreteFunctionDescriptor.cpp
    ReadIInterfaceDescriptor.cpp
    ReadINamedDiscreteData.cpp
    ReadIQuadratureDescriptor.cpp
    ReadItemArrayVariant.cpp
    ReadItemType.cpp
    ReadItemValueVariant.cpp
    ReadIWriter.cpp
    ReadIZoneDescriptor.cpp
    ReadMesh.cpp
    ReadOStream.cpp
    ReadSubItemArrayPerItemVariant.cpp
    ReadSubItemValuePerItemVariant.cpp
    ReadVariableBCDescriptor.cpp
    ResumingData.cpp
    WriteConnectivity.cpp
    WriteDiscreteFunctionVariant.cpp
    WriteIBoundaryConditionDescriptor.cpp
    WriteIBoundaryDescriptor.cpp
    WriteIDiscreteFunctionDescriptor.cpp
    WriteIInterfaceDescriptor.cpp
    WriteItemArrayVariant.cpp
    WriteItemType.cpp
    WriteItemValueVariant.cpp
    WriteIQuadratureDescriptor.cpp
    WriteINamedDiscreteData.cpp
    WriteIWriter.cpp
    WriteIZoneDescriptor.cpp
    WriteMesh.cpp
    WriteOStream.cpp
    WriteSubItemArrayPerItemVariant.cpp
    WriteSubItemValuePerItemVariant.cpp
    WriteVariableBCDescriptor.cpp
  )
endif(PUGS_HAS_HDF5)

add_library(
  PugsCheckpointing
  ${checkpointing_SOURCES}
)

# Additional dependencies
add_dependencies(PugsCheckpointing
  PugsLanguageAST
  PugsUtils)

target_link_libraries(
  PugsCheckpointing
  ${HIGHFIVE_TARGET}
)
