{
  "version": 6,
  "cmakeMinimumRequired": {
    "major": 3,
    "minor": 25,
    "patch": 0
  },
  "configurePresets": [
    {
      "name": "msvc-base",
      "hidden": true,
      "generator": "Visual Studio 18 2026",
      "architecture": "x64",
      "environment": {
        "CL": "",
        "_CL_": ""
      },
      "cacheVariables": {
        "UC_BUILD_TESTS": "ON",
        "UC_BUILD_BENCHMARKS": "ON"
      }
    },
    {
      "name": "msvc-scalar",
      "inherits": "msvc-base",
      "displayName": "MSVC Release /O2 project-novec (/d2Qvec-, no AVX target)",
      "binaryDir": "${sourceDir}/out/build/msvc-scalar",
      "cacheVariables": {
        "UC_VECTOR_PROFILE": "scalar"
      }
    },
    {
      "name": "msvc-baseline",
      "inherits": "msvc-base",
      "displayName": "MSVC Release /O2 baseline auto-vectorization (no AVX flag)",
      "binaryDir": "${sourceDir}/out/build/msvc-baseline",
      "cacheVariables": {
        "UC_VECTOR_PROFILE": "baseline"
      }
    },
    {
      "name": "msvc-avx2",
      "inherits": "msvc-base",
      "displayName": "MSVC Release /O2 AVX2",
      "binaryDir": "${sourceDir}/out/build/msvc-avx2",
      "cacheVariables": {
        "UC_VECTOR_PROFILE": "avx2"
      }
    }
  ],
  "buildPresets": [
    {
      "name": "build-scalar-release",
      "configurePreset": "msvc-scalar",
      "configuration": "Release",
      "jobs": 0
    },
    {
      "name": "build-baseline-release",
      "configurePreset": "msvc-baseline",
      "configuration": "Release",
      "jobs": 0
    },
    {
      "name": "build-avx2-release",
      "configurePreset": "msvc-avx2",
      "configuration": "Release",
      "jobs": 0
    }
  ],
  "testPresets": [
    {
      "name": "test-scalar-release",
      "configurePreset": "msvc-scalar",
      "configuration": "Release",
      "output": { "outputOnFailure": true }
    },
    {
      "name": "test-baseline-release",
      "configurePreset": "msvc-baseline",
      "configuration": "Release",
      "output": { "outputOnFailure": true }
    },
    {
      "name": "test-avx2-release",
      "configurePreset": "msvc-avx2",
      "configuration": "Release",
      "output": { "outputOnFailure": true }
    }
  ]
}
