{
  "version": 4,
  "cmakeMinimumRequired": {
    "major": 3,
    "minor": 23,
    "patch": 0
  },
  "configurePresets": [
    {
      "name": "default",
      "displayName": "Default Config",
      "description": "Default build using Ninja generator",
      "generator": "Ninja",
      "binaryDir": "${sourceDir}/out/build/${presetName}",
      "cacheVariables": {
        "CMAKE_BUILD_TYPE": "RelWithDebInfo",
        "CMAKE_INSTALL_PREFIX": "${sourceDir}/out/install/${presetName}"
      }
    },
    {
      "name": "shared",
      "displayName": "Shared Config",
      "inherits": "default",
      "cacheVariables": {
        "adplug_BUILD_SHARED_LIBS": true
      }
    },
    {
      "name": "windows-base",
      "hidden": true,
      "inherits": "default",
      "displayName": "Windows Static",
      "description": "Default Windows static library build",
      "binaryDir": "${sourceDir}/out/build/${presetName}",
      "vendor": {
        "microsoft.com/VisualStudioSettings/CMake/1.0": {
          "hostOS": [
            "Windows"
          ]
        }
      }
    },
    {
      "name": "windows-shared-base",
      "hidden": true,
      "inherits": "shared",
      "displayName": "Windows Shared",
      "description": "Default Windows shared library build",
      "binaryDir": "${sourceDir}/out/build/${presetName}",
      "vendor": {
        "microsoft.com/VisualStudioSettings/CMake/1.0": {
          "hostOS": [
            "Windows"
          ]
        }
      }
    },
    {
      "name": "windows-x64",
      "inherits": "windows-base",
      "displayName": "Windows x64 Static Release",
      "architecture": {
        "value": "x64",
        "strategy": "external"
      }
    },
    {
      "name": "windows-shared-x64",
      "inherits": "windows-shared-base",
      "displayName": "Windows x64 Shared Release",
      "architecture": {
        "value": "x64",
        "strategy": "external"
      }
    },
    {
      "name": "windows-x64-debug",
      "inherits": "windows-x64",
      "displayName": "Windows x64 Debug",
      "cacheVariables": {
        "CMAKE_BUILD_TYPE": "Debug"
      }
    },
    {
      "name": "windows-arm64",
      "inherits": "windows-base",
      "displayName": "Windows arm64 Static Release",
      "architecture": {
        "value": "arm64",
        "strategy": "external"
      }
    },
    {
      "name": "windows-shared-arm64",
      "inherits": "windows-shared-base",
      "displayName": "Windows arm64 Shared Release",
      "architecture": {
        "value": "arm64",
        "strategy": "external"
      }
    },
    {
      "name": "windows-arm64-debug",
      "inherits": "windows-arm64",
      "displayName": "Windows arm64 Debug",
      "cacheVariables": {
        "CMAKE_BUILD_TYPE": "Debug"
      }
    },
    {
      "name": "windows-x86",
      "inherits": "windows-base",
      "displayName": "Windows x86 Release",
      "architecture": {
        "value": "x86",
        "strategy": "external"
      }
    },
    {
      "name": "windows-x86-debug",
      "displayName": "Windows x86 Debug",
      "inherits": "windows-x86",
      "cacheVariables": {
        "CMAKE_BUILD_TYPE": "Debug"
      }
    },
    {
      "name": "windows-clang-x64",
      "inherits": "windows-base",
      "displayName": "Windows Clang x64 Release",
      "cacheVariables": {
        "CMAKE_C_COMPILER": "clang",
        "CMAKE_CXX_COMPILER": "clang++"
      },
      "architecture": {
        "value": "x64",
        "strategy": "external"
      },
      "vendor": {
        "microsoft.com/VisualStudioSettings/CMake/1.0": {
          "intelliSenseMode": "windows-clang-x64"
        }
      }
    },
    {
      "name": "windows-clang-x64-debug",
      "inherits": "windows-clang-x64",
      "displayName": "Windows Clang x64 Debug",
      "cacheVariables": {
        "CMAKE_BUILD_TYPE": "Debug"
      }
    },
    {
      "name": "linux-base",
      "inherits": "default",
      "displayName": "Linux Static Release",
      "vendor": {
        "microsoft.com/VisualStudioSettings/CMake/1.0": {
          "hostOS": [ "Linux" ]
        },
        "microsoft.com/VisualStudioRemoteSettings/CMake/1.0": {
          "sourceDir": "$env{HOME}/.vs/$ms{projectDirName}"
        }
      }
    },
    {
      "name": "linux-shared-base",
      "inherits": "shared",
      "displayName": "Linux Shared Release",
      "vendor": {
        "microsoft.com/VisualStudioSettings/CMake/1.0": {
          "hostOS": [ "Linux" ]
        },
        "microsoft.com/VisualStudioRemoteSettings/CMake/1.0": {
          "sourceDir": "$env{HOME}/.vs/$ms{projectDirName}"
        }
      }
    },
    {
      "name": "linux-debug",
      "inherits": "linux-base",
      "displayName": "Linux Debug",
      "cacheVariables": {
        "CMAKE_BUILD_TYPE": "Debug"
      }
    }
  ],
  "buildPresets": [
    {
      "name": "default",
      "configurePreset": "default"
    },
    {
      "name": "shared",
      "configurePreset": "shared"
    }
  ],
  "testPresets": [
    {
      "name": "default",
      "configurePreset": "default",
      "output": { "outputOnFailure": true },
      "execution": { "noTestsAction": "error" }
    },
    {
      "name": "shared",
      "configurePreset": "shared",
      "output": { "outputOnFailure": true },
      "execution": { "noTestsAction": "error", "stopOnFailure": true }
    }
  ]
}
