summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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"}}
}
]