"""
@file
@defgroup examples_exampleDataTask_gpu_app Application
@ingroup examples_exampleDataTask_gpu

@brief Example GPU-based Data Task application.

@copyright
  SPDX-FileCopyrightText: 2021-2025 European Southern Observatory (ESO) @n
  SPDX-License-Identifier: LGPL-3.0-only
"""

import os
from wtools.module import declare_cprogram


def check_cuda(use_list):
    if os.getenv("CUDA_PATH") is not None:
        use_list.append("_examples.exampleDataTask.gpu.gpuLib")
        use_list.append("CUDA")
        use_list.append("CUDART")
        use_list.append("CUBLAS")
    return use_list


def check_cuda_cxxflags(flags):
    if os.getenv("CUDA_PATH") is not None:
        flags.append("-DTEST_CUDA")
    return flags


declare_cprogram(
    target="rtctkExampleDataTaskGpu",
    use=check_cuda(
        [
            "componentFramework.rtcComponent",
            "reusableComponents.dataTask.lib",
            "_examples.exampleTopics",
        ]
    ),
    cxxflags=check_cuda_cxxflags([]),
)
