{ "version": 6, "cmakeMinimumRequired": { "major": 3, "minor": 15, "patch": 0 }, "configurePresets": [ { "name": "base", "hidden": true, "binaryDir": "${sourceDir}/build/${presetName}", "cacheVariables": { "CMAKE_EXPORT_COMPILE_COMMANDS": "ON", "MNV_BUILD_TESTS": "ON" } }, { "name": "dev-base", "hidden": true, "inherits": "base", "cacheVariables": { "MNV_DEBUG": "ON", "MNV_LEAK_CHECK": "ON" } }, { "name": "default", "displayName": "Default (huge, no interpreters)", "description": "Default build with huge feature set, no language interpreters", "inherits": "base", "cacheVariables": { "MNV_FEATURE": "huge", "MNV_GUI": "auto" } }, { "name": "minimal", "displayName": "Minimal (tiny, no extras)", "description": "Minimal build with tiny feature set", "inherits": "base", "cacheVariables": { "MNV_FEATURE": "tiny", "MNV_GUI": "none", "MNV_TERMINAL": "OFF", "MNV_CHANNEL": "OFF", "MNV_SOUND": "OFF", "MNV_GPM": "OFF", "MNV_SODIUM": "OFF" } }, { "name": "normal", "displayName": "Normal feature set", "description": "Normal feature set, no GUI, no interpreters", "inherits": "base", "cacheVariables": { "MNV_FEATURE": "normal", "MNV_GUI": "none" } }, { "name": "all-interp", "displayName": "All interpreters (dynamic)", "description": "Huge feature set with all language interpreters loaded dynamically", "inherits": "dev-base", "cacheVariables": { "MNV_FEATURE": "huge", "MNV_GUI": "auto", "MNV_LUA": "ON", "MNV_LUA_DYNAMIC": "ON", "MNV_PERL": "ON", "MNV_PERL_DYNAMIC": "ON", "MNV_PYTHON3": "ON", "MNV_PYTHON3_DYNAMIC": "ON", "MNV_RUBY": "ON", "MNV_RUBY_DYNAMIC": "ON", "MNV_TCL": "ON", "MNV_TCL_DYNAMIC": "ON" } }, { "name": "all-interp-static", "displayName": "All interpreters (static link)", "description": "Huge feature set with all interpreters linked statically", "inherits": "dev-base", "cacheVariables": { "MNV_FEATURE": "huge", "MNV_GUI": "auto", "MNV_LUA": "ON", "MNV_LUA_DYNAMIC": "OFF", "MNV_PERL": "ON", "MNV_PERL_DYNAMIC": "OFF", "MNV_PYTHON3": "ON", "MNV_PYTHON3_DYNAMIC": "OFF", "MNV_RUBY": "ON", "MNV_RUBY_DYNAMIC": "OFF", "MNV_TCL": "ON", "MNV_TCL_DYNAMIC": "OFF" } }, { "name": "lua-only", "displayName": "Lua only (dynamic)", "description": "Huge feature set with only Lua interpreter", "inherits": "dev-base", "cacheVariables": { "MNV_FEATURE": "huge", "MNV_GUI": "none", "MNV_LUA": "ON", "MNV_LUA_DYNAMIC": "ON" } }, { "name": "python3-only", "displayName": "Python3 only (dynamic)", "description": "Huge feature set with only Python3 interpreter", "inherits": "dev-base", "cacheVariables": { "MNV_FEATURE": "huge", "MNV_GUI": "none", "MNV_PYTHON3": "ON", "MNV_PYTHON3_DYNAMIC": "ON" } }, { "name": "ruby-only", "displayName": "Ruby only (dynamic)", "description": "Huge feature set with only Ruby interpreter", "inherits": "dev-base", "cacheVariables": { "MNV_FEATURE": "huge", "MNV_GUI": "none", "MNV_RUBY": "ON", "MNV_RUBY_DYNAMIC": "ON" } }, { "name": "perl-only", "displayName": "Perl only (dynamic)", "description": "Huge feature set with only Perl interpreter", "inherits": "dev-base", "cacheVariables": { "MNV_FEATURE": "huge", "MNV_GUI": "none", "MNV_PERL": "ON", "MNV_PERL_DYNAMIC": "ON" } }, { "name": "tcl-only", "displayName": "Tcl only (dynamic)", "description": "Huge feature set with only Tcl interpreter", "inherits": "dev-base", "cacheVariables": { "MNV_FEATURE": "huge", "MNV_GUI": "none", "MNV_TCL": "ON", "MNV_TCL_DYNAMIC": "ON" } }, { "name": "nogui", "displayName": "No GUI (huge)", "description": "Huge feature set without any GUI", "inherits": "base", "cacheVariables": { "MNV_FEATURE": "huge", "MNV_GUI": "none" } }, { "name": "gtk3", "displayName": "GTK3 GUI", "description": "Huge feature set with GTK3 GUI", "inherits": "base", "cacheVariables": { "MNV_FEATURE": "huge", "MNV_GUI": "gtk3" } }, { "name": "sanitize", "displayName": "Sanitizers (ASan + UBSan)", "description": "Debug build with address and undefined behavior sanitizers", "inherits": "dev-base", "cacheVariables": { "MNV_FEATURE": "huge", "MNV_GUI": "none", "MNV_SANITIZE": "ON" } }, { "name": "profile", "displayName": "Profile build", "description": "Profiling build with gprof instrumentation", "inherits": "base", "cacheVariables": { "MNV_FEATURE": "huge", "MNV_GUI": "none", "MNV_PROFILE": "ON" } }, { "name": "full-debug", "displayName": "Full debug (all interpreters + debug + leak check + profile)", "description": "Maximum debug build matching: -DMNV_LUA=ON -DMNV_PERL=ON -DMNV_PYTHON3=ON -DMNV_RUBY=ON -DMNV_TCL=ON -DMNV_DEBUG=ON -DMNV_PROFILE=ON -DMNV_LEAK_CHECK=ON", "inherits": "dev-base", "cacheVariables": { "MNV_FEATURE": "huge", "MNV_GUI": "auto", "MNV_LUA": "ON", "MNV_PERL": "ON", "MNV_PYTHON3": "ON", "MNV_RUBY": "ON", "MNV_TCL": "ON", "MNV_PROFILE": "ON" } } ], "buildPresets": [ { "name": "default", "configurePreset": "default" }, { "name": "minimal", "configurePreset": "minimal" }, { "name": "normal", "configurePreset": "normal" }, { "name": "all-interp", "configurePreset": "all-interp" }, { "name": "all-interp-static", "configurePreset": "all-interp-static" }, { "name": "lua-only", "configurePreset": "lua-only" }, { "name": "python3-only", "configurePreset": "python3-only" }, { "name": "ruby-only", "configurePreset": "ruby-only" }, { "name": "perl-only", "configurePreset": "perl-only" }, { "name": "tcl-only", "configurePreset": "tcl-only" }, { "name": "nogui", "configurePreset": "nogui" }, { "name": "gtk3", "configurePreset": "gtk3" }, { "name": "sanitize", "configurePreset": "sanitize" }, { "name": "profile", "configurePreset": "profile" }, { "name": "full-debug", "configurePreset": "full-debug" } ], "testPresets": [ { "name": "default", "configurePreset": "default", "output": { "outputOnFailure": true } }, { "name": "unit-only", "configurePreset": "default", "filter": { "exclude": { "name": "script_tests|indent_tests|syntax_tests" } }, "output": { "outputOnFailure": true } }, { "name": "all-interp", "configurePreset": "all-interp", "output": { "outputOnFailure": true } }, { "name": "full-debug", "configurePreset": "full-debug", "output": { "outputOnFailure": true } } ] }