# SPDX-FileCopyrightText: Copyright (c) 2023 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-License-Identifier: Apache-2.0
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

cmake_minimum_required(VERSION 3.20)
project(holoscan_examples)

# Finds the package holoscan
find_package(holoscan REQUIRED CONFIG
             PATHS "/opt/nvidia/holoscan" "/workspace/holoscan-sdk/install"
                   "/workspace/holoscan-sdk/install-x86_64"
                   "/workspace/holoscan-sdk/install-aarch64-dgpu"
                   "/workspace/holoscan-sdk/install-aarch64-igpu"
                   )

# Enable testing
include(CTest)

add_subdirectory(bring_your_own_model/python)
add_subdirectory(conditions/asynchronous/cpp)
add_subdirectory(conditions/expiring_message/cpp)
add_subdirectory(conditions/periodic/cpp)
add_subdirectory(flow_tracker/cpp)
add_subdirectory(hello_world/cpp)
add_subdirectory(holoviz/cpp)
add_subdirectory(holoviz/python)
add_subdirectory(import_gxf_components/cpp)
add_subdirectory(import_gxf_components/python)
add_subdirectory(multi_branch_pipeline/cpp)
add_subdirectory(multithread/cpp)
add_subdirectory(ping_any/cpp)
add_subdirectory(ping_conditional/cpp)
add_subdirectory(ping_custom_op/cpp)
add_subdirectory(ping_cycle/cpp)
add_subdirectory(ping_distributed/cpp)
add_subdirectory(ping_multi_port/cpp)
add_subdirectory(ping_simple/cpp)
add_subdirectory(ping_simple_run_async/cpp)
add_subdirectory(ping_vector/cpp)
add_subdirectory(resources/clock/cpp)
add_subdirectory(resources/native/cpp)
add_subdirectory(tensor_interop/cpp)
add_subdirectory(tensor_interop/python)
add_subdirectory(v4l2_camera/cpp)
add_subdirectory(video_replayer/cpp)
add_subdirectory(video_replayer/python)
add_subdirectory(video_replayer_distributed/cpp)
add_subdirectory(video_replayer_distributed/python)
add_subdirectory(wrap_operator_as_gxf_extension/gxf_app)
add_subdirectory(wrap_operator_as_gxf_extension/gxf_extension)
add_subdirectory(wrap_operator_as_gxf_extension/ping_rx_native_op)
add_subdirectory(wrap_operator_as_gxf_extension/ping_tx_native_op)

