From c4ff7d76b2ca73017d2d96923437de7a1d0aa71d Mon Sep 17 00:00:00 2001 From: Oliver Reiche Date: Tue, 6 Dec 2022 12:06:55 +0100 Subject: rules: Implement ldflags for (shared) libraries --- CC/EXPRESSIONS | 17 +++++++++++++++-- CC/RULES | 7 +++++++ 2 files changed, 22 insertions(+), 2 deletions(-) (limited to 'CC') diff --git a/CC/EXPRESSIONS b/CC/EXPRESSIONS index 2998fa8..504e55a 100644 --- a/CC/EXPRESSIONS +++ b/CC/EXPRESSIONS @@ -681,6 +681,7 @@ , "private-hdrs" , "cflags" , "private-cflags" + , "ldflags" , "private-ldflags" , "stage" , "extra-provides" @@ -721,6 +722,7 @@ { "type": "++" , "$1": [ {"type": "keys", "$1": {"type": "var", "name": "lib"}} + , {"type": "var", "name": "ldflags", "default": []} , {"type": "var", "name": "private-ldflags", "default": []} , {"type": "CALL_EXPRESSION", "name": "link-args-deps"} ] @@ -936,6 +938,7 @@ , "private-hdrs" , "cflags" , "private-cflags" + , "ldflags" , "private-ldflags" , "soversion" , "extra-provides" @@ -977,7 +980,8 @@ , "$1": { "type": "++" , "$1": - [ {"type": "var", "name": "private-ldflags", "default": []} + [ {"type": "var", "name": "ldflags", "default": []} + , {"type": "var", "name": "private-ldflags", "default": []} , {"type": "CALL_EXPRESSION", "name": "run-libs-args-deps"} ] } @@ -1008,7 +1012,16 @@ } ] , [ "run-libs-args" - , {"type": "keys", "$1": {"type": "var", "name": "lib"}} + , { "type": "nub_right" + , "$1": + { "type": "++" + , "$1": + [ {"type": "keys", "$1": {"type": "var", "name": "lib"}} + , {"type": "var", "name": "ldflags", "default": []} + , {"type": "CALL_EXPRESSION", "name": "run-libs-args-deps"} + ] + } + } ] ] , "body": diff --git a/CC/RULES b/CC/RULES index 4d90adc..4bfae16 100644 --- a/CC/RULES +++ b/CC/RULES @@ -132,6 +132,7 @@ , "private-defines" , "cflags" , "private-cflags" + , "ldflags" , "private-ldflags" , "soversion" ] @@ -181,6 +182,11 @@ ["List of compile flags set for this target and its consumers."] , "private-cflags": ["List of compile flags set for source files local to this target."] + , "ldflags": + [ "Additional linker flags for linking external libraries for this" + , "target and its consumers (not built by this tool, typically system" + , "libraries)." + ] , "private-ldflags": [ "Additional linker flags for linking external libraries (not built" , "by this tool, typically system libraries)." @@ -360,6 +366,7 @@ } } ] + , ["ldflags", {"type": "FIELD", "name": "ldflags"}] , ["private-ldflags", {"type": "FIELD", "name": "private-ldflags"}] , ["soversion", {"type": "FIELD", "name": "soversion"}] , [ "deps-transition" -- cgit v1.2.3