# More components are needed to read the mesh file and write the output file.
list(APPEND ARBORX_TRILINOS_COMPONENT_LIST "STKIO;STKMesh;SEACASExodus")
foreach(component ${ARBORX_TRILINOS_COMPONENT_LIST})
  target_link_libraries(ArborX INTERFACE ${component}::all_libs)
endforeach()

set(mesh_file "mesh.exo")
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${mesh_file} ${CMAKE_CURRENT_BINARY_DIR}/${mesh_file} COPYONLY)

set(ARBORX_BENCHMARK_UTILS_INCLUDE_DIR ${PROJECT_SOURCE_DIR}/benchmarks/utils)

add_executable(ArborX_Example_Wall_Distance.exe example_wall_distance.cpp helpers.cpp)
target_include_directories(ArborX_Example_Wall_Distance.exe PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} ${ARBORX_BENCHMARK_UTILS_INCLUDE_DIR})
target_link_libraries(ArborX_Example_Wall_Distance.exe ArborX::ArborX Boost::program_options)
add_test(NAME ArborX_Example_Wall_Distance_Nodal COMMAND ${MPIEXEC_EXECUTABLE} ${MPIEXEC_NUMPROC_FLAG} ${MPIEXEC_MAX_NUMPROCS} ${MPIEXEC_PREFLAGS} $<TARGET_FILE:ArborX_Example_Wall_Distance.exe> ${MPIEXEC_POSTFLAGS} --filename mesh.exo --wall-names left quad-wall             --output-filename output_nodal.exo)
set_tests_properties(ArborX_Example_Wall_Distance_Nodal PROPERTIES ENVIRONMENT "IOSS_PROPERTIES=DECOMPOSITION_METHOD=RIB")
add_test(NAME ArborX_Example_Wall_Distance_IR    COMMAND ${MPIEXEC_EXECUTABLE} ${MPIEXEC_NUMPROC_FLAG} ${MPIEXEC_MAX_NUMPROCS} ${MPIEXEC_PREFLAGS} $<TARGET_FILE:ArborX_Example_Wall_Distance.exe> ${MPIEXEC_POSTFLAGS} --filename mesh.exo --wall-names left quad-wall --type cell --output-filename output_ir.exo)
set_tests_properties(ArborX_Example_Wall_Distance_IR PROPERTIES ENVIRONMENT "IOSS_PROPERTIES=DECOMPOSITION_METHOD=RIB")
