{ "defaults": { "type": ["CC", "defaults"] , "arguments_config": ["TOOLCHAIN_CONFIG", "OS", "ARCH", "TARGET_ARCH"] , "base": [["@", "base", "CC", "defaults"]] , "ADD_CFLAGS": { "type": "++" , "$1": [ ["-std=gnu17", "-DBORINGSSL_IMPLEMENTATION"] , { "type": "let*" , "bindings": [ [ "OS" , { "type": "var" , "name": "OS" , "default": {"type": "fail", "msg": "Required variable 'OS' is not set."} } ] , [ "ARCH" , { "type": "var" , "name": "ARCH" , "default": {"type": "fail", "msg": "Required variable 'ARCH' is not set."} } ] , [ "PLATFORM" , { "type": "join" , "separator": "_" , "$1": [ {"type": "var", "name": "OS"} , { "type": "var" , "name": "TARGET_ARCH" , "default": {"type": "var", "name": "ARCH"} } ] } ] , [ "COMPILER_FAMILY" , { "type": "lookup" , "map": { "type": "var" , "name": "TOOLCHAIN_CONFIG" , "default": {"type": "empty_map"} } , "key": "FAMILY" , "default": "unknown" } ] , [ "posix_copts" , [ "-Wa,--noexecstack" , "-D_XOPEN_SOURCE=700" , "-Wall" , "-Wformat=2" , "-Wsign-compare" , "-Wmissing-field-initializers" , "-Wwrite-strings" , "-Wshadow" , "-fno-common" , "-Wmissing-prototypes" , "-Wold-style-definition" , "-Wstrict-prototypes" ] ] ] , "body": { "type": "++" , "$1": [ { "type": "case" , "expr": { "type": "var" , "name": "TARGET_ARCH" , "default": {"type": "var", "name": "ARCH"} } , "case": {"arm": ["-Wno-atomic-alignment"]} } , { "type": "cond" , "cond": [ [ { "type": "or" , "$1": [ { "type": "==" , "$1": {"type": "var", "name": "PLATFORM"} , "$2": "linux_x86_64" } , { "type": "==" , "$1": {"type": "var", "name": "PLATFORM"} , "$2": "mac_x86_64" } ] } , {"type": "var", "name": "posix_copts"} ] , [ { "type": "==" , "$1": {"type": "var", "name": "PLATFORM"} , "$2": "windows_x86_64" } , ["-DWIN32_LEAN_AND_MEAN", "-DOPENSSL_NO_ASM"] ] ] , "default": ["-DOPENSSL_NO_ASM"] } , { "type": "case" , "expr": {"type": "var", "name": "COMPILER_FAMILY"} , "case": { "gnu": [ "-Wno-dangling-pointer" , "-Wno-array-bounds" , "-Wno-stringop-overflow" ] , "clang": [ "-Wno-unused-but-set-variable" , "-Wno-unknown-warning-option" ] } } ] } } ] } , "ADD_CXXFLAGS": { "type": "++" , "$1": [ ["-std=c++20", "-DBORINGSSL_IMPLEMENTATION"] , { "type": "let*" , "bindings": [ [ "OS" , { "type": "var" , "name": "OS" , "default": {"type": "fail", "msg": "Required variable 'OS' is not set."} } ] , [ "ARCH" , { "type": "var" , "name": "ARCH" , "default": {"type": "fail", "msg": "Required variable 'ARCH' is not set."} } ] , [ "PLATFORM" , { "type": "join" , "separator": "_" , "$1": [ {"type": "var", "name": "OS"} , { "type": "var" , "name": "TARGET_ARCH" , "default": {"type": "var", "name": "ARCH"} } ] } ] , [ "posix_copts" , [ "-Wa,--noexecstack" , "-D_XOPEN_SOURCE=700" , "-Wall" , "-Wformat=2" , "-Wsign-compare" , "-Wmissing-field-initializers" , "-Wwrite-strings" , "-Wshadow" , "-fno-common" , "-Wmissing-declarations" ] ] ] , "body": { "type": "cond" , "cond": [ [ { "type": "or" , "$1": [ { "type": "==" , "$1": {"type": "var", "name": "PLATFORM"} , "$2": "linux_x86_64" } , { "type": "==" , "$1": {"type": "var", "name": "PLATFORM"} , "$2": "mac_x86_64" } ] } , {"type": "var", "name": "posix_copts"} ] , [ { "type": "==" , "$1": {"type": "var", "name": "PLATFORM"} , "$2": "windows_x86_64" } , ["-DWIN32_LEAN_AND_MEAN", "-utf-8", "-DOPENSSL_NO_ASM"] ] ] , "default": ["-DOPENSSL_NO_ASM"] } } ] } } }