From 3e0d1255cdf428fb4b7d2381fb82f8db0a0e8bf3 Mon Sep 17 00:00:00 2001 From: Paul Cristian Sarbu Date: Thu, 20 Mar 2025 14:58:17 +0100 Subject: rules CC: Use the -g flag as fallback in debug mode... ...if no flags are otherwise configured (by toolchain or rule-specific configuration variables). --- CC/EXPRESSIONS | 28 ++++++++++++++++++++++++---- CC/RULES | 10 ++++++++-- 2 files changed, 32 insertions(+), 6 deletions(-) (limited to 'CC') diff --git a/CC/EXPRESSIONS b/CC/EXPRESSIONS index c52b209..2911c34 100644 --- a/CC/EXPRESSIONS +++ b/CC/EXPRESSIONS @@ -819,6 +819,7 @@ , "CXXFLAGS" , "ADD_CFLAGS" , "ADD_CXXFLAGS" + , "DEBUG" , "pure C" , "srcs" , "hdrs" @@ -1189,15 +1190,32 @@ , "CXXFLAGS" , "ADD_CFLAGS" , "ADD_CXXFLAGS" + , "DEBUG" , "pure C" , "defaults-transition" ] , "imports": {"flags-cc": "flags-cc", "flags-cxx": "flags-cxx"} , "expression": - { "type": "if" - , "cond": {"type": "var", "name": "pure C"} - , "then": {"type": "CALL_EXPRESSION", "name": "flags-cc"} - , "else": {"type": "CALL_EXPRESSION", "name": "flags-cxx"} + { "type": "let*" + , "bindings": + [ [ "flags" + , { "type": "if" + , "cond": {"type": "var", "name": "pure C"} + , "then": {"type": "CALL_EXPRESSION", "name": "flags-cc"} + , "else": {"type": "CALL_EXPRESSION", "name": "flags-cxx"} + } + ] + ] + , "body": + { "type": "if" + , "cond": {"type": "var", "name": "flags"} + , "then": {"type": "var", "name": "flags"} + , "else": + { "type": "if" + , "cond": {"type": "var", "name": "DEBUG"} + , "then": ["-g"] + } + } } } , "lib artifact": @@ -1210,6 +1228,7 @@ , "ADD_CXXFLAGS" , "AR" , "ENV" + , "DEBUG" , "name" , "pure C" , "srcs" @@ -1590,6 +1609,7 @@ , "ADD_CFLAGS" , "ADD_CXXFLAGS" , "ENV" + , "DEBUG" , "name" , "pure C" , "srcs" diff --git a/CC/RULES b/CC/RULES index eddf0b7..c618467 100644 --- a/CC/RULES +++ b/CC/RULES @@ -552,7 +552,10 @@ , "If None, the respective value from [\"CC\", \"defaults\"] will be taken." ] , "ENV": ["The environment for any action generated."] - , "DEBUG": ["Compute the debug-stage, needed for local debugging."] + , "DEBUG": + [ "Compute the debug-stage, needed for local debugging." + , "If no compile flags are otherwise configured, [\"-g\"] will be taken." + ] , "LINT": [ "Also provide nodes describing compile actions and header files;" , "those can be used by lint rules (doing also the config transition)" @@ -752,7 +755,10 @@ , "taken from the [\"CC\", \"defaults\"] target" ] , "ENV": ["The environment for any action generated."] - , "DEBUG": ["Compute the debug-stage, needed for local debugging."] + , "DEBUG": + [ "Compute the debug-stage, needed for local debugging." + , "If no compile flags are otherwise configured, [\"-g\"] will be taken." + ] , "LINT": [ "Also provide nodes describing compile actions and header files;" , "those can be used by lint rules (doing also the config transition)" -- cgit v1.2.3