{
  "version": 10,
  "cmakeMinimumRequired": {
    "major": 3,
    "minor": 22
  },
  "configurePresets": [
    {
      "name": "debug@firmware",
      "description": "Firmware Debug Build",
      "generator": "Ninja",
      "cacheVariables": {
        "CMAKE_TOOLCHAIN_FILE": "toolchain/arm-none-eabi-stm32f411ceu6-toolchain.cmake",
        "CMAKE_BUILD_TYPE": "Debug"
      },
      "binaryDir": "build/debug@firmware"
    },
    {
      "name": "release@firmware",
      "description": "Firmware Release Build",
      "generator": "Ninja",
      "cacheVariables": {
        "CMAKE_TOOLCHAIN_FILE": "toolchain/arm-none-eabi-stm32f411ceu6-toolchain.cmake",
        "CMAKE_BUILD_TYPE": "Release"
      },
      "binaryDir": "build/release@firmware"
    },
    {
      "name": "minrelease@firmware",
      "description": "Firmware Minimized Release Build",
      "inherits": ["release@firmware"],
      "cacheVariables": {
        "CMAKE_BUILD_TYPE": "MinSizeRel"
      },
      "binaryDir": "build/minrelease@firmware"
    },
    {
      "name": "debug@tests",
      "description": "UnitTests Debug Build",
      "generator": "Ninja",
      "cacheVariables": {
        "ENABLE_UNITTESTS": "ON"
      },
      "binaryDir": "build/debug@tests"
    }
  ],
  "buildPresets": [
    {
      "name": "build-debug",
      "description": "Builds the debugging firmware",
      "cleanFirst": false,
      "configurePreset": "debug@firmware",
      "targets": [
        "FloatPUMP.elf"
      ]
    },
    {
      "name": "build-release",
      "description": "Builds the normal release firmware",
      "cleanFirst": true,
      "configurePreset": "minrelease@firmware",
      "targets": [
        "FloatPUMP.elf"
      ]
    },
    {
      "name": "build-tests",
      "description": "Creates a debug build of all tests",
      "configurePreset": "debug@tests",
      "targets": [
        "testtests"
      ]
    }
  ]
}