diff options
Diffstat (limited to 'tools/gen_binary_descriptors')
-rwxr-xr-x | tools/gen_binary_descriptors | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/tools/gen_binary_descriptors b/tools/gen_binary_descriptors index d25d9bd60..dbbf8c732 100755 --- a/tools/gen_binary_descriptors +++ b/tools/gen_binary_descriptors @@ -25,14 +25,11 @@ import hashlib from compat import iteritems SOURCE_TARGET = [ - ( - 'protos/perfetto/trace_processor/trace_processor.proto', - 'src/trace_processor/python/perfetto/trace_processor/trace_processor.descriptor' - ), - ( - 'protos/perfetto/metrics/metrics.proto', - 'src/trace_processor/python/perfetto/trace_processor/metrics.descriptor' + ('protos/perfetto/trace_processor/trace_processor.proto', + 'python/perfetto/trace_processor/trace_processor.descriptor' ), + ('protos/perfetto/metrics/metrics.proto', + 'python/perfetto/trace_processor/metrics.descriptor'), ] ROOT_DIR = os.path.dirname(os.path.dirname(os.path.realpath(__file__))) @@ -54,7 +51,6 @@ def find_protoc(): return None - def check(source, target): assert os.path.exists(os.path.join(ROOT_DIR, target)), \ 'Output file {} does not exist and so cannot be checked'.format(target) @@ -75,7 +71,9 @@ def check(source, target): def generate(source, target, protoc_path): - with tempfile.NamedTemporaryFile() as fdescriptor: + # delete=False + manual unlink is required for Windows. Otherwise the temp + # file is kept locked exclusively and unaccassible until it's destroyed. + with tempfile.NamedTemporaryFile(delete=False) as fdescriptor: subprocess.check_call([ protoc_path, '--include_imports', @@ -84,10 +82,11 @@ def generate(source, target, protoc_path): os.path.join(ROOT_DIR, "buildtools", "protobuf", "src"), '--descriptor_set_out={}'.format(fdescriptor.name), source, - ], - cwd=ROOT_DIR) + ], cwd=ROOT_DIR) s = fdescriptor.read() + fdescriptor.close() + os.remove(fdescriptor.name) with open(target, 'wb') as out: out.write(s) @@ -105,6 +104,7 @@ def generate(source, target, protoc_path): source_hash=hash_path(os.path.join(source)), ).encode()) + def main(): parser = argparse.ArgumentParser() parser.add_argument('--check-only', action='store_true') |