summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOliver Reiche <oliver.reiche@huawei.com>2022-07-21 15:07:44 +0200
committerOliver Reiche <oliver.reiche@huawei.com>2022-07-25 11:34:45 +0200
commit97ca844c8fae0847566f90ebb4a984ed0e0fa28c (patch)
tree29d2d023204bd975256b561e3aa4850fa02aee1b
parent0cf8dea6f3fac64540cd5e92a8eab7992e9dcc04 (diff)
downloadjustbuild-97ca844c8fae0847566f90ebb4a984ed0e0fa28c.tar.gz
Rules: Enforce non-empty library and binary names
-rw-r--r--rules/CC/EXPRESSIONS18
-rw-r--r--rules/CC/RULES5
-rw-r--r--rules/CC/test/RULES2
3 files changed, 22 insertions, 3 deletions
diff --git a/rules/CC/EXPRESSIONS b/rules/CC/EXPRESSIONS
index b551787d..462d2196 100644
--- a/rules/CC/EXPRESSIONS
+++ b/rules/CC/EXPRESSIONS
@@ -405,7 +405,23 @@
]
, ["objects", {"type": "CALL_EXPRESSION", "name": "objects"}]
, [ "base name"
- , {"type": "join", "$1": {"type": "FIELD", "name": "name"}}
+ , { "type": "let*"
+ , "bindings":
+ [ [ "name"
+ , {"type": "join", "$1": {"type": "FIELD", "name": "name"}}
+ ]
+ ]
+ , "body":
+ { "type": "if"
+ , "cond": {"type": "var", "name": "objects"}
+ , "then":
+ { "type": "assert_non_empty"
+ , "msg": "A name has to be provided for non-header-only libraries"
+ , "$1": {"type": "var", "name": "name"}
+ }
+ , "else": {"type": "var", "name": "name"}
+ }
+ }
]
, [ "libname"
, { "type": "join"
diff --git a/rules/CC/RULES b/rules/CC/RULES
index 0e9a6941..c2c72020 100644
--- a/rules/CC/RULES
+++ b/rules/CC/RULES
@@ -476,7 +476,10 @@
, ["link-deps", {"type": "CALL_EXPRESSION", "name": "link-deps"}]
, ["objects", {"type": "CALL_EXPRESSION", "name": "objects"}]
, [ "base name"
- , {"type": "join", "$1": {"type": "FIELD", "name": "name"}}
+ , { "type": "assert_non_empty"
+ , "msg": "A non-empty name has to be provided for binaries"
+ , "$1": {"type": "join", "$1": {"type": "FIELD", "name": "name"}}
+ }
]
, [ "binary name"
, { "type": "if"
diff --git a/rules/CC/test/RULES b/rules/CC/test/RULES
index 93d77065..f3175d4b 100644
--- a/rules/CC/test/RULES
+++ b/rules/CC/test/RULES
@@ -129,7 +129,7 @@
, ["objects", {"type": "CALL_EXPRESSION", "name": "objects"}]
, [ "base name"
, { "type": "assert_non_empty"
- , "msg": "A non-empy name has to be provided"
+ , "msg": "A non-empty name has to be provided"
, "$1": {"type": "join", "$1": {"type": "FIELD", "name": "name"}}
}
]