Ver Fonte

Merge pull request #1165 from damienmg/master

Make protobuf Skylark extension appends the workspace root
Jisi Liu há 10 anos atrás
pai
commit
287a095c87
1 ficheiros alterados com 10 adições e 6 exclusões
  1. 10 6
      protobuf.bzl

+ 10 - 6
protobuf.bzl

@@ -1,13 +1,19 @@
 # -*- mode: python; -*- PYTHON-PREPROCESSING-REQUIRED
 
+def _GetPath(ctx, path):
+  if ctx.label.workspace_root:
+    return ctx.label.workspace_root + '/' + path
+  else:
+    return path
+
 def _GenDir(ctx):
   if not ctx.attr.includes:
-    return ""
+    return ctx.label.workspace_root
   if not ctx.attr.includes[0]:
-    return ctx.label.package
+    return _GetPath(ctx, ctx.label.package)
   if not ctx.label.package:
-    return ctx.attr.includes[0]
-  return ctx.label.package + '/' + ctx.attr.includes[0]
+    return _GetPath(ctx, ctx.attr.includes[0])
+  return _GetPath(ctx, ctx.label.package + '/' + ctx.attr.includes[0])
 
 def _CcOuts(srcs):
   return [s[:-len(".proto")] +  ".pb.h" for s in srcs] + \
@@ -36,8 +42,6 @@ def _RelativeOutputPath(path, include):
 
   return path[len(PACKAGE_NAME)+1:]
 
-
-
 def _proto_gen_impl(ctx):
   """General implementation for generating protos"""
   srcs = ctx.files.srcs