# Copyright (c) Advanced Micro Devices, Inc., or its affiliates.
#
# SPDX-License-Identifier: MIT

add_subdirectory(rtc)
add_subdirectory(graph)
add_subdirectory(memory)
add_subdirectory(stream)
add_subdirectory(event)
add_subdirectory(occupancy)
add_subdirectory(device)
add_subdirectory(env)
add_subdirectory(printf)
add_subdirectory(texture)
add_subdirectory(surface)
add_subdirectory(streamperthread)
add_subdirectory(kernel)
add_subdirectory(multiThread)
add_subdirectory(compiler)
add_subdirectory(errorHandling)
add_subdirectory(cooperativeGrps)
add_subdirectory(context)
add_subdirectory(device_memory)
add_subdirectory(warp)
add_subdirectory(dynamicLoading)
add_subdirectory(g++)
#add_subdirectory(gcc)   # TODO link error TheRock build
add_subdirectory(module)
add_subdirectory(channelDescriptor)
add_subdirectory(executionControl)
add_subdirectory(vector_types)
add_subdirectory(complex)
add_subdirectory(p2p)
add_subdirectory(threadfence)
add_subdirectory(virtualMemoryManagement)
add_subdirectory(deviceLib)
# TODO Rock build failures
if(UNIX)
  add_subdirectory(atomics)
  add_subdirectory(math)
  # TODO compute build failures
  add_subdirectory(syncthreads)
endif()
if(HIP_PLATFORM STREQUAL "amd")
  add_subdirectory(hrr)
  add_subdirectory(callback)
  add_subdirectory(clock)
  add_subdirectory(hip_specific)
  # fails while including the hip_nvidia_details
  add_subdirectory(c_compilation)
  # Vulkan interop APIs currently undefined for Nvidia
  add_subdirectory(vulkan_interop)
  add_subdirectory(gl_interop) # Disabled on NVIDIA due to defect - EXSWHTEC-246
  add_subdirectory(TDM)
  add_subdirectory(cluster)
endif()
add_subdirectory(synchronization)
add_subdirectory(launchBounds)
add_subdirectory(assertion)
add_subdirectory(library)
add_subdirectory(sanityTests)
add_subdirectory(executionContext)

if(ENABLE_OOB_TESTS AND HIP_PLATFORM STREQUAL "amd" AND NOT HIP_TESTS_ASAN_ENABLED AND UNIX)
  add_subdirectory(oob)
endif()
