{
  "version": 3,
  "cmakeMinimumRequired": {
    "major": 3,
    "minor": 0,
    "patch": 0
  },
  "configurePresets": [
    {
      "name": "develop",
      "displayName": "development",
      "description": "Enable all experimental features. Do not use plugins, compile everything built-in.",
      "cacheVariables": {
        "CMAKE_BUILD_TYPE": "Debug",
        "BUILD_SHARED_LIBS": "ON",
        "BUILD_TESTING" : "ON",
        "ENABLE_EXPERIMENTAL_FEATURES" : "ON",
        "CMAKE_COMPILE_WARNING_AS_ERROR" : "OFF",

        "ENABLE_PLUGIN_LOADING" : "OFF",
        "WITH_AOM_DECODER" : "ON",
        "WITH_AOM_DECODER_PLUGIN" : "OFF",
        "WITH_AOM_ENCODER" : "ON",
        "WITH_AOM_ENCODER_PLUGIN" : "OFF",
        "WITH_DAV1D" : "ON",
        "WITH_DAV1D_PLUGIN" : "OFF",
        "ENABLE_EXPERIMENTAL_MINI_FORMAT" : "ON",
        "WITH_LIBDE265" : "ON",
        "WITH_LIBDE265_PLUGIN" : "OFF",
        "WITH_RAV1E" : "ON",
        "WITH_RAV1E_PLUGIN" : "OFF",
        "WITH_SvtEnc" : "ON",
        "WITH_SvtEnc_PLUGIN" : "OFF",
        "WITH_X265" : "ON",
        "WITH_X265_PLUGIN" : "OFF",
        "WITH_JPEG_DECODER" : "ON",
        "WITH_JPEG_DECODER_PLUGIN" : "OFF",
        "WITH_JPEG_ENCODER" : "ON",
        "WITH_JPEG_ENCODER_PLUGIN" : "OFF",
        "WITH_UNCOMPRESSED_CODEC" : "ON",
        "WITH_KVAZAAR" : "ON",
        "WITH_KVAZAAR_PLUGIN" : "OFF",
        "WITH_OpenJPEG_DECODER" : "ON",
        "WITH_OpenJPEG_DECODER_PLUGIN" : "OFF",
        "WITH_OpenJPEG_ENCODER" : "ON",
        "WITH_OpenJPEG_ENCODER_PLUGIN" : "OFF",
        "WITH_FFMPEG_DECODER" : "ON",
        "WITH_FFMPEG_DECODER_PLUGIN" : "OFF",
        "WITH_OpenH264_DECODER" : "ON",
        "WITH_OpenH264_DECODER_PLUGIN" : "OFF",
        "WITH_UVG266" : "ON",
        "WITH_UVG266_PLUGIN" : "OFF",
        "WITH_VVDEC" : "ON",
        "WITH_VVDEC_PLUGIN" : "OFF",
        "WITH_VVENC" : "ON",
        "WITH_VVENC_PLUGIN" : "OFF",

        "WITH_REDUCED_VISIBILITY" : "OFF",
        "WITH_HEADER_COMPRESSION" : "ON",
        "WITH_LIBSHARPYUV" : "ON",
        "WITH_EXAMPLES": "ON",
        "WITH_FUZZERS": "OFF"
      }
    },
    {
      "name": "release",
      "displayName": "Standard release build",
      "description": "Recommended parameters for a release build.",
      "cacheVariables": {
        "CMAKE_BUILD_TYPE": "Release",
        "BUILD_SHARED_LIBS": "ON",
        "BUILD_TESTING" : "OFF",
        "ENABLE_EXPERIMENTAL_FEATURES" : "OFF",
        "CMAKE_COMPILE_WARNING_AS_ERROR" : "OFF",

        "ENABLE_PLUGIN_LOADING" : "ON",
        "WITH_AOM_DECODER" : "ON",
        "WITH_AOM_DECODER_PLUGIN" : "ON",
        "WITH_AOM_ENCODER" : "ON",
        "WITH_AOM_ENCODER_PLUGIN" : "ON",
        "WITH_DAV1D" : "ON",
        "WITH_DAV1D_PLUGIN" : "ON",
        "WITH_LIBDE265" : "ON",
        "WITH_LIBDE265_PLUGIN" : "ON",
        "WITH_RAV1E" : "ON",
        "WITH_RAV1E_PLUGIN" : "ON",
        "WITH_SvtEnc" : "ON",
        "WITH_SvtEnc_PLUGIN" : "ON",
        "WITH_X265" : "ON",
        "WITH_X265_PLUGIN" : "ON",
        "WITH_JPEG_DECODER" : "ON",
        "WITH_JPEG_DECODER_PLUGIN" : "ON",
        "WITH_JPEG_ENCODER" : "ON",
        "WITH_JPEG_ENCODER_PLUGIN" : "ON",
        "WITH_UNCOMPRESSED_CODEC" : "ON",
        "WITH_KVAZAAR" : "ON",
        "WITH_KVAZAAR_PLUGIN" : "ON",
        "WITH_OpenJPEG_DECODER" : "ON",
        "WITH_OpenJPEG_DECODER_PLUGIN" : "ON",
        "WITH_OpenJPEG_ENCODER" : "ON",
        "WITH_OpenJPEG_ENCODER_PLUGIN" : "ON",
        "WITH_OPENJPH_ENCODER" : "ON",
        "WITH_FFMPEG_DECODER" : "ON",
        "WITH_FFMPEG_DECODER_PLUGIN" : "ON",
        "WITH_OpenH264_DECODER" : "ON",
        "WITH_OpenH264_DECODER_PLUGIN" : "ON",
        "WITH_UVG266" : "ON",
        "WITH_UVG266_PLUGIN" : "ON",
        "WITH_VVDEC" : "ON",
        "WITH_VVDEC_PLUGIN" : "ON",
        "WITH_VVENC" : "ON",
        "WITH_VVENC_PLUGIN" : "ON",

        "WITH_REDUCED_VISIBILITY" : "ON",
        "WITH_HEADER_COMPRESSION" : "ON",
        "WITH_LIBSHARPYUV" : "ON",
        "WITH_EXAMPLES": "ON",
        "WITH_FUZZERS": "OFF"
      }
    },
    {
      "name": "release-noplugins",
      "displayName": "Release build without plugins",
      "description": "Release without plugins with minimal configuration for HEIC and AVIF.",
      "cacheVariables": {
        "CMAKE_BUILD_TYPE": "Release",
        "BUILD_SHARED_LIBS": "ON",
        "BUILD_TESTING" : "OFF",
        "ENABLE_EXPERIMENTAL_FEATURES" : "OFF",
        "CMAKE_COMPILE_WARNING_AS_ERROR" : "OFF",

        "ENABLE_PLUGIN_LOADING" : "OFF",
        "WITH_AOM_DECODER" : "ON",
        "WITH_AOM_ENCODER" : "ON",
        "WITH_DAV1D" : "OFF",
        "WITH_LIBDE265" : "ON",
        "WITH_RAV1E" : "OFF",
        "WITH_SvtEnc" : "OFF",
        "WITH_X265" : "ON",
        "WITH_JPEG_DECODER" : "OFF",
        "WITH_JPEG_ENCODER" : "OFF",
        "WITH_UNCOMPRESSED_CODEC" : "OFF",
        "WITH_KVAZAAR" : "OFF",
        "WITH_OpenJPEG_DECODER" : "OFF",
        "WITH_OpenJPEG_ENCODER" : "OFF",
        "WITH_FFMPEG_DECODER" : "OFF",
        "WITH_OpenH264_DECODER" : "OFF",
        "WITH_UVG266" : "OFF",
        "WITH_VVDEC" : "OFF",
        "WITH_VVENC" : "OFF",

        "WITH_REDUCED_VISIBILITY" : "ON",
        "WITH_HEADER_COMPRESSION" : "OFF",
        "WITH_LIBSHARPYUV" : "ON",
        "WITH_EXAMPLES": "ON",
        "WITH_FUZZERS": "OFF"
      }
    },
    {
      "name": "testing",
      "displayName": "Tests",
      "description": "For running the tests",
      "cacheVariables": {
        "CMAKE_BUILD_TYPE": "Debug",
        "ENABLE_PLUGIN_LOADING" : "OFF",
        "BUILD_TESTING" : "ON",
        "ENABLE_EXPERIMENTAL_FEATURES" : "ON",
        "CMAKE_COMPILE_WARNING_AS_ERROR" : "ON",
        "WITH_REDUCED_VISIBILITY" : "OFF",
        "WITH_UNCOMPRESSED_CODEC" : "ON"
      }
    },
    {
      "name": "fuzzing",
      "inherits": "release",
      "displayName": "Fuzzing",
      "description": "For running the fuzzers",
      "cacheVariables": {
        "CMAKE_BUILD_TYPE": "Debug",
        "BUILD_SHARED_LIBS": "OFF",
        "BUILD_TESTING" : "OFF",
        "ENABLE_EXPERIMENTAL_FEATURES" : "ON",
        "CMAKE_COMPILE_WARNING_AS_ERROR" : "ON",
        "WITH_FUZZERS" : "ON",
        "WITH_EXAMPLES" : "OFF",
        "ENABLE_PLUGIN_LOADING" : "OFF",
        "WITH_REDUCED_VISIBILITY" : "OFF"
      }
    }
  ]
}