diff options
Diffstat (limited to 'rules/CC/RULES')
-rw-r--r-- | rules/CC/RULES | 37 |
1 files changed, 35 insertions, 2 deletions
diff --git a/rules/CC/RULES b/rules/CC/RULES index 4d90adc..992e4a3 100644 --- a/rules/CC/RULES +++ b/rules/CC/RULES @@ -123,7 +123,14 @@ , "library": { "doc": ["A C++ library"] , "target_fields": - ["srcs", "hdrs", "private-hdrs", "deps", "private-deps", "proto"] + [ "srcs" + , "hdrs" + , "private-hdrs" + , "deps" + , "private-deps" + , "proto" + , "private-proto" + ] , "string_fields": [ "name" , "stage" @@ -132,6 +139,7 @@ , "private-defines" , "cflags" , "private-cflags" + , "ldflags" , "private-ldflags" , "soversion" ] @@ -181,6 +189,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)." @@ -197,6 +210,13 @@ , "duplicate work will be carried out, even if the same proto library" , "is used at various places)." ] + , "private-proto": + [ "Any [\"proto\", \"library\"] this target depends upon privately." + , "The creation of C++ bindings for this proto library as well as of" + , "its dependencies will be taken care of (as anonymous targets, so no" + , "duplicate work will be carried out, even if the same proto library" + , "is used at various places)." + ] , "shared": ["If non-empty, produce a shared instead of a static library."] , "soversion": [ "The SOVERSION for shared libraries. Individual version components are" @@ -281,6 +301,14 @@ , "service library": ["./", "proto", "service library"] } } + , "private-proto-deps": + { "target": "private-proto" + , "provider": "proto" + , "rule_map": + { "library": ["./", "proto", "library"] + , "service library": ["./", "proto", "service library"] + } + } } , "imports": { "artifacts": ["./", "..", "field_artifacts"] @@ -292,6 +320,8 @@ { "deps": [{"type": "CALL_EXPRESSION", "name": "fPIC transition"}] , "private-deps": [{"type": "CALL_EXPRESSION", "name": "fPIC transition"}] , "proto-deps": [{"type": "CALL_EXPRESSION", "name": "fPIC transition"}] + , "private-proto-deps": + [{"type": "CALL_EXPRESSION", "name": "fPIC transition"}] } , "expression": { "type": "let*" @@ -360,13 +390,16 @@ } } ] + , ["ldflags", {"type": "FIELD", "name": "ldflags"}] , ["private-ldflags", {"type": "FIELD", "name": "private-ldflags"}] , ["soversion", {"type": "FIELD", "name": "soversion"}] , [ "deps-transition" , {"type": "CALL_EXPRESSION", "name": "fPIC transition"} ] , ["public-fieldnames", ["deps", "proto-deps"]] - , ["private-fieldnames", ["deps", "private-deps", "proto-deps"]] + , [ "private-fieldnames" + , ["deps", "private-deps", "proto-deps", "private-proto-deps"] + ] ] , "body": { "type": "if" |