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 | b9945d324c1c86cad6f6223b4fbfc30ca9ee3bd5 (patch) | |
tree | 505e3e611483b4e5e5624bf144f25fd3785713e4 | |
parent | be2e338f72605ce7fbc5d55ee494f0231d25f1c8 (diff) | |
download | justbuild-b9945d324c1c86cad6f6223b4fbfc30ca9ee3bd5.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-- | rules/CC/EXPRESSIONS | 78 | ||||
-rw-r--r-- | rules/CC/RULES | 39 |
2 files changed, 47 insertions, 70 deletions
diff --git a/rules/CC/EXPRESSIONS b/rules/CC/EXPRESSIONS index 1002147d..48fb4b3c 100644 --- a/rules/CC/EXPRESSIONS +++ b/rules/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/rules/CC/RULES b/rules/CC/RULES index d687bf32..01aa6347 100644 --- a/rules/CC/RULES +++ b/rules/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": |