{
    "version": 3,
    "configurePresets": [
        {
            "name": "linux-debug",
            "displayName": "Linux Debug",
            "hidden": true,
            "generator": "Unix Makefiles",
            "binaryDir": "${sourceDir}/build/${presetName}",
            "installDir": "${sourceDir}/build/install/${presetName}",
            "environment": {
                "MY_ENVIRONMENT_VARIABLE": "NONE",
                "PATH": "/usr/local/.cargo/bin:$penv{PATH}",
                "SCCACHE_IDLE_TIMEOUT": "11000"
            },
            "cacheVariables": {
                "CMAKE_BUILD_TYPE": "Debug",
                "CMAKE_EXPORT_COMPILE_COMMANDS": "ON",
                "BUILD_DEV": "ON",
                "CMAKE_CXX_COMPILER": "/opt/rocm/bin/hipcc",
                "CMAKE_PREFIX_PATH": "/opt/rocm",
                "CMAKE_CXX_COMPILER_LAUNCHER": "sccache",
                "CMAKE_C_COMPILER_LAUNCHER": "sccache"
            },
            "condition": {
                "type": "equals",
                "lhs": "${hostSystemName}",
                "rhs": "Linux"
            }
        },
        {
            "name": "MI355-debug",
            "displayName": "MI355 Debug",
            "inherits": "linux-debug",
            "description": "Development Environment for MI355.",
            "cacheVariables": {
                "GPU_TARGETS": "gfx950",
                "CMAKE_BUILD_TYPE": "Debug",
                "CMAKE_CXX_FLAGS": "-O0 -ggdb"
            }
        },
        {
            "name": "MI355-release",
            "displayName": "MI355 Release",
            "inherits": "linux-debug",
            "cacheVariables": {
                "GPU_TARGETS": "gfx950",
                "CMAKE_BUILD_TYPE": "Release",
                "CMAKE_CXX_FLAGS": "-O3"
            }
        },
        {
            "name": "MI300X-release",
            "displayName": "MI300X Release",
            "inherits": "linux-debug",
            "cacheVariables": {
                "GPU_TARGETS": "gfx942",
                "CMAKE_BUILD_TYPE": "Release",
                "CMAKE_CXX_FLAGS": "-O3"
            }
        },
        {
            "name": "MI250-release",
            "displayName": "MI250 Release",
            "inherits": "linux-debug",
            "cacheVariables": {
                "GPU_TARGETS": "gfx90a",
                "CMAKE_BUILD_TYPE": "Release",
                "CMAKE_CXX_FLAGS": "-O3",
                "CK_USE_FP8_ON_UNSUPPORTED_ARCH":"ON"
            }
        },
        {
            "name": "MI250-debug",
            "displayName": "MI250 Debug",
            "inherits": "linux-debug",
            "cacheVariables": {
                "GPU_TARGETS": "gfx90a",
                "CMAKE_BUILD_TYPE": "Debug",
                "CMAKE_CXX_FLAGS": "-O0 -ggdb",
                "CK_USE_FP8_ON_UNSUPPORTED_ARCH":"ON"
            }
        },
        {
            "name": "RX7800-release",
            "displayName": "RX7800 Release",
            "inherits": "linux-debug",
            "cacheVariables": {
                "GPU_TARGETS": "gfx1101",
                "DL_KERNELS": "ON",
                "CMAKE_BUILD_TYPE": "Release",
                "CMAKE_CXX_FLAGS": "-O3"
            }
        },
        {
            "name": "RX7800-debug",
            "displayName": "RX7800 Debug",
            "inherits": "linux-debug",
            "cacheVariables": {
                "GPU_TARGETS": "gfx1101",
                "DL_KERNELS": "ON",
                "CMAKE_BUILD_TYPE": "Debug",
                "CMAKE_CXX_FLAGS": "-O0 -ggdb"
            }
        }
    ],
    "buildPresets": [
        {
            "name": "Debug",
            "hidden": true,
            "configuration": "Debug"
        },
        {
            "name": "Release",
            "hidden": true,
            "configuration": "Release"
        },
        {
            "name": "MI355-debug",
            "displayName": "MI355",
            "configurePreset": "MI355-debug",
            "description": "Build Environment for MI355 Debug.",
            "inherits": [
                "Debug"
            ],
            "jobs": 128
        },
        {
            "name": "MI355-release",
            "displayName": "MI355",
            "configurePreset": "MI355-release",
            "description": "Build Environment for MI355 Release.",
            "inherits": [
                "Release"
            ],
            "jobs": 128
        },
        {
            "name": "MI300X-release",
            "displayName": "MI300X",
            "configurePreset": "MI300X-release",
            "description": "Build Environment for MI300X Release.",
            "inherits": [
                "Release"
            ],
            "jobs": 128
        },
        {
            "name": "MI250-release",
            "displayName": "MI250",
            "configurePreset": "MI250-release",
            "description": "Build Environment for MI250 Release.",
            "inherits": [
                "Release"
            ],
            "jobs": 128
        },
        {
            "name": "MI250-debug",
            "displayName": "MI250",
            "configurePreset": "MI250-debug",
            "description": "Build Environment for MI250 Debug.",
            "inherits": [
                "Debug"
            ],
            "jobs": 128
        },
        {
            "name": "RX7800-release",
            "displayName": "RX7800",
            "configurePreset": "RX7800-release",
            "description": "Build Environment for RX7800 Release.",
            "inherits": [
                "Release"
            ],
            "jobs": 128
        },
        {
            "name": "RX7800-debug",
            "displayName": "RX7800",
            "configurePreset": "RX7800-debug",
            "description": "Build Environment for RX7800 Debug.",
            "inherits": [
                "Debug"
            ],
            "jobs": 128
        }
    ]
}
