From cf6942ed6f8dc22209f8570faa39b3a6231f546f Mon Sep 17 00:00:00 2001 From: Klaus Aehlig Date: Fri, 22 Apr 2022 13:36:56 +0200 Subject: rules: move compiler/flags computation into expressions On the one hand, this keeps the rules files more readable. On the other hand, we can even deduplicate code, as those expressions are used twice. --- CC/EXPRESSIONS | 78 ++++++++++++++++++++++++++++++++-------------------------- CC/RULES | 39 +++-------------------------- 2 files changed, 47 insertions(+), 70 deletions(-) (limited to 'CC') diff --git a/CC/EXPRESSIONS b/CC/EXPRESSIONS index 1002147..48fb4b3 100644 --- a/CC/EXPRESSIONS +++ b/CC/EXPRESSIONS @@ -311,6 +311,45 @@ } } } +, "compiler": + { "vars": ["CC", "CXX"] + , "imports": {"default-CC": "default-CC", "default-CXX": "default-CXX"} + , "expression": + { "type": "if" + , "cond": {"type": "FIELD", "name": "pure C"} + , "then": + { "type": "var" + , "name": "CC" + , "default": {"type": "CALL_EXPRESSION", "name": "default-CC"} + } + , "else": + { "type": "var" + , "name": "CXX" + , "default": {"type": "CALL_EXPRESSION", "name": "default-CXX"} + } + } + } +, "flags": + { "vars": ["CFLAGS", "CXXFLAGS"] + , "imports": + { "default-CFLAGS": "default-CFLAGS" + , "default-CXXFLAGS": "default-CXXFLAGS" + } + , "expression": + { "type": "if" + , "cond": {"type": "FIELD", "name": "pure C"} + , "then": + { "type": "var" + , "name": "CFLAGS" + , "default": {"type": "CALL_EXPRESSION", "name": "default-CFLAGS"} + } + , "else": + { "type": "var" + , "name": "CXXFLAGS" + , "default": {"type": "CALL_EXPRESSION", "name": "default-CXXFLAGS"} + } + } + } , "lib result": { "vars": [ "CXX" @@ -330,11 +369,9 @@ { "artifacts": ["./", "..", "field_artifacts"] , "compile-deps": "compile-deps" , "link-deps": "link-deps" + , "compiler": "compiler" + , "flags": "flags" , "objects": "objects" - , "default-CC": "default-CC" - , "default-CXX": "default-CXX" - , "default-CFLAGS": "default-CFLAGS" - , "default-CXXFLAGS": "default-CXXFLAGS" , "default-ENV": "default-ENV" } , "expression": @@ -346,37 +383,8 @@ , "$1": {"type": "FIELD", "name": "stage"} } ] - , [ "CXX" - , { "type": "if" - , "cond": {"type": "FIELD", "name": "pure C"} - , "then": - { "type": "var" - , "name": "CC" - , "default": {"type": "CALL_EXPRESSION", "name": "default-CC"} - } - , "else": - { "type": "var" - , "name": "CXX" - , "default": {"type": "CALL_EXPRESSION", "name": "default-CXX"} - } - } - ] - , [ "CXXFLAGS" - , { "type": "if" - , "cond": {"type": "FIELD", "name": "pure C"} - , "then": - { "type": "var" - , "name": "CFLAGS" - , "default": {"type": "CALL_EXPRESSION", "name": "default-CFLAGS"} - } - , "else": - { "type": "var" - , "name": "CXXFLAGS" - , "default": - {"type": "CALL_EXPRESSION", "name": "default-CXXFLAGS"} - } - } - ] + , ["CXX", {"type": "CALL_EXPRESSION", "name": "compiler"}] + , ["CXXFLAGS", {"type": "CALL_EXPRESSION", "name": "flags"}] , [ "CXXFLAGS" , { "type": "++" , "$1": diff --git a/CC/RULES b/CC/RULES index d687bf3..01aa634 100644 --- a/CC/RULES +++ b/CC/RULES @@ -387,10 +387,8 @@ , "compile-deps": "compile-deps" , "link-deps": "link-deps" , "objects": "objects" - , "default-CC": "default-CC" - , "default-CXX": "default-CXX" - , "default-CFLAGS": "default-CFLAGS" - , "default-CXXFLAGS": "default-CXXFLAGS" + , "compiler": "compiler" + , "flags": "flags" , "default-ENV": "default-ENV" } , "expression": @@ -430,37 +428,8 @@ } } ] - , [ "CXX" - , { "type": "if" - , "cond": {"type": "FIELD", "name": "pure C"} - , "then": - { "type": "var" - , "name": "CC" - , "default": {"type": "CALL_EXPRESSION", "name": "default-CC"} - } - , "else": - { "type": "var" - , "name": "CXX" - , "default": {"type": "CALL_EXPRESSION", "name": "default-CXX"} - } - } - ] - , [ "CXXFLAGS" - , { "type": "if" - , "cond": {"type": "FIELD", "name": "pure C"} - , "then": - { "type": "var" - , "name": "CFLAGS" - , "default": {"type": "CALL_EXPRESSION", "name": "default-CFLAGS"} - } - , "else": - { "type": "var" - , "name": "CXXFLAGS" - , "default": - {"type": "CALL_EXPRESSION", "name": "default-CXXFLAGS"} - } - } - ] + , ["CXX", {"type": "CALL_EXPRESSION", "name": "compiler"}] + , ["CXXFLAGS", {"type": "CALL_EXPRESSION", "name": "flags"}] , [ "CXXFLAGS" , { "type": "++" , "$1": -- cgit v1.2.3