diff options
author | Klaus Aehlig <klaus.aehlig@huawei.com> | 2022-04-22 13:36:56 +0200 |
---|---|---|
committer | Klaus Aehlig <klaus.aehlig@huawei.com> | 2022-04-22 14:03:30 +0200 |
commit | cf6942ed6f8dc22209f8570faa39b3a6231f546f (patch) | |
tree | 637f25e74c5bce364a8aa47dc471ec3be2d7646c | |
parent | a277ee4162bbe4e56b0cb7206595c4ca8416fc2c (diff) | |
download | rules-cc-cf6942ed6f8dc22209f8570faa39b3a6231f546f.tar.gz |
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.
-rw-r--r-- | CC/EXPRESSIONS | 78 | ||||
-rw-r--r-- | CC/RULES | 39 |
2 files changed, 47 insertions, 70 deletions
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": @@ -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": |