{
  "version": 3,
  "configurePresets": [
    {
      "name": "default",
      "binaryDir": "${sourceDir}/../../build/mlx",
      "installDir": "${sourceDir}/../../dist",
      "cacheVariables": {
        "CMAKE_BUILD_TYPE": "Release",
        "CMAKE_MSVC_RUNTIME_LIBRARY": "MultiThreaded",
        "OLLAMA_SOURCE_DIR": "${sourceDir}/../.."
      }
    },
    {
      "name": "mlx_cuda_v13_base",
      "hidden": true,
      "inherits": [ "default" ],
      "cacheVariables": {
        "CMAKE_CUDA_FLAGS": "-t 2",
        "OLLAMA_RUNNER_DIR": "mlx_cuda_v13"
      }
    },
    {
      "name": "mlx_cuda_v13_linux",
      "inherits": [ "mlx_cuda_v13_base" ],
      "binaryDir": "${sourceDir}/../../build/mlx_cuda_v13",
      "cacheVariables": {
        "MLX_CUDA_ARCHITECTURES": "75-virtual;80-virtual;86-virtual;89-virtual;90-virtual;90a-virtual;100-virtual;103-virtual;110-virtual;120-virtual;121-virtual"
      }
    },
    {
      "name": "mlx_cuda_v13_windows",
      "inherits": [ "mlx_cuda_v13_base" ],
      "binaryDir": "${sourceDir}/../../build/mlx_cuda_v13",
      "cacheVariables": {
        "MLX_CUDA_ARCHITECTURES": "75-virtual;80-virtual;86-virtual;89-virtual;90-virtual;90a-virtual;100-virtual;103-virtual;110-virtual;120-virtual;121-virtual"
      }
    },
    {
      "name": "mlx_cuda_v13_user_arch",
      "inherits": [ "mlx_cuda_v13_base" ],
      "binaryDir": "${sourceDir}/../../build/mlx_cuda_v13"
    },
    {
      "name": "mlx_metal_v3",
      "inherits": [ "default" ],
      "binaryDir": "${sourceDir}/../../build/metal-v3",
      "cacheVariables": {
        "CMAKE_OSX_DEPLOYMENT_TARGET": "14.0",
        "OLLAMA_RUNNER_DIR": "mlx_metal_v3"
      }
    },
    {
      "name": "mlx_metal_v4",
      "inherits": [ "default" ],
      "binaryDir": "${sourceDir}/../../build/metal-v4",
      "cacheVariables": {
        "CMAKE_OSX_DEPLOYMENT_TARGET": "26.0",
        "OLLAMA_RUNNER_DIR": "mlx_metal_v4"
      }
    }
  ],
  "buildPresets": [
    {
      "name": "mlx_cuda_v13_linux",
      "configurePreset": "mlx_cuda_v13_linux",
      "targets": [ "mlx", "mlxc" ]
    },
    {
      "name": "mlx_cuda_v13_windows",
      "configurePreset": "mlx_cuda_v13_windows",
      "targets": [ "mlx", "mlxc" ]
    },
    {
      "name": "mlx_cuda_v13_user_arch",
      "configurePreset": "mlx_cuda_v13_user_arch",
      "targets": [ "mlx", "mlxc" ]
    },
    {
      "name": "mlx_metal_v3",
      "configurePreset": "mlx_metal_v3",
      "targets": [ "mlx", "mlxc" ]
    },
    {
      "name": "mlx_metal_v4",
      "configurePreset": "mlx_metal_v4",
      "targets": [ "mlx", "mlxc" ]
    }
  ]
}
