summaryrefslogtreecommitdiff
path: root/CC
diff options
context:
space:
mode:
authorKlaus Aehlig <klaus.aehlig@huawei.com>2022-04-22 13:36:56 +0200
committerKlaus Aehlig <klaus.aehlig@huawei.com>2022-04-22 14:03:30 +0200
commitcf6942ed6f8dc22209f8570faa39b3a6231f546f (patch)
tree637f25e74c5bce364a8aa47dc471ec3be2d7646c /CC
parenta277ee4162bbe4e56b0cb7206595c4ca8416fc2c (diff)
downloadrules-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.
Diffstat (limited to 'CC')
-rw-r--r--CC/EXPRESSIONS78
-rw-r--r--CC/RULES39
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":
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":