cmake_minimum_required(VERSION 3.9)
project(ADIS C CXX)

list(INSERT CMAKE_MODULE_PATH 0 "${PROJECT_SOURCE_DIR}/cmake")

find_package(RapidJSON REQUIRED)
find_package(ADIOS2 REQUIRED)
find_package(VTKm REQUIRED)

option(BUILD_SHARED_LIBS "Build adis with shared libraries" ON)
set(ADIS_BUILD_SHARED_LIBS ${BUILD_SHARED_LIBS})
option(ADIS_ENABLE_TESTING "Enable ADIS Testing" ON)

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

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

adis_generate_export_header(adis)

target_link_libraries(adis PUBLIC vtkm_cont PRIVATE
  RapidJSON::RapidJSON adios2::adios2)
target_include_directories(adis PUBLIC
  "$<BUILD_INTERFACE:${VTKm_INCLUDE_DIRS}>"
  $<BUILD_INTERFACE:${ADIS_SOURCE_DIR}>
  $<BUILD_INTERFACE:${ADIS_BINARY_DIR}>
  $<INSTALL_INTERFACE:${ADIS_INSTALL_INCLUDE_DIR}>
  )

if (ADIS_ENABLE_TESTING)
  enable_testing()
  include(CTest)
  add_subdirectory(tests)
endif()