load("@bazel_skylib//:bzl_library.bzl", "bzl_library")

licenses(["restricted"])  # MPL2, portions GPL v3, LGPL v3, BSD-like

package(default_visibility = ["//visibility:public"])

config_setting(
    name = "using_hipcc",
    values = {
        "define": "using_rocm_hipcc=true",
    },
)

cc_library(
    name = "rocm_headers",
    hdrs = [
        "rocm/rocm_config.h",
        ":miopen-include",
        ":rccl-include",
        ":rocblas-include",
        ":rocfft-include",
        ":rocm-include",
    ],
    includes = [
        ".",
        "rocm/include",
        "rocm/include/rocrand",
    ],
    visibility = ["//visibility:public"],
)

cc_library(
    name = "hip",
    srcs = ["rocm/lib/libhip_hcc.so"],
    data = ["rocm/lib/libhip_hcc.so"],
    includes = [
        ".",
        "rocm/include",
    ],
    linkstatic = 1,
    visibility = ["//visibility:public"],
)

cc_library(
    name = "rocblas",
    srcs = ["rocm/lib/librocblas.so"],
    data = ["rocm/lib/librocblas.so"],
    includes = [
        ".",
        "rocm/include",
    ],
    linkstatic = 1,
    visibility = ["//visibility:public"],
)

cc_library(
    name = "rocfft",
    srcs = ["rocm/lib/librocfft.so"],
    data = ["rocm/lib/librocfft.so"],
    includes = [
        ".",
        "rocm/include",
    ],
    linkstatic = 1,
    visibility = ["//visibility:public"],
)

cc_library(
    name = "hiprand",
    srcs = ["rocm/lib/libhiprand.so"],
    data = ["rocm/lib/libhiprand.so"],
    includes = [
        ".",
        "rocm/include",
        "rocm/include/rocrand",
    ],
    linkstatic = 1,
    visibility = ["//visibility:public"],
)

cc_library(
    name = "miopen",
    srcs = ["rocm/lib/libMIOpen.so"],
    data = ["rocm/lib/libMIOpen.so"],
    includes = [
        ".",
        "rocm/include",
    ],
    linkstatic = 1,
    visibility = ["//visibility:public"],
)

cc_library(
    name = "rccl",
    srcs = ["rocm/lib/librccl.so"],
    data = ["rocm/lib/librccl.so"],
    includes = [
        ".",
        "rocm/include",
    ],
    linkstatic = 1,
    visibility = ["//visibility:public"],
)

cc_library(
    name = "rocm",
    visibility = ["//visibility:public"],
    deps = [
        ":hip",
        ":hiprand",
        ":miopen",
        ":rocblas",
        ":rocfft",
        ":rocm_headers",
    ],
)

bzl_library(
    name = "build_defs_bzl",
    srcs = ["build_defs.bzl"],
)

cc_library(
    name = "rocprim",
    srcs = [
        "rocm/include/hipcub/hipcub_version.hpp",
        "rocm/include/rocprim/rocprim_version.hpp",
    ],
    hdrs = glob([
        "rocm/include/hipcub/**",
        "rocm/include/rocprim/**",
    ]),
    includes = [
        ".",
        "rocm/include/hipcub",
        "rocm/include/rocprim",
    ],
    visibility = ["//visibility:public"],
    deps = [
        "@local_config_rocm//rocm:rocm_headers",
    ],
)

genrule(
    name = "rocm-include",
    outs = [
        "rocm/include/amd_comgr.h",
        "rocm/include/amd_hsa_common.h",
        "rocm/include/amd_hsa_elf.h",
        "rocm/include/amd_hsa_kernel_code.h",
        "rocm/include/amd_hsa_queue.h",
        "rocm/include/amd_hsa_signal.h",
        "rocm/include/base/backend_manager.hpp",
        "rocm/include/base/base_rocalution.hpp",
        "rocm/include/base/global_matrix.hpp",
        "rocm/include/base/global_vector.hpp",
        "rocm/include/base/local_matrix.hpp",
        "rocm/include/base/local_stencil.hpp",
        "rocm/include/base/local_vector.hpp",
        "rocm/include/base/matrix_formats.hpp",
        "rocm/include/base/matrix_formats_ind.hpp",
        "rocm/include/base/operator.hpp",
        "rocm/include/base/parallel_manager.hpp",
        "rocm/include/base/stencil_types.hpp",
        "rocm/include/base/vector.hpp",
        "rocm/include/device_amd_hsa.h",
        "rocm/include/hcc/amd_hsa_common.h",
        "rocm/include/hcc/amd_hsa_elf.h",
        "rocm/include/hcc/amd_hsa_kernel_code.h",
        "rocm/include/hcc/amd_hsa_queue.h",
        "rocm/include/hcc/amd_hsa_signal.h",
        "rocm/include/hcc/array_view",
        "rocm/include/hcc/clang-c/BuildSystem.h",
        "rocm/include/hcc/clang-c/CXCompilationDatabase.h",
        "rocm/include/hcc/clang-c/CXErrorCode.h",
        "rocm/include/hcc/clang-c/CXString.h",
        "rocm/include/hcc/clang-c/Documentation.h",
        "rocm/include/hcc/clang-c/Index.h",
        "rocm/include/hcc/clang-c/Platform.h",
        "rocm/include/hcc/coordinate",
        "rocm/include/hcc/device_amd_hsa.h",
        "rocm/include/hcc/experimental/algorithm",
        "rocm/include/hcc/experimental/exception_list",
        "rocm/include/hcc/experimental/execution_policy",
        "rocm/include/hcc/experimental/impl/algorithm_impl.inl",
        "rocm/include/hcc/experimental/impl/algorithm_impl_seq.inl",
        "rocm/include/hcc/experimental/impl/exclusive_scan.inl",
        "rocm/include/hcc/experimental/impl/inclusive_scan.inl",
        "rocm/include/hcc/experimental/impl/kernel_launch.inl",
        "rocm/include/hcc/experimental/impl/numeric_impl_seq.inl",
        "rocm/include/hcc/experimental/impl/reduce.inl",
        "rocm/include/hcc/experimental/impl/scan.inl",
        "rocm/include/hcc/experimental/impl/sort.inl",
        "rocm/include/hcc/experimental/impl/stablesort.inl",
        "rocm/include/hcc/experimental/impl/transform.inl",
        "rocm/include/hcc/experimental/impl/transform_exclusive_scan.inl",
        "rocm/include/hcc/experimental/impl/transform_inclusive_scan.inl",
        "rocm/include/hcc/experimental/impl/transform_reduce.inl",
        "rocm/include/hcc/experimental/impl/transform_scan.inl",
        "rocm/include/hcc/experimental/impl/type_utils.inl",
        "rocm/include/hcc/experimental/numeric",
        "rocm/include/hcc/grid_launch.h",
        "rocm/include/hcc/grid_launch.hpp",
        "rocm/include/hcc/hc.hpp",
        "rocm/include/hcc/hc_am.hpp",
        "rocm/include/hcc/hc_am_internal.hpp",
        "rocm/include/hcc/hc_defines.h",
        "rocm/include/hcc/hc_math.hpp",
        "rocm/include/hcc/hc_norm_unorm.inl",
        "rocm/include/hcc/hc_printf.hpp",
        "rocm/include/hcc/hc_prof_runtime.h",
        "rocm/include/hcc/hc_rt_debug.h",
        "rocm/include/hcc/hc_short_vector.hpp",
        "rocm/include/hcc/hc_short_vector.inl",
        "rocm/include/hcc/hcc_features.hpp",
        "rocm/include/hcc/hsa.h",
        "rocm/include/hcc/hsa_atomic.h",
        "rocm/include/hcc/kalmar_aligned_alloc.h",
        "rocm/include/hcc/kalmar_buffer.h",
        "rocm/include/hcc/kalmar_cpu_launch.h",
        "rocm/include/hcc/kalmar_exception.h",
        "rocm/include/hcc/kalmar_index.h",
        "rocm/include/hcc/kalmar_launch.h",
        "rocm/include/hcc/kalmar_math.h",
        "rocm/include/hcc/kalmar_runtime.h",
        "rocm/include/hcc/kalmar_serialize.h",
        "rocm/include/hcc/kalmar_short_vectors.inl",
        "rocm/include/hcc/llvm-c/Remarks.h",
        "rocm/include/hcc/llvm-c/lto.h",
        "rocm/include/hcc/llvm/Target/AMDGPU/AMDGPU.h",
        "rocm/include/hcc/llvm/Target/AMDGPU/Disassembler/CodeObjectDisassembler.h",
        "rocm/include/hcc/ockl.h",
        "rocm/include/hcc/ockl_hsa.h",
        "rocm/include/hcc/ocml.h",
        "rocm/include/hcc/pinned_vector.hpp",
        "rocm/include/hip/channel_descriptor.h",
        "rocm/include/hip/device_functions.h",
        "rocm/include/hip/driver_types.h",
        "rocm/include/hip/hcc_detail/channel_descriptor.h",
        "rocm/include/hip/hcc_detail/code_object_bundle.hpp",
        "rocm/include/hip/hcc_detail/concepts.hpp",
        "rocm/include/hip/hcc_detail/cuda/cuda.h",
        "rocm/include/hip/hcc_detail/cuda/math_functions.h",
        "rocm/include/hip/hcc_detail/device_functions.h",
        "rocm/include/hip/hcc_detail/device_library_decls.h",
        "rocm/include/hip/hcc_detail/driver_types.h",
        "rocm/include/hip/hcc_detail/elfio/elf_types.hpp",
        "rocm/include/hip/hcc_detail/elfio/elfio.hpp",
        "rocm/include/hip/hcc_detail/elfio/elfio_dump.hpp",
        "rocm/include/hip/hcc_detail/elfio/elfio_dynamic.hpp",
        "rocm/include/hip/hcc_detail/elfio/elfio_header.hpp",
        "rocm/include/hip/hcc_detail/elfio/elfio_note.hpp",
        "rocm/include/hip/hcc_detail/elfio/elfio_relocation.hpp",
        "rocm/include/hip/hcc_detail/elfio/elfio_section.hpp",
        "rocm/include/hip/hcc_detail/elfio/elfio_segment.hpp",
        "rocm/include/hip/hcc_detail/elfio/elfio_strings.hpp",
        "rocm/include/hip/hcc_detail/elfio/elfio_symbols.hpp",
        "rocm/include/hip/hcc_detail/elfio/elfio_utils.hpp",
        "rocm/include/hip/hcc_detail/functional_grid_launch.hpp",
        "rocm/include/hip/hcc_detail/grid_launch.h",
        "rocm/include/hip/hcc_detail/grid_launch.hpp",
        "rocm/include/hip/hcc_detail/grid_launch_GGL.hpp",
        "rocm/include/hip/hcc_detail/helpers.hpp",
        "rocm/include/hip/hcc_detail/hip_atomic.h",
        "rocm/include/hip/hcc_detail/hip_common.h",
        "rocm/include/hip/hcc_detail/hip_complex.h",
        "rocm/include/hip/hcc_detail/hip_cooperative_groups.h",
        "rocm/include/hip/hcc_detail/hip_cooperative_groups_helper.h",
        "rocm/include/hip/hcc_detail/hip_db.h",
        "rocm/include/hip/hcc_detail/hip_fp16.h",
        "rocm/include/hip/hcc_detail/hip_fp16_gcc.h",
        "rocm/include/hip/hcc_detail/hip_fp16_math_fwd.h",
        "rocm/include/hip/hcc_detail/hip_ldg.h",
        "rocm/include/hip/hcc_detail/hip_memory.h",
        "rocm/include/hip/hcc_detail/hip_prof_str.h",
        "rocm/include/hip/hcc_detail/hip_runtime.h",
        "rocm/include/hip/hcc_detail/hip_runtime_api.h",
        "rocm/include/hip/hcc_detail/hip_surface_types.h",
        "rocm/include/hip/hcc_detail/hip_texture_types.h",
        "rocm/include/hip/hcc_detail/hip_vector_types.h",
        "rocm/include/hip/hcc_detail/hiprtc.h",
        "rocm/include/hip/hcc_detail/host_defines.h",
        "rocm/include/hip/hcc_detail/hsa_helpers.hpp",
        "rocm/include/hip/hcc_detail/llvm_intrinsics.h",
        "rocm/include/hip/hcc_detail/macro_based_grid_launch.hpp",
        "rocm/include/hip/hcc_detail/math_functions.h",
        "rocm/include/hip/hcc_detail/math_fwd.h",
        "rocm/include/hip/hcc_detail/program_state.hpp",
        "rocm/include/hip/hcc_detail/surface_functions.h",
        "rocm/include/hip/hcc_detail/texture_functions.h",
        "rocm/include/hip/hcc_detail/texture_types.h",
        "rocm/include/hip/hip_common.h",
        "rocm/include/hip/hip_complex.h",
        "rocm/include/hip/hip_cooperative_groups.h",
        "rocm/include/hip/hip_fp16.h",
        "rocm/include/hip/hip_hcc.h",
        "rocm/include/hip/hip_profile.h",
        "rocm/include/hip/hip_runtime.h",
        "rocm/include/hip/hip_runtime_api.h",
        "rocm/include/hip/hip_texture_types.h",
        "rocm/include/hip/hip_vector_types.h",
        "rocm/include/hip/hiprtc.h",
        "rocm/include/hip/math_functions.h",
        "rocm/include/hip/nvcc_detail/channel_descriptor.h",
        "rocm/include/hip/nvcc_detail/hip_complex.h",
        "rocm/include/hip/nvcc_detail/hip_runtime.h",
        "rocm/include/hip/nvcc_detail/hip_runtime_api.h",
        "rocm/include/hip/nvcc_detail/hip_texture_types.h",
        "rocm/include/hip/texture_types.h",
        "rocm/include/hipblas-export.h",
        "rocm/include/hipblas-version.h",
        "rocm/include/hipblas.h",
        "rocm/include/hipcub/config.hpp",
        "rocm/include/hipcub/cub/device/device_histogram.hpp",
        "rocm/include/hipcub/cub/device/device_radix_sort.hpp",
        "rocm/include/hipcub/cub/device/device_reduce.hpp",
        "rocm/include/hipcub/cub/device/device_run_length_encode.hpp",
        "rocm/include/hipcub/cub/device/device_scan.hpp",
        "rocm/include/hipcub/cub/device/device_segmented_radix_sort.hpp",
        "rocm/include/hipcub/cub/device/device_segmented_reduce.hpp",
        "rocm/include/hipcub/cub/device/device_select.hpp",
        "rocm/include/hipcub/cub/hipcub.hpp",
        "rocm/include/hipcub/cub/util_allocator.hpp",
        "rocm/include/hipcub/hipcub.hpp",
        "rocm/include/hipcub/hipcub_version.hpp",
        "rocm/include/hipcub/rocprim/block/block_discontinuity.hpp",
        "rocm/include/hipcub/rocprim/block/block_exchange.hpp",
        "rocm/include/hipcub/rocprim/block/block_histogram.hpp",
        "rocm/include/hipcub/rocprim/block/block_load.hpp",
        "rocm/include/hipcub/rocprim/block/block_load_func.hpp",
        "rocm/include/hipcub/rocprim/block/block_radix_sort.hpp",
        "rocm/include/hipcub/rocprim/block/block_reduce.hpp",
        "rocm/include/hipcub/rocprim/block/block_scan.hpp",
        "rocm/include/hipcub/rocprim/block/block_store.hpp",
        "rocm/include/hipcub/rocprim/block/block_store_func.hpp",
        "rocm/include/hipcub/rocprim/device/device_histogram.hpp",
        "rocm/include/hipcub/rocprim/device/device_radix_sort.hpp",
        "rocm/include/hipcub/rocprim/device/device_reduce.hpp",
        "rocm/include/hipcub/rocprim/device/device_run_length_encode.hpp",
        "rocm/include/hipcub/rocprim/device/device_scan.hpp",
        "rocm/include/hipcub/rocprim/device/device_segmented_radix_sort.hpp",
        "rocm/include/hipcub/rocprim/device/device_segmented_reduce.hpp",
        "rocm/include/hipcub/rocprim/device/device_select.hpp",
        "rocm/include/hipcub/rocprim/hipcub.hpp",
        "rocm/include/hipcub/rocprim/iterator/arg_index_input_iterator.hpp",
        "rocm/include/hipcub/rocprim/iterator/constant_input_iterator.hpp",
        "rocm/include/hipcub/rocprim/iterator/counting_input_iterator.hpp",
        "rocm/include/hipcub/rocprim/iterator/tex_obj_input_iterator.hpp",
        "rocm/include/hipcub/rocprim/iterator/transform_input_iterator.hpp",
        "rocm/include/hipcub/rocprim/thread/thread_operators.hpp",
        "rocm/include/hipcub/rocprim/util_allocator.hpp",
        "rocm/include/hipcub/rocprim/util_ptx.hpp",
        "rocm/include/hipcub/rocprim/util_type.hpp",
        "rocm/include/hipcub/rocprim/warp/warp_reduce.hpp",
        "rocm/include/hipcub/rocprim/warp/warp_scan.hpp",
        "rocm/include/hipfft.h",
        "rocm/include/hiprand/hiprand.h",
        "rocm/include/hiprand/hiprand.hpp",
        "rocm/include/hiprand/hiprand_hcc.h",
        "rocm/include/hiprand/hiprand_kernel.h",
        "rocm/include/hiprand/hiprand_kernel_hcc.h",
        "rocm/include/hiprand/hiprand_kernel_nvcc.h",
        "rocm/include/hiprand/hiprand_mtgp32_host.h",
        "rocm/include/hiprand/hiprand_nvcc.h",
        "rocm/include/hiprand/hiprand_version.h",
        "rocm/include/hipsparse-export.h",
        "rocm/include/hipsparse-version.h",
        "rocm/include/hipsparse.h",
        "rocm/include/hsa.h",
        "rocm/include/hsa/Brig.h",
        "rocm/include/hsa/amd_hsa_common.h",
        "rocm/include/hsa/amd_hsa_elf.h",
        "rocm/include/hsa/amd_hsa_kernel_code.h",
        "rocm/include/hsa/amd_hsa_queue.h",
        "rocm/include/hsa/amd_hsa_signal.h",
        "rocm/include/hsa/amd_hsa_tools_interfaces.h",
        "rocm/include/hsa/hsa.h",
        "rocm/include/hsa/hsa_api_trace.h",
        "rocm/include/hsa/hsa_ext_amd.h",
        "rocm/include/hsa/hsa_ext_debugger.h",
        "rocm/include/hsa/hsa_ext_finalize.h",
        "rocm/include/hsa/hsa_ext_image.h",
        "rocm/include/hsa/hsa_ext_profiler.h",
        "rocm/include/hsa/hsa_ven_amd_aqlprofile.h",
        "rocm/include/hsa/hsa_ven_amd_loader.h",
        "rocm/include/hsakmt.h",
        "rocm/include/hsakmttypes.h",
        "rocm/include/miopen/config.h",
        "rocm/include/miopen/export.h",
        "rocm/include/miopen/miopen.h",
        "rocm/include/miopen/version.h",
        "rocm/include/miopen_kernel_includes.h",
        "rocm/include/miopen_kernels.h",
        "rocm/include/miopengemm/accuracytests.hpp",
        "rocm/include/miopengemm/alphagenerator.hpp",
        "rocm/include/miopengemm/apitest.hpp",
        "rocm/include/miopengemm/architests.hpp",
        "rocm/include/miopengemm/basegenerator.hpp",
        "rocm/include/miopengemm/betacgenerator.hpp",
        "rocm/include/miopengemm/bundle.hpp",
        "rocm/include/miopengemm/bylinegenerator.hpp",
        "rocm/include/miopengemm/copygenerator.hpp",
        "rocm/include/miopengemm/cpugemm.hpp",
        "rocm/include/miopengemm/derivedparams.hpp",
        "rocm/include/miopengemm/enums.hpp",
        "rocm/include/miopengemm/error.hpp",
        "rocm/include/miopengemm/findparams.hpp",
        "rocm/include/miopengemm/floattostring.hpp",
        "rocm/include/miopengemm/gemm.hpp",
        "rocm/include/miopengemm/geometries.hpp",
        "rocm/include/miopengemm/geometry.hpp",
        "rocm/include/miopengemm/graph.hpp",
        "rocm/include/miopengemm/hint.hpp",
        "rocm/include/miopengemm/hyperparams.hpp",
        "rocm/include/miopengemm/kernelcache.hpp",
        "rocm/include/miopengemm/kernelcachemerge.hpp",
        "rocm/include/miopengemm/kernelstring.hpp",
        "rocm/include/miopengemm/macgrid.hpp",
        "rocm/include/miopengemm/miogemm.hpp",
        "rocm/include/miopengemm/nearest.hpp",
        "rocm/include/miopengemm/normalformgenerator.hpp",
        "rocm/include/miopengemm/oclutil.hpp",
        "rocm/include/miopengemm/outputwriter.hpp",
        "rocm/include/miopengemm/platform.hpp",
        "rocm/include/miopengemm/prepgenerator.hpp",
        "rocm/include/miopengemm/programcacher.hpp",
        "rocm/include/miopengemm/programs.hpp",
        "rocm/include/miopengemm/randomutil.hpp",
        "rocm/include/miopengemm/redirection.hpp",
        "rocm/include/miopengemm/setabcw.hpp",
        "rocm/include/miopengemm/solution.hpp",
        "rocm/include/miopengemm/standalone.hpp",
        "rocm/include/miopengemm/stringutilbase.hpp",
        "rocm/include/miopengemm/tiling.hpp",
        "rocm/include/miopengemm/timer.hpp",
        "rocm/include/miopengemm/tinyone.hpp",
        "rocm/include/miopengemm/tinytwo.hpp",
        "rocm/include/miopengemm/tinyzero.hpp",
        "rocm/include/ockl.h",
        "rocm/include/ockl_hsa.h",
        "rocm/include/ocml.h",
        "rocm/include/opencl1.2-c.pch",
        "rocm/include/opencl2.0-c.pch",
        "rocm/include/profiler/CXLActivityLogger/CXLActivityLogger.h",
        "rocm/include/rccl.h",
        "rocm/include/rocalution.hpp",
        "rocm/include/rocblas-auxiliary.h",
        "rocm/include/rocblas-complex-types.h",
        "rocm/include/rocblas-export.h",
        "rocm/include/rocblas-functions.h",
        "rocm/include/rocblas-types.h",
        "rocm/include/rocblas-version.h",
        "rocm/include/rocblas.h",
        "rocm/include/rocblas_bfloat16.h",
        "rocm/include/rocfft-export.h",
        "rocm/include/rocfft-version.h",
        "rocm/include/rocfft.h",
        "rocm/include/rocprim/block/block_discontinuity.hpp",
        "rocm/include/rocprim/block/block_exchange.hpp",
        "rocm/include/rocprim/block/block_histogram.hpp",
        "rocm/include/rocprim/block/block_load.hpp",
        "rocm/include/rocprim/block/block_load_func.hpp",
        "rocm/include/rocprim/block/block_radix_sort.hpp",
        "rocm/include/rocprim/block/block_reduce.hpp",
        "rocm/include/rocprim/block/block_scan.hpp",
        "rocm/include/rocprim/block/block_sort.hpp",
        "rocm/include/rocprim/block/block_store.hpp",
        "rocm/include/rocprim/block/block_store_func.hpp",
        "rocm/include/rocprim/block/detail/block_histogram_atomic.hpp",
        "rocm/include/rocprim/block/detail/block_histogram_sort.hpp",
        "rocm/include/rocprim/block/detail/block_reduce_raking_reduce.hpp",
        "rocm/include/rocprim/block/detail/block_reduce_warp_reduce.hpp",
        "rocm/include/rocprim/block/detail/block_scan_reduce_then_scan.hpp",
        "rocm/include/rocprim/block/detail/block_scan_warp_scan.hpp",
        "rocm/include/rocprim/block/detail/block_sort_bitonic.hpp",
        "rocm/include/rocprim/config.hpp",
        "rocm/include/rocprim/detail/all_true.hpp",
        "rocm/include/rocprim/detail/binary_op_wrappers.hpp",
        "rocm/include/rocprim/detail/match_result_type.hpp",
        "rocm/include/rocprim/detail/radix_sort.hpp",
        "rocm/include/rocprim/detail/various.hpp",
        "rocm/include/rocprim/device/config_types.hpp",
        "rocm/include/rocprim/device/detail/device_binary_search.hpp",
        "rocm/include/rocprim/device/detail/device_histogram.hpp",
        "rocm/include/rocprim/device/detail/device_merge.hpp",
        "rocm/include/rocprim/device/detail/device_merge_sort.hpp",
        "rocm/include/rocprim/device/detail/device_partition.hpp",
        "rocm/include/rocprim/device/detail/device_radix_sort.hpp",
        "rocm/include/rocprim/device/detail/device_reduce.hpp",
        "rocm/include/rocprim/device/detail/device_reduce_by_key.hpp",
        "rocm/include/rocprim/device/detail/device_scan_lookback.hpp",
        "rocm/include/rocprim/device/detail/device_scan_reduce_then_scan.hpp",
        "rocm/include/rocprim/device/detail/device_segmented_radix_sort.hpp",
        "rocm/include/rocprim/device/detail/device_segmented_reduce.hpp",
        "rocm/include/rocprim/device/detail/device_segmented_scan.hpp",
        "rocm/include/rocprim/device/detail/device_transform.hpp",
        "rocm/include/rocprim/device/detail/lookback_scan_state.hpp",
        "rocm/include/rocprim/device/detail/ordered_block_id.hpp",
        "rocm/include/rocprim/device/detail/uint_fast_div.hpp",
        "rocm/include/rocprim/device/device_binary_search.hpp",
        "rocm/include/rocprim/device/device_histogram.hpp",
        "rocm/include/rocprim/device/device_histogram_config.hpp",
        "rocm/include/rocprim/device/device_merge.hpp",
        "rocm/include/rocprim/device/device_merge_config.hpp",
        "rocm/include/rocprim/device/device_merge_sort.hpp",
        "rocm/include/rocprim/device/device_merge_sort_config.hpp",
        "rocm/include/rocprim/device/device_partition.hpp",
        "rocm/include/rocprim/device/device_radix_sort.hpp",
        "rocm/include/rocprim/device/device_radix_sort_config.hpp",
        "rocm/include/rocprim/device/device_reduce.hpp",
        "rocm/include/rocprim/device/device_reduce_by_key.hpp",
        "rocm/include/rocprim/device/device_reduce_by_key_config.hpp",
        "rocm/include/rocprim/device/device_reduce_config.hpp",
        "rocm/include/rocprim/device/device_run_length_encode.hpp",
        "rocm/include/rocprim/device/device_run_length_encode_config.hpp",
        "rocm/include/rocprim/device/device_scan.hpp",
        "rocm/include/rocprim/device/device_scan_by_key.hpp",
        "rocm/include/rocprim/device/device_scan_config.hpp",
        "rocm/include/rocprim/device/device_segmented_radix_sort.hpp",
        "rocm/include/rocprim/device/device_segmented_radix_sort_config.hpp",
        "rocm/include/rocprim/device/device_segmented_reduce.hpp",
        "rocm/include/rocprim/device/device_segmented_scan.hpp",
        "rocm/include/rocprim/device/device_select.hpp",
        "rocm/include/rocprim/device/device_select_config.hpp",
        "rocm/include/rocprim/device/device_transform.hpp",
        "rocm/include/rocprim/device/device_transform_config.hpp",
        "rocm/include/rocprim/functional.hpp",
        "rocm/include/rocprim/intrinsics.hpp",
        "rocm/include/rocprim/intrinsics/atomic.hpp",
        "rocm/include/rocprim/intrinsics/bit.hpp",
        "rocm/include/rocprim/intrinsics/thread.hpp",
        "rocm/include/rocprim/intrinsics/warp.hpp",
        "rocm/include/rocprim/intrinsics/warp_shuffle.hpp",
        "rocm/include/rocprim/iterator.hpp",
        "rocm/include/rocprim/iterator/arg_index_iterator.hpp",
        "rocm/include/rocprim/iterator/constant_iterator.hpp",
        "rocm/include/rocprim/iterator/counting_iterator.hpp",
        "rocm/include/rocprim/iterator/detail/replace_first_iterator.hpp",
        "rocm/include/rocprim/iterator/discard_iterator.hpp",
        "rocm/include/rocprim/iterator/texture_cache_iterator.hpp",
        "rocm/include/rocprim/iterator/transform_iterator.hpp",
        "rocm/include/rocprim/iterator/zip_iterator.hpp",
        "rocm/include/rocprim/rocprim.hpp",
        "rocm/include/rocprim/rocprim_version.hpp",
        "rocm/include/rocprim/type_traits.hpp",
        "rocm/include/rocprim/types.hpp",
        "rocm/include/rocprim/types/double_buffer.hpp",
        "rocm/include/rocprim/types/integer_sequence.hpp",
        "rocm/include/rocprim/types/key_value_pair.hpp",
        "rocm/include/rocprim/types/tuple.hpp",
        "rocm/include/rocprim/warp/detail/warp_reduce_crosslane.hpp",
        "rocm/include/rocprim/warp/detail/warp_reduce_dpp.hpp",
        "rocm/include/rocprim/warp/detail/warp_reduce_shared_mem.hpp",
        "rocm/include/rocprim/warp/detail/warp_reduce_shuffle.hpp",
        "rocm/include/rocprim/warp/detail/warp_scan_crosslane.hpp",
        "rocm/include/rocprim/warp/detail/warp_scan_dpp.hpp",
        "rocm/include/rocprim/warp/detail/warp_scan_shared_mem.hpp",
        "rocm/include/rocprim/warp/detail/warp_scan_shuffle.hpp",
        "rocm/include/rocprim/warp/detail/warp_segment_bounds.hpp",
        "rocm/include/rocprim/warp/detail/warp_sort_shuffle.hpp",
        "rocm/include/rocprim/warp/warp_reduce.hpp",
        "rocm/include/rocprim/warp/warp_scan.hpp",
        "rocm/include/rocprim/warp/warp_sort.hpp",
        "rocm/include/rocprofiler/rocprofiler.h",
        "rocm/include/rocrand/rocrand.h",
        "rocm/include/rocrand/rocrand.hpp",
        "rocm/include/rocrand/rocrand_common.h",
        "rocm/include/rocrand/rocrand_discrete.h",
        "rocm/include/rocrand/rocrand_discrete_types.h",
        "rocm/include/rocrand/rocrand_kernel.h",
        "rocm/include/rocrand/rocrand_log_normal.h",
        "rocm/include/rocrand/rocrand_mrg32k3a.h",
        "rocm/include/rocrand/rocrand_mrg32k3a_precomputed.h",
        "rocm/include/rocrand/rocrand_mtgp32.h",
        "rocm/include/rocrand/rocrand_mtgp32_11213.h",
        "rocm/include/rocrand/rocrand_normal.h",
        "rocm/include/rocrand/rocrand_philox4x32_10.h",
        "rocm/include/rocrand/rocrand_poisson.h",
        "rocm/include/rocrand/rocrand_sobol32.h",
        "rocm/include/rocrand/rocrand_sobol_precomputed.h",
        "rocm/include/rocrand/rocrand_uniform.h",
        "rocm/include/rocrand/rocrand_version.h",
        "rocm/include/rocrand/rocrand_xorwow.h",
        "rocm/include/rocrand/rocrand_xorwow_precomputed.h",
        "rocm/include/rocsparse-auxiliary.h",
        "rocm/include/rocsparse-export.h",
        "rocm/include/rocsparse-functions.h",
        "rocm/include/rocsparse-types.h",
        "rocm/include/rocsparse-version.h",
        "rocm/include/rocsparse.h",
        "rocm/include/solvers/chebyshev.hpp",
        "rocm/include/solvers/direct/inversion.hpp",
        "rocm/include/solvers/direct/lu.hpp",
        "rocm/include/solvers/direct/qr.hpp",
        "rocm/include/solvers/iter_ctrl.hpp",
        "rocm/include/solvers/krylov/bicgstab.hpp",
        "rocm/include/solvers/krylov/bicgstabl.hpp",
        "rocm/include/solvers/krylov/cg.hpp",
        "rocm/include/solvers/krylov/cr.hpp",
        "rocm/include/solvers/krylov/fcg.hpp",
        "rocm/include/solvers/krylov/fgmres.hpp",
        "rocm/include/solvers/krylov/gmres.hpp",
        "rocm/include/solvers/krylov/idr.hpp",
        "rocm/include/solvers/krylov/qmrcgstab.hpp",
        "rocm/include/solvers/mixed_precision.hpp",
        "rocm/include/solvers/multigrid/base_amg.hpp",
        "rocm/include/solvers/multigrid/base_multigrid.hpp",
        "rocm/include/solvers/multigrid/global_pairwise_amg.hpp",
        "rocm/include/solvers/multigrid/multigrid.hpp",
        "rocm/include/solvers/multigrid/pairwise_amg.hpp",
        "rocm/include/solvers/multigrid/ruge_stueben_amg.hpp",
        "rocm/include/solvers/multigrid/smoothed_amg.hpp",
        "rocm/include/solvers/multigrid/unsmoothed_amg.hpp",
        "rocm/include/solvers/preconditioners/preconditioner.hpp",
        "rocm/include/solvers/preconditioners/preconditioner_ai.hpp",
        "rocm/include/solvers/preconditioners/preconditioner_as.hpp",
        "rocm/include/solvers/preconditioners/preconditioner_blockjacobi.hpp",
        "rocm/include/solvers/preconditioners/preconditioner_blockprecond.hpp",
        "rocm/include/solvers/preconditioners/preconditioner_multicolored.hpp",
        "rocm/include/solvers/preconditioners/preconditioner_multicolored_gs.hpp",
        "rocm/include/solvers/preconditioners/preconditioner_multicolored_ilu.hpp",
        "rocm/include/solvers/preconditioners/preconditioner_multielimination.hpp",
        "rocm/include/solvers/preconditioners/preconditioner_saddlepoint.hpp",
        "rocm/include/solvers/solver.hpp",
        "rocm/include/thrust/adjacent_difference.h",
        "rocm/include/thrust/advance.h",
        "rocm/include/thrust/binary_search.h",
        "rocm/include/thrust/complex.h",
        "rocm/include/thrust/copy.h",
        "rocm/include/thrust/count.h",
        "rocm/include/thrust/detail/adjacent_difference.inl",
        "rocm/include/thrust/detail/advance.inl",
        "rocm/include/thrust/detail/alignment.h",
        "rocm/include/thrust/detail/allocator/allocator_traits.h",
        "rocm/include/thrust/detail/allocator/allocator_traits.inl",
        "rocm/include/thrust/detail/allocator/copy_construct_range.h",
        "rocm/include/thrust/detail/allocator/copy_construct_range.inl",
        "rocm/include/thrust/detail/allocator/default_construct_range.h",
        "rocm/include/thrust/detail/allocator/default_construct_range.inl",
        "rocm/include/thrust/detail/allocator/destroy_range.h",
        "rocm/include/thrust/detail/allocator/destroy_range.inl",
        "rocm/include/thrust/detail/allocator/fill_construct_range.h",
        "rocm/include/thrust/detail/allocator/fill_construct_range.inl",
        "rocm/include/thrust/detail/allocator/malloc_allocator.h",
        "rocm/include/thrust/detail/allocator/malloc_allocator.inl",
        "rocm/include/thrust/detail/allocator/no_throw_allocator.h",
        "rocm/include/thrust/detail/allocator/tagged_allocator.h",
        "rocm/include/thrust/detail/allocator/tagged_allocator.inl",
        "rocm/include/thrust/detail/allocator/temporary_allocator.h",
        "rocm/include/thrust/detail/allocator/temporary_allocator.inl",
        "rocm/include/thrust/detail/binary_search.inl",
        "rocm/include/thrust/detail/complex/arithmetic.h",
        "rocm/include/thrust/detail/complex/c99math.h",
        "rocm/include/thrust/detail/complex/catrig.h",
        "rocm/include/thrust/detail/complex/catrigf.h",
        "rocm/include/thrust/detail/complex/ccosh.h",
        "rocm/include/thrust/detail/complex/ccoshf.h",
        "rocm/include/thrust/detail/complex/cexp.h",
        "rocm/include/thrust/detail/complex/cexpf.h",
        "rocm/include/thrust/detail/complex/clog.h",
        "rocm/include/thrust/detail/complex/clogf.h",
        "rocm/include/thrust/detail/complex/complex.inl",
        "rocm/include/thrust/detail/complex/cpow.h",
        "rocm/include/thrust/detail/complex/cproj.h",
        "rocm/include/thrust/detail/complex/csinh.h",
        "rocm/include/thrust/detail/complex/csinhf.h",
        "rocm/include/thrust/detail/complex/csqrt.h",
        "rocm/include/thrust/detail/complex/csqrtf.h",
        "rocm/include/thrust/detail/complex/ctanh.h",
        "rocm/include/thrust/detail/complex/ctanhf.h",
        "rocm/include/thrust/detail/complex/math_private.h",
        "rocm/include/thrust/detail/complex/stream.h",
        "rocm/include/thrust/detail/config.h",
        "rocm/include/thrust/detail/config/compiler.h",
        "rocm/include/thrust/detail/config/compiler_fence.h",
        "rocm/include/thrust/detail/config/config.h",
        "rocm/include/thrust/detail/config/cpp_dialect.h",
        "rocm/include/thrust/detail/config/debug.h",
        "rocm/include/thrust/detail/config/device_system.h",
        "rocm/include/thrust/detail/config/exec_check_disable.h",
        "rocm/include/thrust/detail/config/forceinline.h",
        "rocm/include/thrust/detail/config/global_workarounds.h",
        "rocm/include/thrust/detail/config/host_device.h",
        "rocm/include/thrust/detail/config/host_system.h",
        "rocm/include/thrust/detail/config/simple_defines.h",
        "rocm/include/thrust/detail/contiguous_storage.h",
        "rocm/include/thrust/detail/contiguous_storage.inl",
        "rocm/include/thrust/detail/copy.h",
        "rocm/include/thrust/detail/copy.inl",
        "rocm/include/thrust/detail/copy_if.h",
        "rocm/include/thrust/detail/copy_if.inl",
        "rocm/include/thrust/detail/count.inl",
        "rocm/include/thrust/detail/cstdint.h",
        "rocm/include/thrust/detail/device_delete.inl",
        "rocm/include/thrust/detail/device_free.inl",
        "rocm/include/thrust/detail/device_malloc.inl",
        "rocm/include/thrust/detail/device_new.inl",
        "rocm/include/thrust/detail/device_ptr.inl",
        "rocm/include/thrust/detail/device_reference.inl",
        "rocm/include/thrust/detail/device_vector.inl",
        "rocm/include/thrust/detail/dispatch/is_trivial_copy.h",
        "rocm/include/thrust/detail/distance.inl",
        "rocm/include/thrust/detail/equal.inl",
        "rocm/include/thrust/detail/execute_with_allocator.h",
        "rocm/include/thrust/detail/execution_policy.h",
        "rocm/include/thrust/detail/extrema.inl",
        "rocm/include/thrust/detail/fill.inl",
        "rocm/include/thrust/detail/find.inl",
        "rocm/include/thrust/detail/for_each.inl",
        "rocm/include/thrust/detail/function.h",
        "rocm/include/thrust/detail/functional.inl",
        "rocm/include/thrust/detail/functional/actor.h",
        "rocm/include/thrust/detail/functional/actor.inl",
        "rocm/include/thrust/detail/functional/argument.h",
        "rocm/include/thrust/detail/functional/composite.h",
        "rocm/include/thrust/detail/functional/operators.h",
        "rocm/include/thrust/detail/functional/operators/arithmetic_operators.h",
        "rocm/include/thrust/detail/functional/operators/assignment_operator.h",
        "rocm/include/thrust/detail/functional/operators/bitwise_operators.h",
        "rocm/include/thrust/detail/functional/operators/compound_assignment_operators.h",
        "rocm/include/thrust/detail/functional/operators/logical_operators.h",
        "rocm/include/thrust/detail/functional/operators/operator_adaptors.h",
        "rocm/include/thrust/detail/functional/operators/relational_operators.h",
        "rocm/include/thrust/detail/functional/placeholder.h",
        "rocm/include/thrust/detail/functional/value.h",
        "rocm/include/thrust/detail/gather.inl",
        "rocm/include/thrust/detail/generate.inl",
        "rocm/include/thrust/detail/get_iterator_value.h",
        "rocm/include/thrust/detail/host_vector.inl",
        "rocm/include/thrust/detail/inner_product.inl",
        "rocm/include/thrust/detail/integer_math.h",
        "rocm/include/thrust/detail/integer_traits.h",
        "rocm/include/thrust/detail/internal_functional.h",
        "rocm/include/thrust/detail/logical.inl",
        "rocm/include/thrust/detail/malloc_and_free.h",
        "rocm/include/thrust/detail/merge.inl",
        "rocm/include/thrust/detail/minmax.h",
        "rocm/include/thrust/detail/mismatch.inl",
        "rocm/include/thrust/detail/mpl/math.h",
        "rocm/include/thrust/detail/numeric_traits.h",
        "rocm/include/thrust/detail/overlapped_copy.h",
        "rocm/include/thrust/detail/pair.inl",
        "rocm/include/thrust/detail/partition.inl",
        "rocm/include/thrust/detail/pointer.h",
        "rocm/include/thrust/detail/pointer.inl",
        "rocm/include/thrust/detail/preprocessor.h",
        "rocm/include/thrust/detail/range/head_flags.h",
        "rocm/include/thrust/detail/range/tail_flags.h",
        "rocm/include/thrust/detail/raw_pointer_cast.h",
        "rocm/include/thrust/detail/raw_reference_cast.h",
        "rocm/include/thrust/detail/reduce.inl",
        "rocm/include/thrust/detail/reference.h",
        "rocm/include/thrust/detail/reference.inl",
        "rocm/include/thrust/detail/reference_forward_declaration.h",
        "rocm/include/thrust/detail/remove.inl",
        "rocm/include/thrust/detail/replace.inl",
        "rocm/include/thrust/detail/reverse.inl",
        "rocm/include/thrust/detail/scan.inl",
        "rocm/include/thrust/detail/scatter.inl",
        "rocm/include/thrust/detail/seq.h",
        "rocm/include/thrust/detail/sequence.inl",
        "rocm/include/thrust/detail/set_operations.inl",
        "rocm/include/thrust/detail/sort.inl",
        "rocm/include/thrust/detail/static_assert.h",
        "rocm/include/thrust/detail/static_map.h",
        "rocm/include/thrust/detail/swap.h",
        "rocm/include/thrust/detail/swap.inl",
        "rocm/include/thrust/detail/swap_ranges.inl",
        "rocm/include/thrust/detail/tabulate.inl",
        "rocm/include/thrust/detail/temporary_array.h",
        "rocm/include/thrust/detail/temporary_array.inl",
        "rocm/include/thrust/detail/temporary_buffer.h",
        "rocm/include/thrust/detail/transform.inl",
        "rocm/include/thrust/detail/transform_reduce.inl",
        "rocm/include/thrust/detail/transform_scan.inl",
        "rocm/include/thrust/detail/trivial_sequence.h",
        "rocm/include/thrust/detail/tuple.inl",
        "rocm/include/thrust/detail/tuple_meta_transform.h",
        "rocm/include/thrust/detail/tuple_transform.h",
        "rocm/include/thrust/detail/type_traits.h",
        "rocm/include/thrust/detail/type_traits/algorithm/intermediate_type.h",
        "rocm/include/thrust/detail/type_traits/function_traits.h",
        "rocm/include/thrust/detail/type_traits/has_member_function.h",
        "rocm/include/thrust/detail/type_traits/has_nested_type.h",
        "rocm/include/thrust/detail/type_traits/has_trivial_assign.h",
        "rocm/include/thrust/detail/type_traits/is_call_possible.h",
        "rocm/include/thrust/detail/type_traits/is_metafunction_defined.h",
        "rocm/include/thrust/detail/type_traits/iterator/is_discard_iterator.h",
        "rocm/include/thrust/detail/type_traits/iterator/is_output_iterator.h",
        "rocm/include/thrust/detail/type_traits/minimum_type.h",
        "rocm/include/thrust/detail/type_traits/pointer_traits.h",
        "rocm/include/thrust/detail/type_traits/result_of_adaptable_function.h",
        "rocm/include/thrust/detail/uninitialized_copy.inl",
        "rocm/include/thrust/detail/uninitialized_fill.inl",
        "rocm/include/thrust/detail/unique.inl",
        "rocm/include/thrust/detail/use_default.h",
        "rocm/include/thrust/detail/util/align.h",
        "rocm/include/thrust/detail/util/blocking.h",
        "rocm/include/thrust/detail/vector_base.h",
        "rocm/include/thrust/detail/vector_base.inl",
        "rocm/include/thrust/device_allocator.h",
        "rocm/include/thrust/device_delete.h",
        "rocm/include/thrust/device_free.h",
        "rocm/include/thrust/device_malloc.h",
        "rocm/include/thrust/device_malloc_allocator.h",
        "rocm/include/thrust/device_new.h",
        "rocm/include/thrust/device_new_allocator.h",
        "rocm/include/thrust/device_ptr.h",
        "rocm/include/thrust/device_reference.h",
        "rocm/include/thrust/device_vector.h",
        "rocm/include/thrust/distance.h",
        "rocm/include/thrust/equal.h",
        "rocm/include/thrust/execution_policy.h",
        "rocm/include/thrust/extrema.h",
        "rocm/include/thrust/fill.h",
        "rocm/include/thrust/find.h",
        "rocm/include/thrust/for_each.h",
        "rocm/include/thrust/functional.h",
        "rocm/include/thrust/gather.h",
        "rocm/include/thrust/generate.h",
        "rocm/include/thrust/host_vector.h",
        "rocm/include/thrust/inner_product.h",
        "rocm/include/thrust/iterator/constant_iterator.h",
        "rocm/include/thrust/iterator/counting_iterator.h",
        "rocm/include/thrust/iterator/detail/any_assign.h",
        "rocm/include/thrust/iterator/detail/any_system_tag.h",
        "rocm/include/thrust/iterator/detail/constant_iterator_base.h",
        "rocm/include/thrust/iterator/detail/counting_iterator.inl",
        "rocm/include/thrust/iterator/detail/device_system_tag.h",
        "rocm/include/thrust/iterator/detail/discard_iterator_base.h",
        "rocm/include/thrust/iterator/detail/distance_from_result.h",
        "rocm/include/thrust/iterator/detail/host_system_tag.h",
        "rocm/include/thrust/iterator/detail/is_iterator_category.h",
        "rocm/include/thrust/iterator/detail/is_trivial_iterator.h",
        "rocm/include/thrust/iterator/detail/iterator_adaptor_base.h",
        "rocm/include/thrust/iterator/detail/iterator_category_to_system.h",
        "rocm/include/thrust/iterator/detail/iterator_category_to_traversal.h",
        "rocm/include/thrust/iterator/detail/iterator_category_with_system_and_traversal.h",
        "rocm/include/thrust/iterator/detail/iterator_facade_category.h",
        "rocm/include/thrust/iterator/detail/iterator_traits.inl",
        "rocm/include/thrust/iterator/detail/iterator_traversal_tags.h",
        "rocm/include/thrust/iterator/detail/join_iterator.h",
        "rocm/include/thrust/iterator/detail/minimum_category.h",
        "rocm/include/thrust/iterator/detail/minimum_system.h",
        "rocm/include/thrust/iterator/detail/normal_iterator.h",
        "rocm/include/thrust/iterator/detail/permutation_iterator_base.h",
        "rocm/include/thrust/iterator/detail/retag.h",
        "rocm/include/thrust/iterator/detail/reverse_iterator.inl",
        "rocm/include/thrust/iterator/detail/reverse_iterator_base.h",
        "rocm/include/thrust/iterator/detail/tagged_iterator.h",
        "rocm/include/thrust/iterator/detail/transform_iterator.inl",
        "rocm/include/thrust/iterator/detail/transform_output_iterator.inl",
        "rocm/include/thrust/iterator/detail/tuple_of_iterator_references.h",
        "rocm/include/thrust/iterator/detail/universal_categories.h",
        "rocm/include/thrust/iterator/detail/zip_iterator.inl",
        "rocm/include/thrust/iterator/detail/zip_iterator_base.h",
        "rocm/include/thrust/iterator/discard_iterator.h",
        "rocm/include/thrust/iterator/iterator_adaptor.h",
        "rocm/include/thrust/iterator/iterator_categories.h",
        "rocm/include/thrust/iterator/iterator_facade.h",
        "rocm/include/thrust/iterator/iterator_traits.h",
        "rocm/include/thrust/iterator/permutation_iterator.h",
        "rocm/include/thrust/iterator/retag.h",
        "rocm/include/thrust/iterator/reverse_iterator.h",
        "rocm/include/thrust/iterator/transform_iterator.h",
        "rocm/include/thrust/iterator/transform_output_iterator.h",
        "rocm/include/thrust/iterator/zip_iterator.h",
        "rocm/include/thrust/logical.h",
        "rocm/include/thrust/memory.h",
        "rocm/include/thrust/merge.h",
        "rocm/include/thrust/mismatch.h",
        "rocm/include/thrust/pair.h",
        "rocm/include/thrust/partition.h",
        "rocm/include/thrust/random.h",
        "rocm/include/thrust/random/detail/discard_block_engine.inl",
        "rocm/include/thrust/random/detail/erfcinv.h",
        "rocm/include/thrust/random/detail/linear_congruential_engine.inl",
        "rocm/include/thrust/random/detail/linear_congruential_engine_discard.h",
        "rocm/include/thrust/random/detail/linear_feedback_shift_engine.inl",
        "rocm/include/thrust/random/detail/linear_feedback_shift_engine_wordmask.h",
        "rocm/include/thrust/random/detail/mod.h",
        "rocm/include/thrust/random/detail/normal_distribution.inl",
        "rocm/include/thrust/random/detail/normal_distribution_base.h",
        "rocm/include/thrust/random/detail/random_core_access.h",
        "rocm/include/thrust/random/detail/subtract_with_carry_engine.inl",
        "rocm/include/thrust/random/detail/uniform_int_distribution.inl",
        "rocm/include/thrust/random/detail/uniform_real_distribution.inl",
        "rocm/include/thrust/random/detail/xor_combine_engine.inl",
        "rocm/include/thrust/random/detail/xor_combine_engine_max.h",
        "rocm/include/thrust/random/discard_block_engine.h",
        "rocm/include/thrust/random/linear_congruential_engine.h",
        "rocm/include/thrust/random/linear_feedback_shift_engine.h",
        "rocm/include/thrust/random/normal_distribution.h",
        "rocm/include/thrust/random/subtract_with_carry_engine.h",
        "rocm/include/thrust/random/uniform_int_distribution.h",
        "rocm/include/thrust/random/uniform_real_distribution.h",
        "rocm/include/thrust/random/xor_combine_engine.h",
        "rocm/include/thrust/reduce.h",
        "rocm/include/thrust/remove.h",
        "rocm/include/thrust/replace.h",
        "rocm/include/thrust/reverse.h",
        "rocm/include/thrust/rocthrust_version.hpp",
        "rocm/include/thrust/rocthrust_version.hpp.in",
        "rocm/include/thrust/scan.h",
        "rocm/include/thrust/scatter.h",
        "rocm/include/thrust/sequence.h",
        "rocm/include/thrust/set_operations.h",
        "rocm/include/thrust/sort.h",
        "rocm/include/thrust/swap.h",
        "rocm/include/thrust/system/cpp/detail/adjacent_difference.h",
        "rocm/include/thrust/system/cpp/detail/assign_value.h",
        "rocm/include/thrust/system/cpp/detail/binary_search.h",
        "rocm/include/thrust/system/cpp/detail/copy.h",
        "rocm/include/thrust/system/cpp/detail/copy_if.h",
        "rocm/include/thrust/system/cpp/detail/count.h",
        "rocm/include/thrust/system/cpp/detail/equal.h",
        "rocm/include/thrust/system/cpp/detail/execution_policy.h",
        "rocm/include/thrust/system/cpp/detail/extrema.h",
        "rocm/include/thrust/system/cpp/detail/fill.h",
        "rocm/include/thrust/system/cpp/detail/find.h",
        "rocm/include/thrust/system/cpp/detail/for_each.h",
        "rocm/include/thrust/system/cpp/detail/gather.h",
        "rocm/include/thrust/system/cpp/detail/generate.h",
        "rocm/include/thrust/system/cpp/detail/get_value.h",
        "rocm/include/thrust/system/cpp/detail/inner_product.h",
        "rocm/include/thrust/system/cpp/detail/iter_swap.h",
        "rocm/include/thrust/system/cpp/detail/logical.h",
        "rocm/include/thrust/system/cpp/detail/malloc_and_free.h",
        "rocm/include/thrust/system/cpp/detail/memory.inl",
        "rocm/include/thrust/system/cpp/detail/merge.h",
        "rocm/include/thrust/system/cpp/detail/mismatch.h",
        "rocm/include/thrust/system/cpp/detail/par.h",
        "rocm/include/thrust/system/cpp/detail/partition.h",
        "rocm/include/thrust/system/cpp/detail/reduce.h",
        "rocm/include/thrust/system/cpp/detail/reduce_by_key.h",
        "rocm/include/thrust/system/cpp/detail/remove.h",
        "rocm/include/thrust/system/cpp/detail/replace.h",
        "rocm/include/thrust/system/cpp/detail/reverse.h",
        "rocm/include/thrust/system/cpp/detail/scan.h",
        "rocm/include/thrust/system/cpp/detail/scan_by_key.h",
        "rocm/include/thrust/system/cpp/detail/scatter.h",
        "rocm/include/thrust/system/cpp/detail/sequence.h",
        "rocm/include/thrust/system/cpp/detail/set_operations.h",
        "rocm/include/thrust/system/cpp/detail/sort.h",
        "rocm/include/thrust/system/cpp/detail/swap_ranges.h",
        "rocm/include/thrust/system/cpp/detail/tabulate.h",
        "rocm/include/thrust/system/cpp/detail/temporary_buffer.h",
        "rocm/include/thrust/system/cpp/detail/transform.h",
        "rocm/include/thrust/system/cpp/detail/transform_reduce.h",
        "rocm/include/thrust/system/cpp/detail/transform_scan.h",
        "rocm/include/thrust/system/cpp/detail/uninitialized_copy.h",
        "rocm/include/thrust/system/cpp/detail/uninitialized_fill.h",
        "rocm/include/thrust/system/cpp/detail/unique.h",
        "rocm/include/thrust/system/cpp/detail/unique_by_key.h",
        "rocm/include/thrust/system/cpp/detail/vector.inl",
        "rocm/include/thrust/system/cpp/execution_policy.h",
        "rocm/include/thrust/system/cpp/memory.h",
        "rocm/include/thrust/system/cpp/vector.h",
        "rocm/include/thrust/system/cuda/config.h",
        "rocm/include/thrust/system/cuda/detail/adjacent_difference.h",
        "rocm/include/thrust/system/cuda/detail/assign_value.h",
        "rocm/include/thrust/system/cuda/detail/binary_search.h",
        "rocm/include/thrust/system/cuda/detail/copy.h",
        "rocm/include/thrust/system/cuda/detail/copy_if.h",
        "rocm/include/thrust/system/cuda/detail/core/agent_launcher.h",
        "rocm/include/thrust/system/cuda/detail/core/alignment.h",
        "rocm/include/thrust/system/cuda/detail/core/triple_chevron_launch.h",
        "rocm/include/thrust/system/cuda/detail/core/util.h",
        "rocm/include/thrust/system/cuda/detail/count.h",
        "rocm/include/thrust/system/cuda/detail/cross_system.h",
        "rocm/include/thrust/system/cuda/detail/equal.h",
        "rocm/include/thrust/system/cuda/detail/error.inl",
        "rocm/include/thrust/system/cuda/detail/execution_policy.h",
        "rocm/include/thrust/system/cuda/detail/extrema.h",
        "rocm/include/thrust/system/cuda/detail/fill.h",
        "rocm/include/thrust/system/cuda/detail/find.h",
        "rocm/include/thrust/system/cuda/detail/for_each.h",
        "rocm/include/thrust/system/cuda/detail/gather.h",
        "rocm/include/thrust/system/cuda/detail/generate.h",
        "rocm/include/thrust/system/cuda/detail/get_value.h",
        "rocm/include/thrust/system/cuda/detail/guarded_cuda_runtime_api.h",
        "rocm/include/thrust/system/cuda/detail/guarded_driver_types.h",
        "rocm/include/thrust/system/cuda/detail/inner_product.h",
        "rocm/include/thrust/system/cuda/detail/internal/copy_cross_system.h",
        "rocm/include/thrust/system/cuda/detail/internal/copy_device_to_device.h",
        "rocm/include/thrust/system/cuda/detail/iter_swap.h",
        "rocm/include/thrust/system/cuda/detail/logical.h",
        "rocm/include/thrust/system/cuda/detail/malloc_and_free.h",
        "rocm/include/thrust/system/cuda/detail/memory.inl",
        "rocm/include/thrust/system/cuda/detail/memory_buffer.h",
        "rocm/include/thrust/system/cuda/detail/merge.h",
        "rocm/include/thrust/system/cuda/detail/mismatch.h",
        "rocm/include/thrust/system/cuda/detail/par.h",
        "rocm/include/thrust/system/cuda/detail/par_to_seq.h",
        "rocm/include/thrust/system/cuda/detail/parallel_for.h",
        "rocm/include/thrust/system/cuda/detail/partition.h",
        "rocm/include/thrust/system/cuda/detail/reduce.h",
        "rocm/include/thrust/system/cuda/detail/reduce_by_key.h",
        "rocm/include/thrust/system/cuda/detail/remove.h",
        "rocm/include/thrust/system/cuda/detail/replace.h",
        "rocm/include/thrust/system/cuda/detail/reverse.h",
        "rocm/include/thrust/system/cuda/detail/scan.h",
        "rocm/include/thrust/system/cuda/detail/scan_by_key.h",
        "rocm/include/thrust/system/cuda/detail/scatter.h",
        "rocm/include/thrust/system/cuda/detail/sequence.h",
        "rocm/include/thrust/system/cuda/detail/set_operations.h",
        "rocm/include/thrust/system/cuda/detail/sort.h",
        "rocm/include/thrust/system/cuda/detail/swap_ranges.h",
        "rocm/include/thrust/system/cuda/detail/tabulate.h",
        "rocm/include/thrust/system/cuda/detail/temporary_buffer.h",
        "rocm/include/thrust/system/cuda/detail/terminate.h",
        "rocm/include/thrust/system/cuda/detail/transform.h",
        "rocm/include/thrust/system/cuda/detail/transform_reduce.h",
        "rocm/include/thrust/system/cuda/detail/transform_scan.h",
        "rocm/include/thrust/system/cuda/detail/uninitialized_copy.h",
        "rocm/include/thrust/system/cuda/detail/uninitialized_fill.h",
        "rocm/include/thrust/system/cuda/detail/unique.h",
        "rocm/include/thrust/system/cuda/detail/unique_by_key.h",
        "rocm/include/thrust/system/cuda/detail/util.h",
        "rocm/include/thrust/system/cuda/detail/vector.inl",
        "rocm/include/thrust/system/cuda/error.h",
        "rocm/include/thrust/system/cuda/execution_policy.h",
        "rocm/include/thrust/system/cuda/experimental/pinned_allocator.h",
        "rocm/include/thrust/system/cuda/memory.h",
        "rocm/include/thrust/system/cuda/vector.h",
        "rocm/include/thrust/system/detail/adl/adjacent_difference.h",
        "rocm/include/thrust/system/detail/adl/assign_value.h",
        "rocm/include/thrust/system/detail/adl/binary_search.h",
        "rocm/include/thrust/system/detail/adl/copy.h",
        "rocm/include/thrust/system/detail/adl/copy_if.h",
        "rocm/include/thrust/system/detail/adl/count.h",
        "rocm/include/thrust/system/detail/adl/equal.h",
        "rocm/include/thrust/system/detail/adl/extrema.h",
        "rocm/include/thrust/system/detail/adl/fill.h",
        "rocm/include/thrust/system/detail/adl/find.h",
        "rocm/include/thrust/system/detail/adl/for_each.h",
        "rocm/include/thrust/system/detail/adl/gather.h",
        "rocm/include/thrust/system/detail/adl/generate.h",
        "rocm/include/thrust/system/detail/adl/get_value.h",
        "rocm/include/thrust/system/detail/adl/inner_product.h",
        "rocm/include/thrust/system/detail/adl/iter_swap.h",
        "rocm/include/thrust/system/detail/adl/logical.h",
        "rocm/include/thrust/system/detail/adl/malloc_and_free.h",
        "rocm/include/thrust/system/detail/adl/merge.h",
        "rocm/include/thrust/system/detail/adl/mismatch.h",
        "rocm/include/thrust/system/detail/adl/partition.h",
        "rocm/include/thrust/system/detail/adl/reduce.h",
        "rocm/include/thrust/system/detail/adl/reduce_by_key.h",
        "rocm/include/thrust/system/detail/adl/remove.h",
        "rocm/include/thrust/system/detail/adl/replace.h",
        "rocm/include/thrust/system/detail/adl/reverse.h",
        "rocm/include/thrust/system/detail/adl/scan.h",
        "rocm/include/thrust/system/detail/adl/scan_by_key.h",
        "rocm/include/thrust/system/detail/adl/scatter.h",
        "rocm/include/thrust/system/detail/adl/sequence.h",
        "rocm/include/thrust/system/detail/adl/set_operations.h",
        "rocm/include/thrust/system/detail/adl/sort.h",
        "rocm/include/thrust/system/detail/adl/swap_ranges.h",
        "rocm/include/thrust/system/detail/adl/tabulate.h",
        "rocm/include/thrust/system/detail/adl/temporary_buffer.h",
        "rocm/include/thrust/system/detail/adl/transform.h",
        "rocm/include/thrust/system/detail/adl/transform_reduce.h",
        "rocm/include/thrust/system/detail/adl/transform_scan.h",
        "rocm/include/thrust/system/detail/adl/uninitialized_copy.h",
        "rocm/include/thrust/system/detail/adl/uninitialized_fill.h",
        "rocm/include/thrust/system/detail/adl/unique.h",
        "rocm/include/thrust/system/detail/adl/unique_by_key.h",
        "rocm/include/thrust/system/detail/bad_alloc.h",
        "rocm/include/thrust/system/detail/errno.h",
        "rocm/include/thrust/system/detail/error_category.inl",
        "rocm/include/thrust/system/detail/error_code.inl",
        "rocm/include/thrust/system/detail/error_condition.inl",
        "rocm/include/thrust/system/detail/generic/adjacent_difference.h",
        "rocm/include/thrust/system/detail/generic/adjacent_difference.inl",
        "rocm/include/thrust/system/detail/generic/advance.h",
        "rocm/include/thrust/system/detail/generic/advance.inl",
        "rocm/include/thrust/system/detail/generic/binary_search.h",
        "rocm/include/thrust/system/detail/generic/binary_search.inl",
        "rocm/include/thrust/system/detail/generic/copy.h",
        "rocm/include/thrust/system/detail/generic/copy.inl",
        "rocm/include/thrust/system/detail/generic/copy_if.h",
        "rocm/include/thrust/system/detail/generic/copy_if.inl",
        "rocm/include/thrust/system/detail/generic/count.h",
        "rocm/include/thrust/system/detail/generic/count.inl",
        "rocm/include/thrust/system/detail/generic/distance.h",
        "rocm/include/thrust/system/detail/generic/distance.inl",
        "rocm/include/thrust/system/detail/generic/equal.h",
        "rocm/include/thrust/system/detail/generic/equal.inl",
        "rocm/include/thrust/system/detail/generic/extrema.h",
        "rocm/include/thrust/system/detail/generic/extrema.inl",
        "rocm/include/thrust/system/detail/generic/fill.h",
        "rocm/include/thrust/system/detail/generic/find.h",
        "rocm/include/thrust/system/detail/generic/find.inl",
        "rocm/include/thrust/system/detail/generic/for_each.h",
        "rocm/include/thrust/system/detail/generic/gather.h",
        "rocm/include/thrust/system/detail/generic/gather.inl",
        "rocm/include/thrust/system/detail/generic/generate.h",
        "rocm/include/thrust/system/detail/generic/generate.inl",
        "rocm/include/thrust/system/detail/generic/inner_product.h",
        "rocm/include/thrust/system/detail/generic/inner_product.inl",
        "rocm/include/thrust/system/detail/generic/logical.h",
        "rocm/include/thrust/system/detail/generic/memory.h",
        "rocm/include/thrust/system/detail/generic/memory.inl",
        "rocm/include/thrust/system/detail/generic/merge.h",
        "rocm/include/thrust/system/detail/generic/merge.inl",
        "rocm/include/thrust/system/detail/generic/mismatch.h",
        "rocm/include/thrust/system/detail/generic/mismatch.inl",
        "rocm/include/thrust/system/detail/generic/partition.h",
        "rocm/include/thrust/system/detail/generic/partition.inl",
        "rocm/include/thrust/system/detail/generic/reduce.h",
        "rocm/include/thrust/system/detail/generic/reduce.inl",
        "rocm/include/thrust/system/detail/generic/reduce_by_key.h",
        "rocm/include/thrust/system/detail/generic/reduce_by_key.inl",
        "rocm/include/thrust/system/detail/generic/remove.h",
        "rocm/include/thrust/system/detail/generic/remove.inl",
        "rocm/include/thrust/system/detail/generic/replace.h",
        "rocm/include/thrust/system/detail/generic/replace.inl",
        "rocm/include/thrust/system/detail/generic/reverse.h",
        "rocm/include/thrust/system/detail/generic/reverse.inl",
        "rocm/include/thrust/system/detail/generic/scalar/binary_search.h",
        "rocm/include/thrust/system/detail/generic/scalar/binary_search.inl",
        "rocm/include/thrust/system/detail/generic/scan.h",
        "rocm/include/thrust/system/detail/generic/scan.inl",
        "rocm/include/thrust/system/detail/generic/scan_by_key.h",
        "rocm/include/thrust/system/detail/generic/scan_by_key.inl",
        "rocm/include/thrust/system/detail/generic/scatter.h",
        "rocm/include/thrust/system/detail/generic/scatter.inl",
        "rocm/include/thrust/system/detail/generic/select_system.h",
        "rocm/include/thrust/system/detail/generic/sequence.h",
        "rocm/include/thrust/system/detail/generic/sequence.inl",
        "rocm/include/thrust/system/detail/generic/set_operations.h",
        "rocm/include/thrust/system/detail/generic/set_operations.inl",
        "rocm/include/thrust/system/detail/generic/sort.h",
        "rocm/include/thrust/system/detail/generic/sort.inl",
        "rocm/include/thrust/system/detail/generic/swap_ranges.h",
        "rocm/include/thrust/system/detail/generic/swap_ranges.inl",
        "rocm/include/thrust/system/detail/generic/tabulate.h",
        "rocm/include/thrust/system/detail/generic/tabulate.inl",
        "rocm/include/thrust/system/detail/generic/tag.h",
        "rocm/include/thrust/system/detail/generic/temporary_buffer.h",
        "rocm/include/thrust/system/detail/generic/temporary_buffer.inl",
        "rocm/include/thrust/system/detail/generic/transform.h",
        "rocm/include/thrust/system/detail/generic/transform.inl",
        "rocm/include/thrust/system/detail/generic/transform_reduce.h",
        "rocm/include/thrust/system/detail/generic/transform_reduce.inl",
        "rocm/include/thrust/system/detail/generic/transform_scan.h",
        "rocm/include/thrust/system/detail/generic/transform_scan.inl",
        "rocm/include/thrust/system/detail/generic/type_traits.h",
        "rocm/include/thrust/system/detail/generic/uninitialized_copy.h",
        "rocm/include/thrust/system/detail/generic/uninitialized_copy.inl",
        "rocm/include/thrust/system/detail/generic/uninitialized_fill.h",
        "rocm/include/thrust/system/detail/generic/uninitialized_fill.inl",
        "rocm/include/thrust/system/detail/generic/unique.h",
        "rocm/include/thrust/system/detail/generic/unique.inl",
        "rocm/include/thrust/system/detail/generic/unique_by_key.h",
        "rocm/include/thrust/system/detail/generic/unique_by_key.inl",
        "rocm/include/thrust/system/detail/internal/decompose.h",
        "rocm/include/thrust/system/detail/sequential/adjacent_difference.h",
        "rocm/include/thrust/system/detail/sequential/assign_value.h",
        "rocm/include/thrust/system/detail/sequential/binary_search.h",
        "rocm/include/thrust/system/detail/sequential/copy.h",
        "rocm/include/thrust/system/detail/sequential/copy.inl",
        "rocm/include/thrust/system/detail/sequential/copy_backward.h",
        "rocm/include/thrust/system/detail/sequential/copy_if.h",
        "rocm/include/thrust/system/detail/sequential/count.h",
        "rocm/include/thrust/system/detail/sequential/equal.h",
        "rocm/include/thrust/system/detail/sequential/execution_policy.h",
        "rocm/include/thrust/system/detail/sequential/extrema.h",
        "rocm/include/thrust/system/detail/sequential/fill.h",
        "rocm/include/thrust/system/detail/sequential/find.h",
        "rocm/include/thrust/system/detail/sequential/for_each.h",
        "rocm/include/thrust/system/detail/sequential/gather.h",
        "rocm/include/thrust/system/detail/sequential/general_copy.h",
        "rocm/include/thrust/system/detail/sequential/generate.h",
        "rocm/include/thrust/system/detail/sequential/get_value.h",
        "rocm/include/thrust/system/detail/sequential/inner_product.h",
        "rocm/include/thrust/system/detail/sequential/insertion_sort.h",
        "rocm/include/thrust/system/detail/sequential/iter_swap.h",
        "rocm/include/thrust/system/detail/sequential/logical.h",
        "rocm/include/thrust/system/detail/sequential/malloc_and_free.h",
        "rocm/include/thrust/system/detail/sequential/merge.h",
        "rocm/include/thrust/system/detail/sequential/merge.inl",
        "rocm/include/thrust/system/detail/sequential/mismatch.h",
        "rocm/include/thrust/system/detail/sequential/partition.h",
        "rocm/include/thrust/system/detail/sequential/reduce.h",
        "rocm/include/thrust/system/detail/sequential/reduce_by_key.h",
        "rocm/include/thrust/system/detail/sequential/remove.h",
        "rocm/include/thrust/system/detail/sequential/replace.h",
        "rocm/include/thrust/system/detail/sequential/reverse.h",
        "rocm/include/thrust/system/detail/sequential/scan.h",
        "rocm/include/thrust/system/detail/sequential/scan_by_key.h",
        "rocm/include/thrust/system/detail/sequential/scatter.h",
        "rocm/include/thrust/system/detail/sequential/sequence.h",
        "rocm/include/thrust/system/detail/sequential/set_operations.h",
        "rocm/include/thrust/system/detail/sequential/sort.h",
        "rocm/include/thrust/system/detail/sequential/sort.inl",
        "rocm/include/thrust/system/detail/sequential/stable_merge_sort.h",
        "rocm/include/thrust/system/detail/sequential/stable_merge_sort.inl",
        "rocm/include/thrust/system/detail/sequential/stable_primitive_sort.h",
        "rocm/include/thrust/system/detail/sequential/stable_primitive_sort.inl",
        "rocm/include/thrust/system/detail/sequential/stable_radix_sort.h",
        "rocm/include/thrust/system/detail/sequential/stable_radix_sort.inl",
        "rocm/include/thrust/system/detail/sequential/swap_ranges.h",
        "rocm/include/thrust/system/detail/sequential/tabulate.h",
        "rocm/include/thrust/system/detail/sequential/temporary_buffer.h",
        "rocm/include/thrust/system/detail/sequential/transform.h",
        "rocm/include/thrust/system/detail/sequential/transform_reduce.h",
        "rocm/include/thrust/system/detail/sequential/transform_scan.h",
        "rocm/include/thrust/system/detail/sequential/trivial_copy.h",
        "rocm/include/thrust/system/detail/sequential/uninitialized_copy.h",
        "rocm/include/thrust/system/detail/sequential/uninitialized_fill.h",
        "rocm/include/thrust/system/detail/sequential/unique.h",
        "rocm/include/thrust/system/detail/sequential/unique_by_key.h",
        "rocm/include/thrust/system/detail/system_error.inl",
        "rocm/include/thrust/system/error_code.h",
        "rocm/include/thrust/system/hip/config.h",
        "rocm/include/thrust/system/hip/detail/adjacent_difference.h",
        "rocm/include/thrust/system/hip/detail/assign_value.h",
        "rocm/include/thrust/system/hip/detail/binary_search.h",
        "rocm/include/thrust/system/hip/detail/copy.h",
        "rocm/include/thrust/system/hip/detail/copy_if.h",
        "rocm/include/thrust/system/hip/detail/count.h",
        "rocm/include/thrust/system/hip/detail/cross_system.h",
        "rocm/include/thrust/system/hip/detail/equal.h",
        "rocm/include/thrust/system/hip/detail/error.inl",
        "rocm/include/thrust/system/hip/detail/execution_policy.h",
        "rocm/include/thrust/system/hip/detail/extrema.h",
        "rocm/include/thrust/system/hip/detail/fill.h",
        "rocm/include/thrust/system/hip/detail/find.h",
        "rocm/include/thrust/system/hip/detail/for_each.h",
        "rocm/include/thrust/system/hip/detail/gather.h",
        "rocm/include/thrust/system/hip/detail/generate.h",
        "rocm/include/thrust/system/hip/detail/get_value.h",
        "rocm/include/thrust/system/hip/detail/guarded_driver_types.h",
        "rocm/include/thrust/system/hip/detail/guarded_hip_runtime_api.h",
        "rocm/include/thrust/system/hip/detail/inner_product.h",
        "rocm/include/thrust/system/hip/detail/internal/copy_cross_system.h",
        "rocm/include/thrust/system/hip/detail/internal/copy_device_to_device.h",
        "rocm/include/thrust/system/hip/detail/iter_swap.h",
        "rocm/include/thrust/system/hip/detail/logical.h",
        "rocm/include/thrust/system/hip/detail/malloc_and_free.h",
        "rocm/include/thrust/system/hip/detail/memory.inl",
        "rocm/include/thrust/system/hip/detail/memory_buffer.h",
        "rocm/include/thrust/system/hip/detail/merge.h",
        "rocm/include/thrust/system/hip/detail/mismatch.h",
        "rocm/include/thrust/system/hip/detail/par.h",
        "rocm/include/thrust/system/hip/detail/par_to_seq.h",
        "rocm/include/thrust/system/hip/detail/parallel_for.h",
        "rocm/include/thrust/system/hip/detail/partition.h",
        "rocm/include/thrust/system/hip/detail/reduce.h",
        "rocm/include/thrust/system/hip/detail/reduce_by_key.h",
        "rocm/include/thrust/system/hip/detail/remove.h",
        "rocm/include/thrust/system/hip/detail/replace.h",
        "rocm/include/thrust/system/hip/detail/reverse.h",
        "rocm/include/thrust/system/hip/detail/scan.h",
        "rocm/include/thrust/system/hip/detail/scan_by_key.h",
        "rocm/include/thrust/system/hip/detail/scatter.h",
        "rocm/include/thrust/system/hip/detail/sequence.h",
        "rocm/include/thrust/system/hip/detail/set_operations.h",
        "rocm/include/thrust/system/hip/detail/sort.h",
        "rocm/include/thrust/system/hip/detail/swap_ranges.h",
        "rocm/include/thrust/system/hip/detail/tabulate.h",
        "rocm/include/thrust/system/hip/detail/temporary_buffer.h",
        "rocm/include/thrust/system/hip/detail/terminate.h",
        "rocm/include/thrust/system/hip/detail/transform.h",
        "rocm/include/thrust/system/hip/detail/transform_reduce.h",
        "rocm/include/thrust/system/hip/detail/transform_scan.h",
        "rocm/include/thrust/system/hip/detail/uninitialized_copy.h",
        "rocm/include/thrust/system/hip/detail/uninitialized_fill.h",
        "rocm/include/thrust/system/hip/detail/unique.h",
        "rocm/include/thrust/system/hip/detail/unique_by_key.h",
        "rocm/include/thrust/system/hip/detail/util.h",
        "rocm/include/thrust/system/hip/detail/vector.inl",
        "rocm/include/thrust/system/hip/error.h",
        "rocm/include/thrust/system/hip/execution_policy.h",
        "rocm/include/thrust/system/hip/memory.h",
        "rocm/include/thrust/system/hip/pointer.h",
        "rocm/include/thrust/system/hip/vector.h",
        "rocm/include/thrust/system/omp/detail/adjacent_difference.h",
        "rocm/include/thrust/system/omp/detail/assign_value.h",
        "rocm/include/thrust/system/omp/detail/binary_search.h",
        "rocm/include/thrust/system/omp/detail/copy.h",
        "rocm/include/thrust/system/omp/detail/copy.inl",
        "rocm/include/thrust/system/omp/detail/copy_if.h",
        "rocm/include/thrust/system/omp/detail/copy_if.inl",
        "rocm/include/thrust/system/omp/detail/count.h",
        "rocm/include/thrust/system/omp/detail/default_decomposition.h",
        "rocm/include/thrust/system/omp/detail/default_decomposition.inl",
        "rocm/include/thrust/system/omp/detail/equal.h",
        "rocm/include/thrust/system/omp/detail/execution_policy.h",
        "rocm/include/thrust/system/omp/detail/extrema.h",
        "rocm/include/thrust/system/omp/detail/fill.h",
        "rocm/include/thrust/system/omp/detail/find.h",
        "rocm/include/thrust/system/omp/detail/for_each.h",
        "rocm/include/thrust/system/omp/detail/for_each.inl",
        "rocm/include/thrust/system/omp/detail/gather.h",
        "rocm/include/thrust/system/omp/detail/generate.h",
        "rocm/include/thrust/system/omp/detail/get_value.h",
        "rocm/include/thrust/system/omp/detail/inner_product.h",
        "rocm/include/thrust/system/omp/detail/iter_swap.h",
        "rocm/include/thrust/system/omp/detail/logical.h",
        "rocm/include/thrust/system/omp/detail/malloc_and_free.h",
        "rocm/include/thrust/system/omp/detail/memory.inl",
        "rocm/include/thrust/system/omp/detail/merge.h",
        "rocm/include/thrust/system/omp/detail/mismatch.h",
        "rocm/include/thrust/system/omp/detail/par.h",
        "rocm/include/thrust/system/omp/detail/partition.h",
        "rocm/include/thrust/system/omp/detail/partition.inl",
        "rocm/include/thrust/system/omp/detail/reduce.h",
        "rocm/include/thrust/system/omp/detail/reduce.inl",
        "rocm/include/thrust/system/omp/detail/reduce_by_key.h",
        "rocm/include/thrust/system/omp/detail/reduce_by_key.inl",
        "rocm/include/thrust/system/omp/detail/reduce_intervals.h",
        "rocm/include/thrust/system/omp/detail/reduce_intervals.inl",
        "rocm/include/thrust/system/omp/detail/remove.h",
        "rocm/include/thrust/system/omp/detail/remove.inl",
        "rocm/include/thrust/system/omp/detail/replace.h",
        "rocm/include/thrust/system/omp/detail/reverse.h",
        "rocm/include/thrust/system/omp/detail/scan.h",
        "rocm/include/thrust/system/omp/detail/scan_by_key.h",
        "rocm/include/thrust/system/omp/detail/scatter.h",
        "rocm/include/thrust/system/omp/detail/sequence.h",
        "rocm/include/thrust/system/omp/detail/set_operations.h",
        "rocm/include/thrust/system/omp/detail/sort.h",
        "rocm/include/thrust/system/omp/detail/sort.inl",
        "rocm/include/thrust/system/omp/detail/swap_ranges.h",
        "rocm/include/thrust/system/omp/detail/tabulate.h",
        "rocm/include/thrust/system/omp/detail/temporary_buffer.h",
        "rocm/include/thrust/system/omp/detail/transform.h",
        "rocm/include/thrust/system/omp/detail/transform_reduce.h",
        "rocm/include/thrust/system/omp/detail/transform_scan.h",
        "rocm/include/thrust/system/omp/detail/uninitialized_copy.h",
        "rocm/include/thrust/system/omp/detail/uninitialized_fill.h",
        "rocm/include/thrust/system/omp/detail/unique.h",
        "rocm/include/thrust/system/omp/detail/unique.inl",
        "rocm/include/thrust/system/omp/detail/unique_by_key.h",
        "rocm/include/thrust/system/omp/detail/unique_by_key.inl",
        "rocm/include/thrust/system/omp/detail/vector.inl",
        "rocm/include/thrust/system/omp/execution_policy.h",
        "rocm/include/thrust/system/omp/memory.h",
        "rocm/include/thrust/system/omp/vector.h",
        "rocm/include/thrust/system/system_error.h",
        "rocm/include/thrust/system/tbb/detail/adjacent_difference.h",
        "rocm/include/thrust/system/tbb/detail/assign_value.h",
        "rocm/include/thrust/system/tbb/detail/binary_search.h",
        "rocm/include/thrust/system/tbb/detail/copy.h",
        "rocm/include/thrust/system/tbb/detail/copy.inl",
        "rocm/include/thrust/system/tbb/detail/copy_if.h",
        "rocm/include/thrust/system/tbb/detail/copy_if.inl",
        "rocm/include/thrust/system/tbb/detail/count.h",
        "rocm/include/thrust/system/tbb/detail/equal.h",
        "rocm/include/thrust/system/tbb/detail/execution_policy.h",
        "rocm/include/thrust/system/tbb/detail/extrema.h",
        "rocm/include/thrust/system/tbb/detail/fill.h",
        "rocm/include/thrust/system/tbb/detail/find.h",
        "rocm/include/thrust/system/tbb/detail/for_each.h",
        "rocm/include/thrust/system/tbb/detail/for_each.inl",
        "rocm/include/thrust/system/tbb/detail/gather.h",
        "rocm/include/thrust/system/tbb/detail/generate.h",
        "rocm/include/thrust/system/tbb/detail/get_value.h",
        "rocm/include/thrust/system/tbb/detail/inner_product.h",
        "rocm/include/thrust/system/tbb/detail/iter_swap.h",
        "rocm/include/thrust/system/tbb/detail/logical.h",
        "rocm/include/thrust/system/tbb/detail/malloc_and_free.h",
        "rocm/include/thrust/system/tbb/detail/memory.inl",
        "rocm/include/thrust/system/tbb/detail/merge.h",
        "rocm/include/thrust/system/tbb/detail/merge.inl",
        "rocm/include/thrust/system/tbb/detail/mismatch.h",
        "rocm/include/thrust/system/tbb/detail/par.h",
        "rocm/include/thrust/system/tbb/detail/partition.h",
        "rocm/include/thrust/system/tbb/detail/partition.inl",
        "rocm/include/thrust/system/tbb/detail/reduce.h",
        "rocm/include/thrust/system/tbb/detail/reduce.inl",
        "rocm/include/thrust/system/tbb/detail/reduce_by_key.h",
        "rocm/include/thrust/system/tbb/detail/reduce_by_key.inl",
        "rocm/include/thrust/system/tbb/detail/reduce_intervals.h",
        "rocm/include/thrust/system/tbb/detail/remove.h",
        "rocm/include/thrust/system/tbb/detail/remove.inl",
        "rocm/include/thrust/system/tbb/detail/replace.h",
        "rocm/include/thrust/system/tbb/detail/reverse.h",
        "rocm/include/thrust/system/tbb/detail/scan.h",
        "rocm/include/thrust/system/tbb/detail/scan.inl",
        "rocm/include/thrust/system/tbb/detail/scan_by_key.h",
        "rocm/include/thrust/system/tbb/detail/scatter.h",
        "rocm/include/thrust/system/tbb/detail/sequence.h",
        "rocm/include/thrust/system/tbb/detail/set_operations.h",
        "rocm/include/thrust/system/tbb/detail/sort.h",
        "rocm/include/thrust/system/tbb/detail/sort.inl",
        "rocm/include/thrust/system/tbb/detail/swap_ranges.h",
        "rocm/include/thrust/system/tbb/detail/tabulate.h",
        "rocm/include/thrust/system/tbb/detail/temporary_buffer.h",
        "rocm/include/thrust/system/tbb/detail/transform.h",
        "rocm/include/thrust/system/tbb/detail/transform_reduce.h",
        "rocm/include/thrust/system/tbb/detail/transform_scan.h",
        "rocm/include/thrust/system/tbb/detail/uninitialized_copy.h",
        "rocm/include/thrust/system/tbb/detail/uninitialized_fill.h",
        "rocm/include/thrust/system/tbb/detail/unique.h",
        "rocm/include/thrust/system/tbb/detail/unique.inl",
        "rocm/include/thrust/system/tbb/detail/unique_by_key.h",
        "rocm/include/thrust/system/tbb/detail/unique_by_key.inl",
        "rocm/include/thrust/system/tbb/detail/vector.inl",
        "rocm/include/thrust/system/tbb/execution_policy.h",
        "rocm/include/thrust/system/tbb/memory.h",
        "rocm/include/thrust/system/tbb/vector.h",
        "rocm/include/thrust/system_error.h",
        "rocm/include/thrust/tabulate.h",
        "rocm/include/thrust/transform.h",
        "rocm/include/thrust/transform_reduce.h",
        "rocm/include/thrust/transform_scan.h",
        "rocm/include/thrust/tuple.h",
        "rocm/include/thrust/uninitialized_copy.h",
        "rocm/include/thrust/uninitialized_fill.h",
        "rocm/include/thrust/unique.h",
        "rocm/include/thrust/version.h",
        "rocm/include/utils/allocate_free.hpp",
        "rocm/include/utils/def.hpp",
        "rocm/include/utils/time_functions.hpp",
        "rocm/include/utils/types.hpp",
        "rocm/include/version.hpp",
    ],
    cmd = """cp -rLf "/opt/rocm/include/." "$(@D)/rocm/include/" """,
)

genrule(
    name = "rocfft-include",
    outs = [
        "rocm/include/rocfft/hipfft.h",
        "rocm/include/rocfft/rocfft-export.h",
        "rocm/include/rocfft/rocfft-version.h",
        "rocm/include/rocfft/rocfft.h",
    ],
    cmd = """cp -rLf "/opt/rocm/rocfft/include/." "$(@D)/rocm/include/rocfft/" """,
)

genrule(
    name = "rocblas-include",
    outs = [
        "rocm/include/rocblas/rocblas-auxiliary.h",
        "rocm/include/rocblas/rocblas-complex-types.h",
        "rocm/include/rocblas/rocblas-export.h",
        "rocm/include/rocblas/rocblas-functions.h",
        "rocm/include/rocblas/rocblas-types.h",
        "rocm/include/rocblas/rocblas-version.h",
        "rocm/include/rocblas/rocblas.h",
        "rocm/include/rocblas/rocblas_bfloat16.h",
    ],
    cmd = """cp -rLf "/opt/rocm/rocblas/include/." "$(@D)/rocm/include/rocblas/" """,
)

genrule(
    name = "miopen-include",
    outs = [
        "rocm/include/miopen/miopen/config.h",
        "rocm/include/miopen/miopen/export.h",
        "rocm/include/miopen/miopen/miopen.h",
        "rocm/include/miopen/miopen/version.h",
        "rocm/include/miopen/miopen_kernel_includes.h",
        "rocm/include/miopen/miopen_kernels.h",
    ],
    cmd = """cp -rLf "/opt/rocm/miopen/include/." "$(@D)/rocm/include/miopen/" """,
)

genrule(
    name = "rccl-include",
    outs = [
        "rocm/include/rccl/rccl.h",
    ],
    cmd = """cp -rLf "/opt/rocm/rccl/include/." "$(@D)/" """,
)

genrule(
    name = "rocm-lib",
    outs = [
        "rocm/lib/libhip_hcc.so",
        "rocm/lib/librocblas.so",
        "rocm/lib/librocfft.so",
        "rocm/lib/libhiprand.so",
        "rocm/lib/libMIOpen.so",
        "rocm/lib/librccl.so",
    ],
    cmd = """cp -f "/opt/rocm/hip/lib/libhip_hcc.so" "$(location rocm/lib/libhip_hcc.so)" && \
cp -f "/opt/rocm/rocblas/lib/librocblas.so.0.1" "$(location rocm/lib/librocblas.so)" && \
cp -f "/opt/rocm/rocfft/lib/librocfft.so.0.1" "$(location rocm/lib/librocfft.so)" && \
cp -f "/opt/rocm/hiprand/lib/libhiprand.so.1.1" "$(location rocm/lib/libhiprand.so)" && \
cp -f "/opt/rocm/miopen/lib/libMIOpen.so.1" "$(location rocm/lib/libMIOpen.so)" && \
cp -f "/opt/rocm/rccl/lib/librccl.so" "$(location rocm/lib/librccl.so)" """,
)
