diff --git a/rules/scala_proto/private/core.bzl b/rules/scala_proto/private/core.bzl index 44d7277e2..832f756e6 100644 --- a/rules/scala_proto/private/core.bzl +++ b/rules/scala_proto/private/core.bzl @@ -16,6 +16,7 @@ def scala_proto_library_implementation(ctx): protos = [dep.proto for dep in proto_deps] + direct_sources = depset(direct = [source for proto in protos for source in proto.direct_sources]) transitive_sources = depset(transitive = [proto.transitive_sources for proto in protos]) transitive_proto_path = depset(transitive = [proto.transitive_proto_path for proto in protos]) @@ -32,7 +33,7 @@ def scala_proto_library_implementation(ctx): args = ctx.actions.args() args.add("--output_dir", gendir.path) - args.add_all("--", transitive_sources) + args.add_all("--", direct_sources) args.set_param_file_format("multiline") args.use_param_file("@%s", use_always = True) @@ -43,7 +44,7 @@ def scala_proto_library_implementation(ctx): ctx.actions.run( mnemonic = "ScalaProtoCompile", - inputs = depset(direct = [], transitive = [transitive_sources]), + inputs = depset(transitive = [transitive_sources]), outputs = [gendir], executable = compiler.compiler.files_to_run.executable, tools = compiler_inputs, diff --git a/tests/proto/BUILD b/tests/proto/BUILD index 8f10081bd..7becf8628 100644 --- a/tests/proto/BUILD +++ b/tests/proto/BUILD @@ -27,3 +27,30 @@ scala_library( "@annex_test//:com_thesamet_scalapb_scalapb_runtime_2_12", ], ) + +proto_library( + name = "one_proto", + srcs = ["one.proto"], + deps = [ + ":zero_proto", + ], + visibility = ["//visibility:public"], +) + +scala_proto_library( + name = "one_scala_proto", + deps = [ + ":one_proto", + ], +) + +scala_library( + name = "one_scala", + srcs = [":one_scala_proto"], + deps = [ + ":zero_scala", + "@annex_test//:com_google_protobuf_protobuf_java", + "@annex_test//:com_thesamet_scalapb_lenses_2_12", + "@annex_test//:com_thesamet_scalapb_scalapb_runtime_2_12", + ], +) diff --git a/tests/proto/expected_one b/tests/proto/expected_one new file mode 100644 index 000000000..dfd1a417d --- /dev/null +++ b/tests/proto/expected_one @@ -0,0 +1,10 @@ +-rw---- 2.0 fat 0 bx 0% stor 20100101.000000 META-INF/ +-rw---- 2.0 fat 48 b- 0% stor 20100101.000000 META-INF/MANIFEST.MF +-rw---- 1.0 fat 0 b- 0% stor 20100101.000000 anx/ +-rw---- 1.0 fat 0 b- 0% stor 20100101.000000 anx/proto/ +-rw---- 1.0 fat 0 b- 0% stor 20100101.000000 anx/proto/one/ +-rw---- 2.0 fat 14827 b- 0% stor 20100101.000002 anx/proto/one/One$.class +-rw---- 2.0 fat 3097 b- 0% stor 20100101.000002 anx/proto/one/One$OneLens.class +-rw---- 2.0 fat 18959 b- 0% stor 20100101.000002 anx/proto/one/One.class +-rw---- 2.0 fat 6376 b- 0% stor 20100101.000002 anx/proto/one/OneProto$.class +-rw---- 2.0 fat 1937 b- 0% stor 20100101.000002 anx/proto/one/OneProto.class diff --git a/tests/proto/expected b/tests/proto/expected_zero similarity index 100% rename from tests/proto/expected rename to tests/proto/expected_zero diff --git a/tests/proto/one.proto b/tests/proto/one.proto new file mode 100644 index 000000000..5a405b476 --- /dev/null +++ b/tests/proto/one.proto @@ -0,0 +1,9 @@ +syntax = "proto2"; + +option java_package = "anx.proto"; + +import "proto/zero.proto"; + +message One { + optional Zero zero = 1; +} diff --git a/tests/proto/test b/tests/proto/test index 8effff763..437638dd2 100755 --- a/tests/proto/test +++ b/tests/proto/test @@ -4,6 +4,11 @@ [[ "$(bazel version | head -n1 | cut -d: -f2 | tr -d ' ')" =~ 0.15.*|0.16.* ]] || bazel build :zero_scala_proto bazel build :zero_scala -diff expected <( +diff expected_zero <( zipinfo -m -T --h-t "$(bazel info bazel-bin)/proto/zero_scala.jar" ) + +bazel build :one_scala +diff expected_one <( + zipinfo -m -T --h-t "$(bazel info bazel-bin)/proto/one_scala.jar" +)