diff options
author | Oliver Reiche <oliver.reiche@huawei.com> | 2022-07-21 15:07:44 +0200 |
---|---|---|
committer | Oliver Reiche <oliver.reiche@huawei.com> | 2022-07-25 11:34:45 +0200 |
commit | 97ca844c8fae0847566f90ebb4a984ed0e0fa28c (patch) | |
tree | 29d2d023204bd975256b561e3aa4850fa02aee1b | |
parent | 0cf8dea6f3fac64540cd5e92a8eab7992e9dcc04 (diff) | |
download | justbuild-97ca844c8fae0847566f90ebb4a984ed0e0fa28c.tar.gz |
Rules: Enforce non-empty library and binary names
-rw-r--r-- | rules/CC/EXPRESSIONS | 18 | ||||
-rw-r--r-- | rules/CC/RULES | 5 | ||||
-rw-r--r-- | rules/CC/test/RULES | 2 |
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"}} } ] |