• CMakePresets.json
  • {
      "version": 3,
      "cmakeMinimumRequired": { "major": 3, "minor": 25, "patch": 0 },
    
      "configurePresets": [
        {
          "name": "ninja-debug",
          "displayName": "Ninja Debug",
          "description": "Configure with Ninja in Debug mode and export compile commands",
          "generator": "Ninja",
          "binaryDir": "${sourceDir}/build/ninja-debug",
          "cacheVariables": {
            "CMAKE_BUILD_TYPE": "Debug",
            "CMAKE_EXPORT_COMPILE_COMMANDS": "ON"
          }
        },
    
        {
          "name": "ninja-release",
          "displayName": "Ninja Release",
          "description": "Configure with Ninja in Release mode",
          "generator": "Ninja",
          "binaryDir": "${sourceDir}/build/ninja-release",
          "cacheVariables": {
            "CMAKE_BUILD_TYPE": "Release"
          }
        },
    
        {
          "name": "ninja-builtins",
          "displayName": "Ninja Debug (all externals = BUILTIN)",
          "inherits": "ninja-debug",
          "binaryDir": "${sourceDir}/build/ninja-debug-builtins",
          "cacheVariables": {
            "PNG": "BUILTIN",
            "FLAC": "BUILTIN",
            "FREETYPE": "BUILTIN",
            "VORBIS": "BUILTIN",
            "FONTCONFIG": "BUILTIN"
          }
        },
    
        {
          "name": "ninja-system",
          "displayName": "Ninja Debug (all externals = SYSTEM)",
          "inherits": "ninja-debug",
          "binaryDir": "${sourceDir}/build/ninja-debug-system",
          "cacheVariables": {
            "PNG": "SYSTEM",
            "FLAC": "SYSTEM",
            "FREETYPE": "SYSTEM",
            "VORBIS": "SYSTEM",
            "FONTCONFIG": "SYSTEM"
          }
        },
    
        {
          "name": "ninja-builtins-unit-tests",
          "displayName": "Ninja Debug (BUILTIN + unit tests)",
          "inherits": "ninja-builtins",
          "binaryDir": "${sourceDir}/build/ninja-debug-builtins-unit-tests",
          "cacheVariables": {
            "TESTS": "ON",
            "UNIT_TESTS": "ON"
          }
        },
    
        {
          "name": "ninja-system-unit-tests",
          "displayName": "Ninja Debug (SYSTEM + unit tests)",
          "inherits": "ninja-system",
          "binaryDir": "${sourceDir}/build/ninja-debug-system-unit-tests",
          "cacheVariables": {
            "TESTS": "ON",
            "UNIT_TESTS": "ON"
          }
        },
    
        {
          "name": "ninja-manual-tests",
          "displayName": "Ninja Debug (turn on all manual tests)",
          "inherits": "ninja-debug",
          "binaryDir": "${sourceDir}/build/ninja-debug-manual-tests",
          "cacheVariables": {
            "TESTS": "ON",
            "MANUAL_TEST_AdvancedText": "ON",
            "MANUAL_TEST_Animation": "ON",
            "MANUAL_TEST_Clipboard": "ON",
            "MANUAL_TEST_CGI": "ON",
            "MANUAL_TEST_DnD": "ON",
            "MANUAL_TEST_Filesystem": "ON",
            "MANUAL_TEST_FreeType": "ON",
            "MANUAL_TEST_Gscript": "ON",
            "MANUAL_TEST_Generic": "ON",
            "MANUAL_TEST_Audio": "ON",
            "MANUAL_TEST_PDParser": "ON",
            "MANUAL_TEST_Scene": "ON",
            "MANUAL_TEST_Window": "ON",
            "MANUAL_TEST_Font": "ON",
            "MANUAL_TEST_HTMLRenderer": "ON",
            "MANUAL_TEST_UI_Component": "ON",
            "MANUAL_TEST_UI_Generate": "ON",
            "MANUAL_TEST_UI_WidgetTest": "ON"
          }
        },
    
        {
          "name": "ninja-builtins-with-manuals",
          "displayName": "Ninja Debug (BUILTIN + manual tests)",
          "inherits": "ninja-builtins",
          "binaryDir": "${sourceDir}/build/ninja-debug-builtins-with-manuals",
          "cacheVariables": {
            "TESTS": "ON",
            "MANUAL_TEST_AdvancedText": "ON",
            "MANUAL_TEST_Animation": "ON",
            "MANUAL_TEST_Clipboard": "ON",
            "MANUAL_TEST_CGI": "ON",
            "MANUAL_TEST_DnD": "ON",
            "MANUAL_TEST_Filesystem": "ON",
            "MANUAL_TEST_FreeType": "ON",
            "MANUAL_TEST_Gscript": "ON",
            "MANUAL_TEST_Generic": "ON",
            "MANUAL_TEST_Audio": "ON",
            "MANUAL_TEST_PDParser": "ON",
            "MANUAL_TEST_Scene": "ON",
            "MANUAL_TEST_Window": "ON",
            "MANUAL_TEST_Font": "ON",
            "MANUAL_TEST_HTMLRenderer": "ON",
            "MANUAL_TEST_UI_Component": "ON",
            "MANUAL_TEST_UI_Generate": "ON",
            "MANUAL_TEST_UI_WidgetTest": "ON"
          }
        },
        {
          "name": "vs-2022",
          "displayName": "Visual Studio 17 2022 (x64)",
          "description": "Multi-config Visual Studio generator (x64)",
          "generator": "Visual Studio 17 2022",
          "architecture": "x64",
          "binaryDir": "${sourceDir}/build/vs"
        },
        {
          "name": "vs-2022-builtins",
          "displayName": "Visual Studio (all externals = BUILTIN)",
          "inherits": "vs-2022",
          "binaryDir": "${sourceDir}/build/vs-builtins",
          "cacheVariables": {
            "PNG": "BUILTIN",
            "FLAC": "BUILTIN",
            "FREETYPE": "BUILTIN",
            "VORBIS": "BUILTIN",
            "FONTCONFIG": "BUILTIN"
          }
        },
        {
          "name": "vs-2022-system",
          "displayName": "Visual Studio (all externals = SYSTEM)",
          "inherits": "vs-2022",
          "binaryDir": "${sourceDir}/build/vs-system",
          "cacheVariables": {
            "PNG": "SYSTEM",
            "FLAC": "SYSTEM",
            "FREETYPE": "SYSTEM",
            "VORBIS": "SYSTEM",
            "FONTCONFIG": "SYSTEM"
          }
        },
        {
          "name": "vs-2022-builtins-unit-tests",
          "displayName": "Visual Studio (BUILTIN + unit tests)",
          "inherits": "vs-2022-builtins",
          "binaryDir": "${sourceDir}/build/vs-builtins-unit-tests",
          "cacheVariables": {
            "TESTS": "ON",
            "UNIT_TESTS": "ON"
          }
        },
        {
          "name": "vs-2022-system-unit-tests",
          "displayName": "Visual Studio (SYSTEM + unit tests)",
          "inherits": "vs-2022-system",
          "binaryDir": "${sourceDir}/build/vs-system-unit-tests",
          "cacheVariables": {
            "TESTS": "ON",
            "UNIT_TESTS": "ON"
          }
        },
        {
          "name": "vs-2022-manual-tests",
          "displayName": "Visual Studio (turn on all manual tests)",
          "inherits": "vs-2022",
          "binaryDir": "${sourceDir}/build/vs-manual-tests",
          "cacheVariables": {
            "TESTS": "ON",
            "MANUAL_TEST_AdvancedText": "ON",
            "MANUAL_TEST_Animation": "ON",
            "MANUAL_TEST_Clipboard": "ON",
            "MANUAL_TEST_CGI": "ON",
            "MANUAL_TEST_DnD": "ON",
            "MANUAL_TEST_Filesystem": "ON",
            "MANUAL_TEST_FreeType": "ON",
            "MANUAL_TEST_Gscript": "ON",
            "MANUAL_TEST_Generic": "ON",
            "MANUAL_TEST_Audio": "ON",
            "MANUAL_TEST_PDParser": "ON",
            "MANUAL_TEST_Scene": "ON",
            "MANUAL_TEST_Window": "ON",
            "MANUAL_TEST_Font": "ON",
            "MANUAL_TEST_HTMLRenderer": "ON",
            "MANUAL_TEST_UI_Component": "ON",
            "MANUAL_TEST_UI_Generate": "ON",
            "MANUAL_TEST_UI_WidgetTest": "ON"
          }
        },
        {
          "name": "vs-2022-builtins-with-manuals",
          "displayName": "Visual Studio (BUILTIN + manual tests)",
          "inherits": "vs-2022-builtins",
          "binaryDir": "${sourceDir}/build/vs-builtins-with-manuals",
          "cacheVariables": {
            "TESTS": "ON",
            "MANUAL_TEST_AdvancedText": "ON",
            "MANUAL_TEST_Animation": "ON",
            "MANUAL_TEST_Clipboard": "ON",
            "MANUAL_TEST_CGI": "ON",
            "MANUAL_TEST_DnD": "ON",
            "MANUAL_TEST_Filesystem": "ON",
            "MANUAL_TEST_FreeType": "ON",
            "MANUAL_TEST_Gscript": "ON",
            "MANUAL_TEST_Generic": "ON",
            "MANUAL_TEST_Audio": "ON",
            "MANUAL_TEST_PDParser": "ON",
            "MANUAL_TEST_Scene": "ON",
            "MANUAL_TEST_Window": "ON",
            "MANUAL_TEST_Font": "ON",
            "MANUAL_TEST_HTMLRenderer": "ON",
            "MANUAL_TEST_UI_Component": "ON",
            "MANUAL_TEST_UI_Generate": "ON",
            "MANUAL_TEST_UI_WidgetTest": "ON"
          }
        }
      ],
    
      "buildPresets": [
        { "name": "build-ninja-debug", "configurePreset": "ninja-debug" },
        { "name": "build-ninja-release", "configurePreset": "ninja-release" },
        { "name": "build-ninja-builtins", "configurePreset": "ninja-builtins" },
        { "name": "build-ninja-system", "configurePreset": "ninja-system" },
        { "name": "build-ninja-builtins-unit-tests", "configurePreset": "ninja-builtins-unit-tests" },
        { "name": "build-ninja-system-unit-tests", "configurePreset": "ninja-system-unit-tests" },
        { "name": "build-ninja-manual-tests", "configurePreset": "ninja-manual-tests" },
        { "name": "build-ninja-builtins-with-manuals", "configurePreset": "ninja-builtins-with-manuals" },
        { "name": "build-vs-debug", "configurePreset": "vs-2022", "configuration": "Debug" },
        { "name": "build-vs-builtins", "configurePreset": "vs-2022-builtins", "configuration": "Debug" },
        { "name": "build-vs-system", "configurePreset": "vs-2022-system", "configuration": "Debug" },
        { "name": "build-vs-builtins-unit-tests", "configurePreset": "vs-2022-builtins-unit-tests", "configuration": "Debug" },
        { "name": "build-vs-system-unit-tests", "configurePreset": "vs-2022-system-unit-tests", "configuration": "Debug" },
        { "name": "build-vs-manual-tests", "configurePreset": "vs-2022-manual-tests", "configuration": "Debug" },
        { "name": "build-vs-builtins-with-manuals", "configurePreset": "vs-2022-builtins-with-manuals", "configuration": "Debug" }
      ],
    
      "testPresets": [
        { "name": "run-unit-tests-builtins", "configurePreset": "ninja-builtins-unit-tests" },
        { "name": "run-unit-tests-system", "configurePreset": "ninja-system-unit-tests" },
        { "name": "run-manual-tests", "configurePreset": "ninja-manual-tests" },
        { "name": "run-unit-tests-vs-builtins", "configurePreset": "vs-2022-builtins-unit-tests" },
        { "name": "run-unit-tests-vs-system", "configurePreset": "vs-2022-system-unit-tests" },
        { "name": "run-manual-tests-vs", "configurePreset": "vs-2022-manual-tests" }
      ]
    }