Selaa lähdekoodia

Cleanup: Remove no-longer-needed expand_filegroups.py (#25532)

* get rid of expand_filegroups.py

* regenerate projects
Jan Tattermusch 4 vuotta sitten
vanhempi
commit
53d32b748f

+ 0 - 5
Makefile

@@ -2299,7 +2299,6 @@ LIBBORINGSSL_SRC = \
     third_party/boringssl-with-bazel/src/ssl/tls_method.cc \
     third_party/boringssl-with-bazel/src/ssl/tls_method.cc \
     third_party/boringssl-with-bazel/src/ssl/tls_record.cc \
     third_party/boringssl-with-bazel/src/ssl/tls_record.cc \
 
 
-PUBLIC_HEADERS_C += \
 
 
 LIBBORINGSSL_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_SRC))))
 LIBBORINGSSL_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_SRC))))
 
 
@@ -2351,7 +2350,6 @@ LIBRE2_SRC = \
     third_party/re2/util/rune.cc \
     third_party/re2/util/rune.cc \
     third_party/re2/util/strutil.cc \
     third_party/re2/util/strutil.cc \
 
 
-PUBLIC_HEADERS_C += \
 
 
 LIBRE2_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBRE2_SRC))))
 LIBRE2_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBRE2_SRC))))
 
 
@@ -2390,7 +2388,6 @@ LIBUPB_SRC = \
     src/core/ext/upb-generated/google/protobuf/descriptor.upb.c \
     src/core/ext/upb-generated/google/protobuf/descriptor.upb.c \
     src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.c \
     src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.c \
 
 
-PUBLIC_HEADERS_C += \
 
 
 LIBUPB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBUPB_SRC))))
 LIBUPB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBUPB_SRC))))
 
 
@@ -2448,7 +2445,6 @@ LIBZ_SRC = \
     third_party/zlib/uncompr.c \
     third_party/zlib/uncompr.c \
     third_party/zlib/zutil.c \
     third_party/zlib/zutil.c \
 
 
-PUBLIC_HEADERS_C += \
 
 
 LIBZ_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBZ_SRC))))
 LIBZ_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBZ_SRC))))
 
 
@@ -2526,7 +2522,6 @@ LIBARES_SRC = \
     third_party/cares/cares/inet_ntop.c \
     third_party/cares/cares/inet_ntop.c \
     third_party/cares/cares/windows_port.c \
     third_party/cares/cares/windows_port.c \
 
 
-PUBLIC_HEADERS_C += \
 
 
 LIBARES_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBARES_SRC))))
 LIBARES_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBARES_SRC))))
 
 

+ 2 - 2
templates/README.md

@@ -135,8 +135,8 @@ is then passed to the template while rending it.
 ## The plugins
 ## The plugins
 
 
 The file build.json itself isn't passed straight to the template files. It is
 The file build.json itself isn't passed straight to the template files. It is
-first processed and modified by a few plugins. For example, the `filegroups`
-expander is [a plugin](../tools/buildgen/plugins/expand_filegroups.py).
+first processed and modified by a few plugins. For example, the version
+expander is [a plugin](../tools/buildgen/plugins/expand_version.py).
 
 
 The structure of a plugin is simple. The plugin must defined the function
 The structure of a plugin is simple. The plugin must defined the function
 `mako_plugin` that takes a Python dictionary. That dictionary represents the
 `mako_plugin` that takes a Python dictionary. That dictionary represents the

+ 0 - 159
tools/buildgen/plugins/expand_filegroups.py

@@ -1,159 +0,0 @@
-# Copyright 2015 gRPC authors.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-"""Buildgen expand filegroups plugin.
-
-This takes the list of libs from our yaml 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 uniquify(lst):
-    out = []
-    for el in lst:
-        if el not in out:
-            out.append(el)
-    return out
-
-
-FILEGROUP_LISTS = ['src', 'headers', 'public_headers', 'deps']
-
-FILEGROUP_DEFAULTS = {
-    'language': 'c',
-    'boringssl': False,
-    'zlib': False,
-    'ares': False,
-}
-
-
-def mako_plugin(dictionary):
-    """The exported plugin code for expand_filegroups.
-
-  The list of libs in the build.yaml 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')
-    targets = dictionary.get('targets')
-    filegroups_list = dictionary.get('filegroups')
-    filegroups_set = set(fg['name'] for fg in filegroups_list)
-    filegroups = {}
-
-    for fg in filegroups_list:
-        for lst in FILEGROUP_LISTS:
-            fg[lst] = fg.get(lst, [])
-            fg['own_%s' % lst] = list(fg[lst])
-        for attr, val in FILEGROUP_DEFAULTS.items():
-            if attr not in fg:
-                fg[attr] = val
-
-    todo = list(filegroups_list)
-    skips = 0
-
-    while todo:
-        assert skips != len(
-            todo), "infinite loop in filegroup uses clauses: %r" % [
-                t['name'] for t in todo
-            ]
-        # take the first element of the todo list
-        cur = todo[0]
-        todo = todo[1:]
-        # check all uses filegroups are present (if no, skip and come back later)
-        skip = False
-        for use in cur.get('uses', []):
-            assert use in filegroups_set, (
-                "filegroup(%s) uses non-existent %s" % (cur['name'], use))
-            if use not in filegroups:
-                skip = True
-        if skip:
-            skips += 1
-            todo.append(cur)
-        else:
-            skips = 0
-            assert 'plugins' not in cur
-            plugins = []
-            for uses in cur.get('uses', []):
-                for plugin in filegroups[uses]['plugins']:
-                    if plugin not in plugins:
-                        plugins.append(plugin)
-                for lst in FILEGROUP_LISTS:
-                    vals = cur.get(lst, [])
-                    vals.extend(filegroups[uses].get(lst, []))
-                    cur[lst] = vals
-            cur_plugin_name = cur.get('plugin')
-            if cur_plugin_name:
-                plugins.append(cur_plugin_name)
-            cur['plugins'] = plugins
-            filegroups[cur['name']] = cur
-
-    # build reverse dependency map
-    things = {}
-    for thing in dictionary['libs'] + dictionary['targets'] + dictionary[
-            'filegroups']:
-        things[thing['name']] = thing
-        thing['used_by'] = []
-    thing_deps = lambda t: t.get('uses', []) + t.get('filegroups', []) + t.get(
-        'deps', [])
-    for thing in things.values():
-        done = set()
-        todo = thing_deps(thing)
-        while todo:
-            cur = todo[0]
-            todo = todo[1:]
-            if cur in done:
-                continue
-            things[cur]['used_by'].append(thing['name'])
-            todo.extend(thing_deps(things[cur]))
-            done.add(cur)
-
-    # the above expansion can introduce duplicate filenames: contract them here
-    for fg in filegroups.values():
-        for lst in FILEGROUP_LISTS:
-            fg[lst] = uniquify(fg.get(lst, []))
-
-    for tgt in dictionary['targets']:
-        for lst in FILEGROUP_LISTS:
-            tgt[lst] = tgt.get(lst, [])
-            tgt['own_%s' % lst] = list(tgt[lst])
-
-    for lib in libs + targets:
-        assert 'plugins' not in lib
-        plugins = []
-        for lst in FILEGROUP_LISTS:
-            vals = lib.get(lst, [])
-            lib[lst] = list(vals)
-            lib['own_%s' % lst] = list(vals)
-        for fg_name in lib.get('filegroups', []):
-            fg = filegroups[fg_name]
-            for plugin in fg['plugins']:
-                if plugin not in plugins:
-                    plugins.append(plugin)
-            for lst in FILEGROUP_LISTS:
-                vals = lib.get(lst, [])
-                vals.extend(fg.get(lst, []))
-                lib[lst] = vals
-            lib['plugins'] = plugins
-        if lib.get('generate_plugin_registry', False):
-            lib['src'].append('src/core/plugin_registry/%s_plugin_registry.cc' %
-                              lib['name'])
-        for lst in FILEGROUP_LISTS:
-            lib[lst] = uniquify(lib.get(lst, []))

+ 0 - 4
tools/buildgen/plugins/make_fuzzer_tests.py

@@ -28,15 +28,11 @@ def mako_plugin(dictionary):
             new_target['run'] = False
             new_target['run'] = False
             new_target['src'].append(
             new_target['src'].append(
                 'test/core/util/one_corpus_entry_fuzzer.cc')
                 'test/core/util/one_corpus_entry_fuzzer.cc')
-            new_target['own_src'].append(
-                'test/core/util/one_corpus_entry_fuzzer.cc')
 
 
             # avoid having two main() methods
             # avoid having two main() methods
             to_remove = 'test/core/util/fuzzer_corpus_test.cc'
             to_remove = 'test/core/util/fuzzer_corpus_test.cc'
             if to_remove in new_target['src']:
             if to_remove in new_target['src']:
                 new_target['src'].remove(to_remove)
                 new_target['src'].remove(to_remove)
-            if to_remove in new_target['own_src']:
-                new_target['own_src'].remove(to_remove)
 
 
             targets.append(new_target)
             targets.append(new_target)
             for corpus in new_target['corpus_dirs']:
             for corpus in new_target['corpus_dirs']:

+ 6 - 2
tools/buildgen/plugins/transitive_dependencies.py

@@ -55,8 +55,12 @@ def mako_plugin(dictionary):
 
 
     for target_name, target_list in dictionary.items():
     for target_name, target_list in dictionary.items():
         for target in target_list:
         for target in target_list:
-            if isinstance(target, dict) and 'deps' in target:
-                target['transitive_deps'] = transitive_deps(lib_map, target)
+            if isinstance(target, dict):
+                if 'deps' in target or target_name == 'libs':
+                    if not 'deps' in target:
+                        # make sure all the libs have the "deps" field populated
+                        target['deps'] = []
+                    target['transitive_deps'] = transitive_deps(lib_map, target)
 
 
     python_dependencies = dictionary.get('python_dependencies')
     python_dependencies = dictionary.get('python_dependencies')
     python_dependencies['transitive_deps'] = transitive_deps(
     python_dependencies['transitive_deps'] = transitive_deps(