CMakePresets.json 4.91 KB
{
  "version": 3,
  "cmakeMinimumRequired": {
    "major": 3,
    "minor": 19,
    "patch": 0
  },
  "configurePresets": [
    {
      "name": "base-config",
      "hidden": true,
      "description": "Common base settings",
      "binaryDir": "${sourceDir}/cmake-build-${presetName}",
      "cacheVariables": {
        "CMAKE_EXPORT_COMPILE_COMMANDS": "ON"
      }
    },
    {
      "name": "base-debug",
      "hidden": true,
      "inherits": "base-config",
      "description": "Base settings for debug builds",
      "cacheVariables": {
        "CMAKE_BUILD_TYPE": "Debug",
        "BUILD_SHARED_LIBS": "OFF"
      }
    },
    {
      "name": "base-unix",
      "hidden": true,
      "inherits": "base-config",
      "description": "Base settings for Linux & macOS",
      "condition": {
        "type": "anyOf",
        "conditions": [
          {
            "type": "equals",
            "lhs": "${hostSystemName}",
            "rhs": "Linux"
          },
          {
            "type": "equals",
            "lhs": "${hostSystemName}",
            "rhs": "Darwin"
          }
        ]
      },
      "generator": "Ninja"
    },
    {
      "name": "base-msvc",
      "hidden": true,
      "inherits": "base-config",
      "description": "Base settings for Windows using MSVC",
      "environment": {
        "TOOLCHAIN_NAME": "Visual Studio"
      },
      "condition": {
        "type": "equals",
        "lhs": "${hostSystemName}",
        "rhs": "Windows"
      }
    },
    {
      "name": "base-maintainer",
      "hidden": true,
      "displayName": "Base settings for maintainer mode",
      "description": "Unix Maintainer build",
      "inherits": "base-unix",
      "cacheVariables": {
        "MAINTAINER_MODE": "ON",
        "BUILD_STATIC_LIBS": "OFF"
      }
    },
    {
      "name": "maintainer",
      "displayName": "Maintainer",
      "description": "Unix Maintainer build",
      "inherits": "base-maintainer",
      "cacheVariables": {
        "CMAKE_BUILD_TYPE": "RelWithDebInfo"
      }
    },
    {
      "name": "maintainer-debug",
      "displayName": "Maintainer (debug)",
      "description": "Unix Maintainer build",
      "inherits": [
        "base-maintainer",
        "base-debug"
      ],
      "cacheVariables": {
        "BUILD_STATIC_LIBS": "ON"
      }
    },
    {
      "name": "maintainer-coverage",
      "displayName": "Maintainer (coverage)",
      "description": "Unix Maintainer build",
      "inherits": "maintainer-debug",
      "cacheVariables": {
        "ENABLE_COVERAGE": "ON"
      }
    },
    {
      "name": "maintainer-profile",
      "displayName": "Maintainer (profile)",
      "description": "Unix Maintainer build",
      "inherits": "maintainer-debug",
      "environment": {
        "CFLAGS": "-pg",
        "CXXFLAGS": "-pg",
        "LDFLAGS": "-pg"
      }
    },
    {
      "name": "debug",
      "displayName": "Debug",
      "description": "Debug build",
      "inherits": "base-config",
      "cacheVariables": {
        "CMAKE_BUILD_TYPE": "Debug"
      }
    },
    {
      "name": "release",
      "displayName": "Release",
      "description": "Release build",
      "inherits": "base-config",
      "cacheVariables": {
        "CMAKE_BUILD_TYPE": "Release"
      }
    },
    {
      "name": "sanitizers",
      "displayName": "Unix + clang sanitizers",
      "description": "Debug build with AddressSanitizer enabled",
      "inherits": [
        "base-unix",
        "debug"
      ],
      "environment": {
        "CFLAGS": "-fsanitize=address -fsanitize=undefined",
        "CXXFLAGS": "-fsanitize=address -fsanitize=undefined",
        "LDFLAGS": "-fsanitize=address -fsanitize=undefined",
        "CC": "clang",
        "CXX": "clang++"
      },
      "cacheVariables": {
        "MAINTAINER_MODE": "ON",
        "BUILD_SHARED_LIBS": "OFF",
        "REQUIRE_CRYPTO_OPENSSL": "ON",
        "REQUIRE_CRYPTO_GNUTLS": "ON",
        "ENABLE_QTC": "ON"
      }
    },
    {
      "name": "msvc",
      "displayName": "Windows/MSVC",
      "description": "Visual Studio release with debug info build",
      "inherits": [
        "base-msvc"
      ],
      "cacheVariables": {
        "CMAKE_BUILD_TYPE": "RelWithDebInfo",
        "BUILD_SHARED_LIBS": "OFF"
      }
    },
    {
      "name": "msvc-release",
      "displayName": "Windows/MSVC Release",
      "description": "Visual Studio release build",
      "inherits": [
        "base-msvc",
        "release"
      ]
    }
  ],
  "buildPresets": [
    {
      "name": "maintainer",
      "configurePreset": "maintainer",
      "description": "Run build for maintainer mode"
    }
  ],
  "testPresets": [
    {
      "name": "maintainer",
      "configurePreset": "maintainer",
      "description": "Run default tests for maintainer mode",
      "output": {
        "verbosity": "verbose"
      }
    },
    {
      "name": "msvc",
      "configurePreset": "msvc",
      "description": "Run default tests for msvc",
      "output": {
        "verbosity": "verbose"
      }
    }
  ]
}