mirror of https://github.com/grpc/grpc.git
The C based gRPC (C++, Python, Ruby, Objective-C, PHP, C#)
https://grpc.io/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
46 lines
1.2 KiB
46 lines
1.2 KiB
10 years ago
|
"""Buildgen expand filegroups plugin.
|
||
|
|
||
|
This takes the list of libs from our json dictionary,
|
||
|
and expands any and all filegroup.
|
||
|
|
||
|
"""
|
||
|
|
||
|
|
||
|
def excluded(filename, exclude_res):
|
||
|
for r in exclude_res:
|
||
|
if r.search(filename):
|
||
|
return True
|
||
|
return False
|
||
|
|
||
|
|
||
|
def mako_plugin(dictionary):
|
||
|
"""The exported plugin code for expand_filegroups.
|
||
|
|
||
|
The list of libs in the build.json file can contain "filegroups" tags.
|
||
|
These refer to the filegroups in the root object. We will expand and
|
||
|
merge filegroups on the src, headers and public_headers properties.
|
||
|
|
||
|
"""
|
||
|
libs = dictionary.get('libs')
|
||
|
filegroups_list = dictionary.get('filegroups')
|
||
|
filegroups = {}
|
||
|
|
||
|
for fg in filegroups_list:
|
||
|
filegroups[fg['name']] = fg
|
||
|
|
||
|
for lib in libs:
|
||
|
for fg_name in lib.get('filegroups', []):
|
||
|
fg = filegroups[fg_name]
|
||
|
|
||
|
src = lib.get('src', [])
|
||
|
src.extend(fg.get('src', []))
|
||
|
lib['src'] = src
|
||
|
|
||
|
headers = lib.get('headers', [])
|
||
|
headers.extend(fg.get('headers', []))
|
||
|
lib['headers'] = headers
|
||
|
|
||
|
public_headers = lib.get('public_headers', [])
|
||
|
public_headers.extend(fg.get('public_headers', []))
|
||
|
lib['public_headers'] = public_headers
|