# Copyright Advanced Micro Devices, Inc.
# SPDX-License-Identifier: MIT

# ALL so the contract executables build with the default target the same way the
# unit tests do (their build_tests aggregate is also declared ALL). The per-test
# executables are EXCLUDE_FROM_ALL, so without this they are only compiled by an
# explicit `--target contract_tests` and CI, which builds the default target,
# registers them via catch_discover_tests but never compiles them (ctest then
# reports every case as <Target>_NOT_BUILT).
add_custom_target(contract_tests ALL)

add_subdirectory(memory)
add_subdirectory(transfer)
add_subdirectory(driver_memcpy)
add_subdirectory(driver_memcpy_2d)
add_subdirectory(runtime)
add_subdirectory(device)
add_subdirectory(device_identity)
add_subdirectory(device_texture_query)
add_subdirectory(peer_query)
add_subdirectory(peer_access)
add_subdirectory(peer_copy)
add_subdirectory(stream_event)
add_subdirectory(stream_props)
add_subdirectory(stream_callbacks)
add_subdirectory(stream_attributes)
add_subdirectory(stream_memory_ops)
add_subdirectory(stream_cu_mask)
add_subdirectory(stream_attach)
add_subdirectory(async_transfer)
add_subdirectory(mem_batch_copy)
add_subdirectory(mem_batch_copy_3d)
add_subdirectory(mem_batch_discard)
add_subdirectory(memset)
add_subdirectory(driver_memset_async)
add_subdirectory(driver_memset_2d)
add_subdirectory(driver_memset_async_2d3d)
add_subdirectory(error_api)
add_subdirectory(driver_error)
add_subdirectory(kernel)
add_subdirectory(call_config)
add_subdirectory(func_attributes)
add_subdirectory(kernel_launch)
add_subdirectory(multi_device_launch)
add_subdirectory(driver_launch_ex)
add_subdirectory(kernel_name_ref)
add_subdirectory(graphics_interop)
add_subdirectory(symbol_copy)
add_subdirectory(graph)
add_subdirectory(occupancy)
add_subdirectory(occupancy_ext)
add_subdirectory(occupancy_variable)
add_subdirectory(graph_capture)
add_subdirectory(stream_capture_mode)
add_subdirectory(capture_to_graph)
add_subdirectory(graph_kernel)
add_subdirectory(graph_event)
add_subdirectory(graph_topology)
add_subdirectory(graph_clone)
add_subdirectory(graph_update)
add_subdirectory(graph_exec_lifecycle)
add_subdirectory(graph_node_types)
add_subdirectory(graph_child)
add_subdirectory(graph_host)
add_subdirectory(graph_mem_nodes)
add_subdirectory(graph_generic_node)
add_subdirectory(graph_memcpy3d_node)
add_subdirectory(graph_batch_mem_op)
add_subdirectory(driver_graph_node)
add_subdirectory(graph_instantiate_params)
add_subdirectory(graph_debug)
add_subdirectory(graph_node_find)
add_subdirectory(graph_user_objects)
add_subdirectory(graph_node_enabled)
add_subdirectory(graph_node_attributes)
add_subdirectory(graph_node_params)
add_subdirectory(graph_node_setters)
add_subdirectory(graph_symbol_copy_nodes)
add_subdirectory(host_memory)
add_subdirectory(host_alloc_aliases)
add_subdirectory(pitched_memory)
add_subdirectory(driver_pitched_memory)
add_subdirectory(array_memory)
add_subdirectory(array_copy)
add_subdirectory(array_copy_ext)
add_subdirectory(driver_array)
add_subdirectory(mipmapped_array)
add_subdirectory(managed_memory)
add_subdirectory(mem_advise)
add_subdirectory(mem_advise_v2)
add_subdirectory(pointer_info)
add_subdirectory(pointer_query)
add_subdirectory(memory_pool)
add_subdirectory(vmm)
add_subdirectory(vmm_handle)
add_subdirectory(mem_map_array)
add_subdirectory(copy3d)
add_subdirectory(async_copy3d)
add_subdirectory(driver_copy3d)
add_subdirectory(array3d)
add_subdirectory(texture)
add_subdirectory(driver_texture_object)
add_subdirectory(texture_reference)
add_subdirectory(texture_reference_symbol)
add_subdirectory(context)
add_subdirectory(context_mutation)
add_subdirectory(context_config)
add_subdirectory(device_config)
add_subdirectory(device_lifecycle)
add_subdirectory(device_reset)
add_subdirectory(green_context)
add_subdirectory(memory_pool_lifecycle)
add_subdirectory(memory_pool_access)
add_subdirectory(mem_location_pool)
add_subdirectory(mempool_shareable_handle)
add_subdirectory(extension)
add_subdirectory(logging)
add_subdirectory(profiler)
add_subdirectory(driver_entry_point)
add_subdirectory(ipc)
add_subdirectory(external_resource)
add_subdirectory(module)
add_subdirectory(module_load_ex)
add_subdirectory(module_load_file)
add_subdirectory(module_exec)
add_subdirectory(jit_link)
add_subdirectory(library)
add_subdirectory(library_file)
add_subdirectory(kernel_object_attributes)
