# SPDX-FileCopyrightText: 2026 Oak Ridge National Laboratory and Contributors
#
# SPDX-License-Identifier: Apache-2.0

#------------------------------------------------------------------------------#
# Distributed under the OSI-approved Apache License, Version 2.0.  See
# accompanying file Copyright.txt for details.
#------------------------------------------------------------------------------#

cmake_minimum_required(VERSION 3.12)
project(ADIOS2PluginsOperatorExample)

set(maybe_standalone_project OFF)

if(NOT TARGET adios2_core)
  set(maybe_standalone_project ON)
  set(_components CXX)

  find_package(Sodium QUIET)

  find_package(ADIOS2 REQUIRED COMPONENTS ${_components})
endif()

if(ADIOS2_HAVE_Sodium)
  add_executable(adios2_plugins_exampleOperatorPluginWrite examplePluginOperatorWrite.cpp)
  target_link_libraries(adios2_plugins_exampleOperatorPluginWrite adios2::cxx)
  if (maybe_standalone_project)
    install(
      TARGETS adios2_plugins_exampleOperatorPluginWrite
      RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
    )
  endif()

  add_executable(adios2_plugins_exampleOperatorPluginRead examplePluginOperatorRead.cpp)
  target_link_libraries(adios2_plugins_exampleOperatorPluginRead adios2::cxx)
  if (maybe_standalone_project)
    install(
      TARGETS adios2_plugins_exampleOperatorPluginRead
      RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
    )
  endif()

  add_executable(adios2_plugins_exampleSealedOperatorWrite exampleSealedOperatorWrite.cpp)
  target_link_libraries(adios2_plugins_exampleSealedOperatorWrite adios2::cxx)
  if (maybe_standalone_project)
    install(
      TARGETS adios2_plugins_exampleSealedOperatorWrite
      RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
    )
  endif()

  add_executable(adios2_plugins_exampleSealedOperatorRead exampleSealedOperatorRead.cpp)
  target_link_libraries(adios2_plugins_exampleSealedOperatorRead adios2::cxx)
  if (maybe_standalone_project)
    install(
      TARGETS adios2_plugins_exampleSealedOperatorRead
      RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
    )
  endif()
endif()
