{ "defaults": { "type": ["CC", "defaults"] , "arguments_config": ["DEBUG", "OS", "ARCH", "TARGET_ARCH", "TOOLCHAIN_CONFIG"] , "base": [["@", "base", "CC", "defaults"]] , "ADD_CFLAGS": { "type": "let*" , "bindings": [ [ "COMPILER_FAMILY" , { "type": "lookup" , "map": { "type": "var" , "name": "TOOLCHAIN_CONFIG" , "default": {"type": "empty_map"} } , "key": "FAMILY" , "default": "unknown" } ] , [ "OS" , { "type": "var" , "name": "OS" , "default": {"type": "fail", "msg": "Required variable 'OS' is not set."} } ] , [ "TARGET_ARCH" , { "type": "var" , "name": "TARGET_ARCH" , "default": { "type": "var" , "name": "ARCH" , "default": {"type": "fail", "msg": "Required variable 'ARCH' is not set."} } } ] ] , "body": { "type": "++" , "$1": [ ["-std=c11"] , { "type": "case" , "expr": {"type": "var", "name": "COMPILER_FAMILY"} , "case": {"msvc": []} , "default": [ "-Wall" , "-Wextra" , "-Wno-unused-parameter" , "-Wno-sign-compare" , "-Wno-implicit-fallthrough" , "-DOSATOMIC_USE_INLINED=1" ] } , { "type": "case" , "expr": {"type": "var", "name": "COMPILER_FAMILY"} , "case": { "gnu": ["-Wno-clobbered", "-Wno-type-limits"] , "clang": ["-Wno-atomic-alignment"] } } , { "type": "if" , "cond": {"type": "var", "name": "DEBUG"} , "then": ["-D_DEBUG", "-DDEBUG"] , "else": ["-Wframe-larger-than=16384"] } , { "type": "case" , "expr": {"type": "var", "name": "OS"} , "case": { "windows": [ "-D_WIN32_WINNT=0x0600" , "-DWIN32_LEAN_AND_MEAN" , "-D_HAS_EXCEPTIONS=0" , "-DUNICODE" , "-D_UNICODE" , "-DNOMINMAX" ] } } ] } } , "ADD_CXXFLAGS": { "type": "let*" , "bindings": [ [ "COMPILER_FAMILY" , { "type": "lookup" , "map": { "type": "var" , "name": "TOOLCHAIN_CONFIG" , "default": {"type": "empty_map"} } , "key": "FAMILY" , "default": "unknown" } ] , [ "OS" , { "type": "var" , "name": "OS" , "default": {"type": "fail", "msg": "Required variable 'OS' is not set."} } ] , [ "TARGET_ARCH" , { "type": "var" , "name": "TARGET_ARCH" , "default": { "type": "var" , "name": "ARCH" , "default": {"type": "fail", "msg": "Required variable 'ARCH' is not set."} } } ] ] , "body": { "type": "++" , "$1": [ ["-std=c++17"] , { "type": "case" , "expr": {"type": "var", "name": "COMPILER_FAMILY"} , "case": {"msvc": []} , "default": [ "-Wall" , "-Wextra" , "-Wno-unused-parameter" , "-Wno-uninitialized" , "-Wno-missing-field-initializers" , "-DOSATOMIC_USE_INLINED=1" , "-Wno-redundant-move" , "-Wno-comment" , "-Wno-attributes" , "-Wno-unused-function" , "-Wno-unknown-warning-option" , "-Wno-implicit-const-int-float-conversion" , "-Wno-stringop-overflow" , "-Wno-stringop-truncation" , "-Wno-class-memaccess" ] } , { "type": "if" , "cond": {"type": "var", "name": "DEBUG"} , "then": ["-D_DEBUG", "-DDEBUG"] , "else": ["-Wframe-larger-than=16384"] } , { "type": "case" , "expr": {"type": "var", "name": "COMPILER_FAMILY"} , "case": { "gnu": [ "-Wno-array-bounds" , "-Wno-unused-variable" , "-Wno-dangling-pointer" , "-Wno-type-limits" ] } } , { "type": "case" , "expr": {"type": "var", "name": "OS"} , "case": { "windows": [ "-D_WIN32_WINNT=0x0600" , "-DWIN32_LEAN_AND_MEAN" , "-D_HAS_EXCEPTIONS=0" , "-DUNICODE" , "-D_UNICODE" , "-DNOMINMAX" ] } } , { "type": "case" , "expr": { "type": "var" , "name": "TARGET_ARCH" , "default": {"type": "var", "name": "ARCH"} } , "case": {"arm": ["-Wno-atomic-alignment"]} } ] } } } }