|
@@ -1,13 +1,19 @@
|
|
# -*- mode: python; -*- PYTHON-PREPROCESSING-REQUIRED
|
|
# -*- 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):
|
|
def _GenDir(ctx):
|
|
if not ctx.attr.includes:
|
|
if not ctx.attr.includes:
|
|
- return ""
|
|
|
|
|
|
+ return ctx.label.workspace_root
|
|
if not ctx.attr.includes[0]:
|
|
if not ctx.attr.includes[0]:
|
|
- return ctx.label.package
|
|
|
|
|
|
+ return _GetPath(ctx, ctx.label.package)
|
|
if not 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):
|
|
def _CcOuts(srcs):
|
|
return [s[:-len(".proto")] + ".pb.h" for s in 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:]
|
|
return path[len(PACKAGE_NAME)+1:]
|
|
|
|
|
|
-
|
|
|
|
-
|
|
|
|
def _proto_gen_impl(ctx):
|
|
def _proto_gen_impl(ctx):
|
|
"""General implementation for generating protos"""
|
|
"""General implementation for generating protos"""
|
|
srcs = ctx.files.srcs
|
|
srcs = ctx.files.srcs
|