# ---------------------------------------------------------------
# Programmer(s):  Daniel R. Reynolds @ SMU
# ---------------------------------------------------------------
# SUNDIALS Copyright Start
# Copyright (c) 2002-2024, Lawrence Livermore National Security
# and Southern Methodist University.
# All rights reserved.
#
# See the top-level LICENSE and NOTICE files for details.
#
# SPDX-License-Identifier: BSD-3-Clause
# SUNDIALS Copyright End
# ---------------------------------------------------------------

# Add the build targets for each backend
if(BUILD_ARKODE
   AND BUILD_CVODE
   AND BUILD_IDA)
  foreach(backend ${KOKKOS_EXAMPLES_BACKENDS})

    # set benchmark target name
    set(benchmark_target "advection_reaction_3D_kokkos.${backend}")

    # benchmark source files
    add_executable(
      ${benchmark_target}
      advection_reaction_3D.cpp
      arkode_driver.cpp
      cvode_driver.cpp
      ida_driver.cpp
      rhs3D.hpp
      ParallelGrid.hpp
      check_retval.h)

    # which backend to use
    target_compile_definitions(${benchmark_target} PRIVATE USE_${backend})

    # directories to include
    target_include_directories(
      ${benchmark_target} PRIVATE ${PROJECT_SOURCE_DIR}/utilities
                                  ${MPI_CXX_INCLUDE_DIRS})

    # libraries to link against
    target_link_libraries(
      ${benchmark_target}
      PRIVATE sundials_arkode
              sundials_cvode
              sundials_ida
              sundials_nvecmpiplusx
              sundials_nveckokkos
              ${MPI_CXX_LIBRARIES}
              ${EXE_EXTRA_LINK_LIBS})

    install(
      TARGETS ${benchmark_target}
      DESTINATION "${BENCHMARKS_INSTALL_PATH}/advection_reaction_3D/kokkos")

    install(
      FILES README.md ../scripts/compare_error.py ../scripts/compute_error.py
            ../scripts/pickle_solution_output.py
      DESTINATION "${BENCHMARKS_INSTALL_PATH}/advection_reaction_3D/kokkos")

  endforeach()
endif()
