|
@@ -32,6 +32,7 @@ load(
|
|
"protobuf",
|
|
"protobuf",
|
|
"cc_proto_library",
|
|
"cc_proto_library",
|
|
"py_proto_library",
|
|
"py_proto_library",
|
|
|
|
+ "internal_copied_filegroup",
|
|
"internal_gen_well_known_protos_java",
|
|
"internal_gen_well_known_protos_java",
|
|
"internal_protobuf_py_tests",
|
|
"internal_protobuf_py_tests",
|
|
)
|
|
)
|
|
@@ -560,6 +561,8 @@ py_library(
|
|
"python/google/protobuf/**/*.py",
|
|
"python/google/protobuf/**/*.py",
|
|
],
|
|
],
|
|
exclude = [
|
|
exclude = [
|
|
|
|
+ "python/google/protobuf/__init__.py",
|
|
|
|
+ "python/google/protobuf/**/__init__.py",
|
|
"python/google/protobuf/internal/*_test.py",
|
|
"python/google/protobuf/internal/*_test.py",
|
|
"python/google/protobuf/internal/test_util.py",
|
|
"python/google/protobuf/internal/test_util.py",
|
|
],
|
|
],
|
|
@@ -622,10 +625,26 @@ config_setting(
|
|
},
|
|
},
|
|
)
|
|
)
|
|
|
|
|
|
|
|
+# Copy the builtin proto files from src/google/protobuf to
|
|
|
|
+# python/google/protobuf. This way, the generated Python sources will be in the
|
|
|
|
+# same directory as the Python runtime sources. This is necessary for the
|
|
|
|
+# modules to be imported correctly since they are all part of the same Python
|
|
|
|
+# package.
|
|
|
|
+internal_copied_filegroup(
|
|
|
|
+ name = "protos_python",
|
|
|
|
+ srcs = WELL_KNOWN_PROTOS,
|
|
|
|
+ strip_prefix = "src",
|
|
|
|
+ dest = "python",
|
|
|
|
+)
|
|
|
|
+
|
|
|
|
+# TODO(dzc): Remove this once py_proto_library can have labels in srcs, in
|
|
|
|
+# which case we can simply add :protos_python in srcs.
|
|
|
|
+COPIED_WELL_KNOWN_PROTOS = ["python/" + s for s in RELATIVE_WELL_KNOWN_PROTOS]
|
|
|
|
+
|
|
py_proto_library(
|
|
py_proto_library(
|
|
name = "protobuf_python",
|
|
name = "protobuf_python",
|
|
- srcs = WELL_KNOWN_PROTOS,
|
|
|
|
- include = "src",
|
|
|
|
|
|
+ srcs = COPIED_WELL_KNOWN_PROTOS,
|
|
|
|
+ include = "python",
|
|
data = select({
|
|
data = select({
|
|
"//conditions:default": [],
|
|
"//conditions:default": [],
|
|
":use_fast_cpp_protos": [
|
|
":use_fast_cpp_protos": [
|
|
@@ -643,10 +662,27 @@ py_proto_library(
|
|
visibility = ["//visibility:public"],
|
|
visibility = ["//visibility:public"],
|
|
)
|
|
)
|
|
|
|
|
|
|
|
+# Copy the test proto files from src/google/protobuf to
|
|
|
|
+# python/google/protobuf. This way, the generated Python sources will be in the
|
|
|
|
+# same directory as the Python runtime sources. This is necessary for the
|
|
|
|
+# modules to be imported correctly by the tests since they are all part of the
|
|
|
|
+# same Python package.
|
|
|
|
+internal_copied_filegroup(
|
|
|
|
+ name = "protos_python_test",
|
|
|
|
+ srcs = LITE_TEST_PROTOS + TEST_PROTOS,
|
|
|
|
+ strip_prefix = "src",
|
|
|
|
+ dest = "python",
|
|
|
|
+)
|
|
|
|
+
|
|
|
|
+# TODO(dzc): Remove this once py_proto_library can have labels in srcs, in
|
|
|
|
+# which case we can simply add :protos_python_test in srcs.
|
|
|
|
+COPIED_LITE_TEST_PROTOS = ["python/" + s for s in RELATIVE_LITE_TEST_PROTOS]
|
|
|
|
+COPIED_TEST_PROTOS = ["python/" + s for s in RELATIVE_TEST_PROTOS]
|
|
|
|
+
|
|
py_proto_library(
|
|
py_proto_library(
|
|
name = "python_common_test_protos",
|
|
name = "python_common_test_protos",
|
|
- srcs = LITE_TEST_PROTOS + TEST_PROTOS,
|
|
|
|
- include = "src",
|
|
|
|
|
|
+ srcs = COPIED_LITE_TEST_PROTOS + COPIED_TEST_PROTOS,
|
|
|
|
+ include = "python",
|
|
default_runtime = "",
|
|
default_runtime = "",
|
|
protoc = ":protoc",
|
|
protoc = ":protoc",
|
|
srcs_version = "PY2AND3",
|
|
srcs_version = "PY2AND3",
|
|
@@ -672,6 +708,7 @@ py_library(
|
|
[
|
|
[
|
|
"python/google/protobuf/internal/*_test.py",
|
|
"python/google/protobuf/internal/*_test.py",
|
|
"python/google/protobuf/internal/test_util.py",
|
|
"python/google/protobuf/internal/test_util.py",
|
|
|
|
+ "python/google/protobuf/internal/import_test_package/__init__.py",
|
|
],
|
|
],
|
|
),
|
|
),
|
|
imports = ["python"],
|
|
imports = ["python"],
|