# Copyright (c) 2026 The YAC Authors
#
# SPDX-License-Identifier: BSD-3-Clause

if(YAC_ENABLE_MCI)
  add_library(toy_multi_common OBJECT toy_multi_common.c)
  target_link_libraries(
    toy_multi_common PRIVATE MPI::MPI_C yac_mci yac_core yac_utils
  )

  add_executable(toy_multi_cube.x toy_multi_cube.c)
  target_link_libraries(toy_multi_cube.x yac_mci yac_utils toy_multi_common)

  add_executable(toy_multi_reg2d.x toy_multi_reg2d.c)
  target_link_libraries(toy_multi_reg2d.x yac_mci yac_utils toy_multi_common)

  add_executable(toy_multi_unstruct_2.x toy_multi_unstruct_2.c)
  target_link_libraries(
    toy_multi_unstruct_2.x yac_mci yac_utils toy_multi_common
  )

  add_executable(toy_multi_unstruct.x toy_multi_unstruct.c)
  target_link_libraries(toy_multi_unstruct.x yac_mci yac_utils toy_multi_common)
endif()

set(srcdir ${CMAKE_CURRENT_SOURCE_DIR})

configure_file(
  toy_multi.sh.in
  toy_multi.sh
  @ONLY
  FILE_PERMISSIONS
  OWNER_READ
  OWNER_WRITE
  OWNER_EXECUTE
  GROUP_READ
  GROUP_EXECUTE
  WORLD_READ
  WORLD_EXECUTE
)

add_test(NAME toy_multi COMMAND toy_multi.sh)
set_tests_properties(
  toy_multi
  PROPERTIES LABELS
             examples
             PROCESSORS
             16
             SKIP_RETURN_CODE
             77
             ENVIRONMENT
             "OMP_NUM_THREADS=2"
             DISABLED
             $<NOT:$<BOOL:${YAC_ENABLE_EXAMPLES_TESTS}>>
)
