set(srcs
  Array.cxx
  CellSet.cxx
  CoordinateSystem.cxx
  DataModel.cxx
  DataSetReader.cxx
  DataSource.cxx
  Field.cxx
  Keys.cxx
  MetaData.cxx
  Value.cxx
)

set(headers
  ADISTypes.h
  Array.h
  CellSet.h
  CoordinateSystem.h
  DataModel.h
  DataSetReader.h
  DataSource.h
  Field.h
  Keys.h
  MetaData.h
  Value.h
)

include(${ADIS_SOURCE_DIR}/cmake/adis_generate_export_header.cmake)
add_library(adis ${srcs})

adis_generate_export_header(adis)

target_compile_definitions(adis PRIVATE ${MPI_DEFS})
target_link_libraries(adis PUBLIC vtkm_cont adios2::adios2 PRIVATE
  adis_rapidjson)

target_include_directories(adis PUBLIC
  $<BUILD_INTERFACE:${ADIS_SOURCE_DIR}>
  $<BUILD_INTERFACE:${ADIS_BINARY_DIR}/adis>
  $<INSTALL_INTERFACE:include>
  )

add_subdirectory(xgc)
add_subdirectory(predefined)

#-------------------------------------------------------------------------------
# generate the config file that includes the exports
include(CMakePackageConfigHelpers)
configure_package_config_file(${ADIS_SOURCE_DIR}/cmake/Config.cmake.in
  "${ADIS_BINARY_DIR}/ADISConfig.cmake"
  INSTALL_DESTINATION lib/cmake/adis
  NO_SET_AND_CHECK_MACRO
  NO_CHECK_REQUIRED_COMPONENTS_MACRO
  )

install(FILES "${ADIS_BINARY_DIR}/ADISConfig.cmake" DESTINATION lib/cmake/adis)

install(TARGETS adis DESTINATION lib
  EXPORT ${ADIS_EXPORT_NAME})

install(EXPORT ${ADIS_EXPORT_NAME} FILE ADISTargets.cmake DESTINATION lib/cmake/adis)

export(EXPORT ${ADIS_EXPORT_NAME}
  FILE ADISTargets.cmake
  )

install(FILES ${headers} ${CMAKE_CURRENT_BINARY_DIR}/adis_export.h
  DESTINATION ${ADIS_INSTALL_INCLUDE_DIR})
