{ "defaults": { "type": ["CC", "defaults"] , "arguments_config": ["TOOLCHAIN_CONFIG"] , "base": [["@", "base", "CC", "defaults"]] , "ADD_CXXFLAGS": { "type": "let*" , "bindings": [ [ "COMPILER_FAMILY" , { "type": "lookup" , "map": { "type": "var" , "name": "TOOLCHAIN_CONFIG" , "default": {"type": "empty_map"} } , "key": "FAMILY" , "default": "unknown" } ] ] , "body": { "type": "++" , "$1": [ ["-std=c++20"] , { "type": "case" , "expr": {"type": "var", "name": "COMPILER_FAMILY"} , "case": { "gnu": [ "-Wall" , "-Wextra" , "-Wcast-qual" , "-Wconversion-null" , "-Wformat-security" , "-Wmissing-declarations" , "-Woverlength-strings" , "-Wpointer-arith" , "-Wundef" , "-Wunused-local-typedefs" , "-Wunused-result" , "-Wvarargs" , "-Wvla" , "-Wwrite-strings" , "-DNOMINMAX" ] , "msvc": [ "/W3" , "/bigobj" , "/wd4005" , "/wd4068" , "/wd4180" , "/wd4244" , "/wd4267" , "/wd4503" , "/wd4800" , "/DNOMINMAX" , "/DWIN32_LEAN_AND_MEAN" , "/D_CRT_SECURE_NO_WARNINGS" , "/D_SCL_SECURE_NO_WARNINGS" , "/D_ENABLE_EXTENDED_ALIGNED_STORAGE" , "-ignore:4221" ] , "clang-cl": [ "/W3" , "/DNOMINMAX" , "/DWIN32_LEAN_AND_MEAN" , "/D_CRT_SECURE_NO_WARNINGS" , "/D_SCL_SECURE_NO_WARNINGS" , "/D_ENABLE_EXTENDED_ALIGNED_STORAGE" ] , "clang": [ "-Wall" , "-Wextra" , "-Wcast-qual" , "-Wconversion" , "-Wfloat-overflow-conversion" , "-Wfloat-zero-conversion" , "-Wfor-loop-analysis" , "-Wformat-security" , "-Wgnu-redeclared-enum" , "-Winfinite-recursion" , "-Winvalid-constexpr" , "-Wliteral-conversion" , "-Wmissing-declarations" , "-Woverlength-strings" , "-Wpointer-arith" , "-Wself-assign" , "-Wshadow-all" , "-Wshorten-64-to-32" , "-Wstring-conversion" , "-Wtautological-overlap-compare" , "-Wtautological-unsigned-zero-compare" , "-Wundef" , "-Wuninitialized" , "-Wunreachable-code" , "-Wunused-comparison" , "-Wunused-local-typedefs" , "-Wunused-result" , "-Wvla" , "-Wwrite-strings" , "-Wno-float-conversion" , "-Wno-implicit-float-conversion" , "-Wno-implicit-int-float-conversion" , "-Wno-sign-conversion" , "-Wno-unknown-warning-option" , "-DNOMINMAX" ] } , "default": [ "-Wall" , "-Wextra" , "-Wcast-qual" , "-Wconversion-null" , "-Wformat-security" , "-Wmissing-declarations" , "-Woverlength-strings" , "-Wpointer-arith" , "-Wundef" , "-Wunused-local-typedefs" , "-Wunused-result" , "-Wvarargs" , "-Wvla" , "-Wwrite-strings" , "-DNOMINMAX" ] } ] } } } }