download gflags/gtest/protobuf and use native bazel rules to compile
diff --git a/WORKSPACE b/WORKSPACE
index b2b4485..e55c105 100644
--- a/WORKSPACE
+++ b/WORKSPACE
@@ -698,3 +698,22 @@
])
)
# end pex repos
+
+http_archive(
+ name = "com_github_gflags_gflags",
+ urls = ["https://github.com/gflags/gflags/archive/v2.2.1.tar.gz"],
+ strip_prefix = "gflags-2.2.1",
+)
+
+http_archive(
+ name = "com_google_protobuf",
+ urls = ["https://github.com/google/protobuf/archive/v3.4.1.tar.gz"],
+ strip_prefix = "protobuf-3.4.1",
+)
+
+new_http_archive(
+ name = "com_google_googletest",
+ urls = ["https://github.com/google/googletest/archive/release-1.8.0.tar.gz"],
+ strip_prefix = "googletest-release-1.8.0",
+ build_file = "third_party/gtest/gtest.BUILD",
+)
diff --git a/heron/api/tests/cpp/BUILD b/heron/api/tests/cpp/BUILD
index 7974b72..d1a94e0 100644
--- a/heron/api/tests/cpp/BUILD
+++ b/heron/api/tests/cpp/BUILD
@@ -8,7 +8,7 @@
deps = [
"//heron/api/src/cpp:cxx-api",
"//heron/common/src/cpp/basics:basics-cxx",
- "//third_party/gtest:gtest-cxx",
+ "@com_google_googletest//:gtest",
],
copts = [
"-Iheron/api/src/cpp",
diff --git a/heron/common/src/cpp/basics/BUILD b/heron/common/src/cpp/basics/BUILD
index d25e589..0c3c682 100644
--- a/heron/common/src/cpp/basics/BUILD
+++ b/heron/common/src/cpp/basics/BUILD
@@ -47,9 +47,10 @@
deps = [
"//config:config-cxx",
"//third_party/glog:glog-cxx",
+ "@com_github_gflags_gflags//:gflags",
"//third_party/gperftools:tcmalloc-cxx",
"//third_party/kashmir:kashmir-cxx",
- "//third_party/protobuf:protobuf-cxx",
+ "@com_google_protobuf//:protobuf",
] + select({
"//tools/platform:darwin": [],
"//conditions:default": ["//third_party/libunwind:libunwind-cxx"],
diff --git a/heron/common/src/cpp/metrics/BUILD b/heron/common/src/cpp/metrics/BUILD
index f3eefeb..e7663a1 100644
--- a/heron/common/src/cpp/metrics/BUILD
+++ b/heron/common/src/cpp/metrics/BUILD
@@ -39,7 +39,7 @@
"//heron/common/src/cpp/network:network-cxx",
"//heron/common/src/cpp/config:config-cxx",
"//third_party/glog:glog-cxx",
- "//third_party/protobuf:protobuf-cxx",
+ "@com_google_protobuf//:protobuf",
],
linkstatic = 1,
)
diff --git a/heron/common/tests/cpp/basics/BUILD b/heron/common/tests/cpp/basics/BUILD
index e4f897a..ec5ce92 100644
--- a/heron/common/tests/cpp/basics/BUILD
+++ b/heron/common/tests/cpp/basics/BUILD
@@ -5,7 +5,7 @@
srcs = ["fileutils_unittest.cpp"],
deps = [
"//heron/common/src/cpp/basics:basics-cxx",
- "//third_party/gtest:gtest-cxx",
+ "@com_google_googletest//:gtest",
],
copts = [
"-I.",
@@ -20,7 +20,7 @@
srcs = ["rid_unittest.cpp"],
deps = [
"//heron/common/src/cpp/basics:basics-cxx",
- "//third_party/gtest:gtest-cxx",
+ "@com_google_googletest//:gtest",
],
copts = [
"-I.",
@@ -35,7 +35,7 @@
srcs = ["strutils_unittest.cpp"],
deps = [
"//heron/common/src/cpp/basics:basics-cxx",
- "//third_party/gtest:gtest-cxx",
+ "@com_google_googletest//:gtest",
],
copts = [
"-I.",
@@ -50,7 +50,7 @@
srcs = ["utils_unittest.cpp"],
deps = [
"//heron/common/src/cpp/basics:basics-cxx",
- "//third_party/gtest:gtest-cxx",
+ "@com_google_googletest//:gtest",
],
copts = [
"-I.",
diff --git a/heron/common/tests/cpp/errors/BUILD b/heron/common/tests/cpp/errors/BUILD
index 40611ac..39fa327 100644
--- a/heron/common/tests/cpp/errors/BUILD
+++ b/heron/common/tests/cpp/errors/BUILD
@@ -39,7 +39,7 @@
],
deps = [
"//heron/common/src/cpp/errors:errors-cxx",
- "//third_party/gtest:gtest-cxx",
+ "@com_google_googletest//:gtest",
],
copts = [
"-I.",
@@ -61,7 +61,7 @@
],
deps = [
"//heron/common/src/cpp/errors:errors-cxx",
- "//third_party/gtest:gtest-cxx",
+ "@com_google_googletest//:gtest",
],
copts = [
"-I.",
@@ -83,7 +83,7 @@
],
deps = [
"//heron/common/src/cpp/errors:errors-cxx",
- "//third_party/gtest:gtest-cxx",
+ "@com_google_googletest//:gtest",
],
copts = [
"-I.",
diff --git a/heron/common/tests/cpp/metrics/BUILD b/heron/common/tests/cpp/metrics/BUILD
index 12ba596..41dc251 100644
--- a/heron/common/tests/cpp/metrics/BUILD
+++ b/heron/common/tests/cpp/metrics/BUILD
@@ -7,7 +7,7 @@
],
deps = [
"//heron/common/src/cpp/metrics:metrics-cxx",
- "//third_party/gtest:gtest-cxx",
+ "@com_google_googletest//:gtest",
],
copts = [
"-Iheron",
@@ -26,7 +26,7 @@
],
deps = [
"//heron/common/src/cpp/metrics:metrics-cxx",
- "//third_party/gtest:gtest-cxx",
+ "@com_google_googletest//:gtest",
],
copts = [
"-Iheron",
@@ -45,7 +45,7 @@
],
deps = [
"//heron/common/src/cpp/metrics:metrics-cxx",
- "//third_party/gtest:gtest-cxx",
+ "@com_google_googletest//:gtest",
],
copts = [
"-Iheron",
@@ -64,7 +64,7 @@
],
deps = [
"//heron/common/src/cpp/metrics:metrics-cxx",
- "//third_party/gtest:gtest-cxx",
+ "@com_google_googletest//:gtest",
],
copts = [
"-Iheron",
@@ -83,7 +83,7 @@
],
deps = [
"//heron/common/src/cpp/metrics:metrics-cxx",
- "//third_party/gtest:gtest-cxx",
+ "@com_google_googletest//:gtest",
],
copts = [
"-Iheron",
diff --git a/heron/common/tests/cpp/network/BUILD b/heron/common/tests/cpp/network/BUILD
index ddaf4fc..44826da 100644
--- a/heron/common/tests/cpp/network/BUILD
+++ b/heron/common/tests/cpp/network/BUILD
@@ -21,7 +21,7 @@
],
deps = [
"//heron/common/src/cpp/network:network-cxx",
- "//third_party/gtest:gtest-cxx",
+ "@com_google_googletest//:gtest",
],
copts = [
"-Iheron/common/src/cpp",
@@ -47,7 +47,7 @@
deps = [
":proto_unittests_cc",
"//heron/common/src/cpp/network:network-cxx",
- "//third_party/gtest:gtest-cxx",
+ "@com_google_googletest//:gtest",
],
copts = [
"-Iheron/common/src/cpp",
@@ -67,7 +67,7 @@
deps = [
":proto_unittests_cc",
"//heron/common/src/cpp/network:network-cxx",
- "//third_party/gtest:gtest-cxx",
+ "@com_google_googletest//:gtest",
],
copts = [
"-Iheron/common/src/cpp",
@@ -92,7 +92,7 @@
deps = [
":proto_unittests_cc",
"//heron/common/src/cpp/network:network-cxx",
- "//third_party/gtest:gtest-cxx",
+ "@com_google_googletest//:gtest",
],
copts = [
"-Iheron/common/src/cpp",
@@ -111,7 +111,7 @@
],
deps = [
"//heron/common/src/cpp/network:network-cxx",
- "//third_party/gtest:gtest-cxx",
+ "@com_google_googletest//:gtest",
],
copts = [
"-Iheron/common/src/cpp",
diff --git a/heron/common/tests/cpp/threads/BUILD b/heron/common/tests/cpp/threads/BUILD
index c169c7c..b5c4da5 100644
--- a/heron/common/tests/cpp/threads/BUILD
+++ b/heron/common/tests/cpp/threads/BUILD
@@ -5,7 +5,7 @@
srcs = ["spcountdownlatch_unittest.cpp"],
deps = [
"//heron/common/src/cpp/threads:threads-cxx",
- "//third_party/gtest:gtest-cxx",
+ "@com_google_googletest//:gtest",
],
copts = [
"-Iheron/common/src/cpp",
diff --git a/heron/proto/BUILD b/heron/proto/BUILD
index b4ce271..67deeff 100644
--- a/heron/proto/BUILD
+++ b/heron/proto/BUILD
@@ -232,7 +232,7 @@
":proto_topology_cc",
":proto_stats_cc",
":proto_common_cc",
- "//third_party/protobuf:protobuf-cxx",
+ "@com_google_protobuf//:protobuf",
],
linkstatic = 1,
)
diff --git a/heron/statemgrs/tests/cpp/BUILD b/heron/statemgrs/tests/cpp/BUILD
index b853a88..54d3515 100644
--- a/heron/statemgrs/tests/cpp/BUILD
+++ b/heron/statemgrs/tests/cpp/BUILD
@@ -7,8 +7,7 @@
],
deps = [
"//heron/statemgrs/src/cpp:statemgrs-cxx",
- "//third_party/gtest:gmock-cxx",
- "//third_party/gtest:gtest-cxx",
+ "@com_google_googletest//:gtest",
],
copts = [
"-Iheron",
diff --git a/heron/stmgr/tests/cpp/grouping/BUILD b/heron/stmgr/tests/cpp/grouping/BUILD
index e41eead..79c03b3 100644
--- a/heron/stmgr/tests/cpp/grouping/BUILD
+++ b/heron/stmgr/tests/cpp/grouping/BUILD
@@ -7,7 +7,7 @@
],
deps = [
"//heron/stmgr/src/cpp:grouping-cxx",
- "//third_party/gtest:gtest-cxx",
+ "@com_google_googletest//:gtest",
],
copts = [
"-Iheron",
@@ -27,7 +27,7 @@
],
deps = [
"//heron/stmgr/src/cpp:grouping-cxx",
- "//third_party/gtest:gtest-cxx",
+ "@com_google_googletest//:gtest",
],
copts = [
"-Iheron",
@@ -47,7 +47,7 @@
],
deps = [
"//heron/stmgr/src/cpp:grouping-cxx",
- "//third_party/gtest:gtest-cxx",
+ "@com_google_googletest//:gtest",
],
copts = [
"-Iheron",
@@ -67,7 +67,7 @@
],
deps = [
"//heron/stmgr/src/cpp:grouping-cxx",
- "//third_party/gtest:gtest-cxx",
+ "@com_google_googletest//:gtest",
],
copts = [
"-Iheron",
@@ -87,7 +87,7 @@
],
deps = [
"//heron/stmgr/src/cpp:grouping-cxx",
- "//third_party/gtest:gtest-cxx",
+ "@com_google_googletest//:gtest",
],
copts = [
"-Iheron",
diff --git a/heron/stmgr/tests/cpp/server/BUILD b/heron/stmgr/tests/cpp/server/BUILD
index 1b0fe7a..b26d5d1 100644
--- a/heron/stmgr/tests/cpp/server/BUILD
+++ b/heron/stmgr/tests/cpp/server/BUILD
@@ -19,7 +19,7 @@
"//heron/stmgr/src/cpp:util-cxx",
# TODO: Stmgr unit tests should not depend on tmaster
"//heron/tmaster/src/cpp:tmaster-cxx",
- "//third_party/gtest:gtest-cxx",
+ "@com_google_googletest//:gtest",
],
data = [
"//heron/config/src/yaml:test-config-internals-yaml",
@@ -48,7 +48,7 @@
"//heron/stmgr/src/cpp:manager-cxx",
"//heron/stmgr/src/cpp:grouping-cxx",
"//heron/stmgr/src/cpp:util-cxx",
- "//third_party/gtest:gtest-cxx",
+ "@com_google_googletest//:gtest",
],
copts = [
"-Iheron",
@@ -78,7 +78,7 @@
"//heron/stmgr/src/cpp:manager-cxx",
"//heron/stmgr/src/cpp:grouping-cxx",
"//heron/stmgr/src/cpp:util-cxx",
- "//third_party/gtest:gtest-cxx",
+ "@com_google_googletest//:gtest",
],
data = ["//heron/config/src/yaml:test-config-internals-yaml"],
copts = [
diff --git a/heron/stmgr/tests/cpp/util/BUILD b/heron/stmgr/tests/cpp/util/BUILD
index 2719c33..96c269a 100644
--- a/heron/stmgr/tests/cpp/util/BUILD
+++ b/heron/stmgr/tests/cpp/util/BUILD
@@ -7,7 +7,7 @@
],
deps = [
"//heron/stmgr/src/cpp:util-cxx",
- "//third_party/gtest:gtest-cxx",
+ "@com_google_googletest//:gtest",
],
copts = [
"-Iheron",
@@ -28,7 +28,7 @@
],
deps = [
"//heron/stmgr/src/cpp:util-cxx",
- "//third_party/gtest:gtest-cxx",
+ "@com_google_googletest//:gtest",
],
data = ["//heron/config/src/yaml:test-config-internals-yaml"],
copts = [
@@ -50,7 +50,7 @@
],
deps = [
"//heron/stmgr/src/cpp:util-cxx",
- "//third_party/gtest:gtest-cxx",
+ "@com_google_googletest//:gtest",
],
data = ["//heron/config/src/yaml:test-config-internals-yaml"],
copts = [
@@ -73,7 +73,7 @@
"//heron/stmgr/src/cpp:manager-cxx",
"//heron/stmgr/src/cpp:grouping-cxx",
"//heron/stmgr/src/cpp:util-cxx",
- "//third_party/gtest:gtest-cxx",
+ "@com_google_googletest//:gtest",
],
copts = [
"-Iheron",
diff --git a/heron/tmaster/tests/cpp/server/BUILD b/heron/tmaster/tests/cpp/server/BUILD
index e0d37d2..da046de 100644
--- a/heron/tmaster/tests/cpp/server/BUILD
+++ b/heron/tmaster/tests/cpp/server/BUILD
@@ -11,7 +11,7 @@
deps = [
"//heron/stmgr/src/cpp:manager-cxx",
"//heron/tmaster/src/cpp:tmaster-cxx",
- "//third_party/gtest:gtest-cxx",
+ "@com_google_googletest//:gtest",
],
data = [
"//heron/config/src/yaml:test-config-internals-yaml",
@@ -39,7 +39,7 @@
deps = [
"//heron/stmgr/src/cpp:manager-cxx",
"//heron/tmaster/src/cpp:tmaster-cxx",
- "//third_party/gtest:gtest-cxx",
+ "@com_google_googletest//:gtest",
],
copts = [
"-Iheron",
@@ -67,7 +67,7 @@
],
deps = [
"//heron/tmaster/src/cpp:tmaster-cxx",
- "//third_party/gtest:gtest-cxx",
+ "@com_google_googletest//:gtest",
],
copts = [
"-Iheron",
@@ -81,4 +81,4 @@
size = "small",
flaky = 1,
linkstatic = 1,
-)
\ No newline at end of file
+)
diff --git a/third_party/gflags/BUILD b/third_party/gflags/BUILD
deleted file mode 100644
index 094cef1..0000000
--- a/third_party/gflags/BUILD
+++ /dev/null
@@ -1,65 +0,0 @@
-licenses(["notice"])
-
-package(default_visibility = ["//visibility:public"])
-
-pkg_name = "gflags"
-pkg_version = "2.2.1"
-
-package_file = pkg_name + "-" + pkg_version + ".tar.gz"
-package_dir = pkg_name + "-" + pkg_version
-
-include_files = [
- "include/gflags/gflags.h",
- "include/gflags/gflags_completions.h",
- "include/gflags/gflags_declare.h",
- "include/gflags/gflags_gflags.h",
-]
-
-lib_files = [
- "lib/libgflags.a",
- "lib/libgflags_nothreads.a",
-]
-
-genrule(
- name = "gflags-srcs",
- srcs = [package_file],
- outs = include_files + lib_files,
- cmd = "\n".join([
- 'export INSTALL_DIR=$$(pwd)/$(@D)',
- 'export TMP_DIR=$$(mktemp -d -t gflags.XXXXX)',
- 'mkdir -p $$TMP_DIR',
- 'cp -R $(SRCS) $$TMP_DIR',
- 'cd $$TMP_DIR',
- 'tar xfz ' + package_file,
- 'cd ' + package_dir,
- 'cmake -DCMAKE_INSTALL_PREFIX:PATH=$$INSTALL_DIR .',
- 'make install',
- 'rm -rf $$TMP_DIR',
- ]),
-)
-
-
-cc_library(
- name = "gflags-cxx",
- srcs = [
- "empty.cc",
- "lib/libgflags.a",
- ],
- hdrs = include_files,
- includes = [
- "include",
- ],
- linkstatic = 1,
-)
-
-filegroup(
- name = "gflags",
- srcs = [
- ":gflags-cxx",
- ]
-)
-
-filegroup(
- name = "gflags-files",
- srcs = include_files + lib_files,
-)
diff --git a/third_party/gflags/empty.cc b/third_party/gflags/empty.cc
deleted file mode 100644
index b890e73..0000000
--- a/third_party/gflags/empty.cc
+++ /dev/null
@@ -1,2 +0,0 @@
-void _empty_gflags_xyz() {
-}
diff --git a/third_party/gflags/gflags-2.2.1.tar.gz b/third_party/gflags/gflags-2.2.1.tar.gz
deleted file mode 100644
index 9c5a6b9..0000000
--- a/third_party/gflags/gflags-2.2.1.tar.gz
+++ /dev/null
Binary files differ
diff --git a/third_party/glog/BUILD b/third_party/glog/BUILD
index f2d681c..870a4cf 100644
--- a/third_party/glog/BUILD
+++ b/third_party/glog/BUILD
@@ -65,9 +65,6 @@
cc_library(
name = "glog-cxx",
srcs = ["empty.cc"] + lib_files,
- deps = [
- "//third_party/gflags:gflags-cxx",
- ],
hdrs = include_files,
includes = [
"include",
diff --git a/third_party/gtest/BUILD b/third_party/gtest/BUILD
deleted file mode 100644
index baca57d..0000000
--- a/third_party/gtest/BUILD
+++ /dev/null
@@ -1,177 +0,0 @@
-licenses(["notice"])
-
-package(default_visibility = ["//visibility:public"])
-
-pkg_name = "googletest-release"
-pkg_version = "1.8.0"
-
-package_file = pkg_name + "-" + pkg_version + ".zip"
-package_dir = pkg_name + "-" + pkg_version
-
-gtest_include_files = [
- "include/gtest/gtest-death-test.h",
- "include/gtest/gtest-param-test.h.pump",
- "include/gtest/gtest-test-part.h",
- "include/gtest/gtest_pred_impl.h",
- "include/gtest/gtest-message.h",
- "include/gtest/gtest-printers.h",
- "include/gtest/gtest-typed-test.h",
- "include/gtest/gtest_prod.h",
- "include/gtest/gtest-param-test.h",
- "include/gtest/gtest-spi.h",
- "include/gtest/gtest.h",
-
- "include/gtest/internal/custom/gtest-port.h",
- "include/gtest/internal/custom/gtest-printers.h",
- "include/gtest/internal/custom/gtest.h",
-
- "include/gtest/internal/gtest-death-test-internal.h",
- "include/gtest/internal/gtest-param-util-generated.h.pump",
- "include/gtest/internal/gtest-tuple.h.pump",
- "include/gtest/internal/gtest-filepath.h",
- "include/gtest/internal/gtest-param-util.h",
- "include/gtest/internal/gtest-type-util.h",
- "include/gtest/internal/gtest-internal.h",
- "include/gtest/internal/gtest-port.h",
- "include/gtest/internal/gtest-port-arch.h",
- "include/gtest/internal/gtest-type-util.h.pump",
- "include/gtest/internal/gtest-linked_ptr.h",
- "include/gtest/internal/gtest-string.h",
- "include/gtest/internal/gtest-param-util-generated.h",
- "include/gtest/internal/gtest-tuple.h",
-]
-
-gtest_lib_files = [
- "lib/libgtest.a",
- "lib/libgtest_main.a",
-]
-
-gmock_include_files = [
- "include/gmock/gmock-actions.h",
- "include/gmock/gmock-generated-function-mockers.h.pump",
- "include/gmock/gmock-matchers.h",
- "include/gmock/gmock-cardinalities.h",
- "include/gmock/gmock-generated-matchers.h",
- "include/gmock/gmock-more-actions.h",
- "include/gmock/gmock-generated-actions.h",
- "include/gmock/gmock-generated-matchers.h.pump",
- "include/gmock/gmock-more-matchers.h",
- "include/gmock/gmock-generated-actions.h.pump",
- "include/gmock/gmock-generated-nice-strict.h",
- "include/gmock/gmock-spec-builders.h",
- "include/gmock/gmock-generated-function-mockers.h",
- "include/gmock/gmock-generated-nice-strict.h.pump",
- "include/gmock/gmock.h",
-
- "include/gmock/internal/custom/gmock-generated-actions.h",
- "include/gmock/internal/custom/gmock-generated-actions.h.pump",
- "include/gmock/internal/custom/gmock-matchers.h",
- "include/gmock/internal/custom/gmock-port.h",
-
- "include/gmock/internal/gmock-generated-internal-utils.h",
- "include/gmock/internal/gmock-internal-utils.h",
- "include/gmock/internal/gmock-generated-internal-utils.h.pump",
- "include/gmock/internal/gmock-port.h",
-]
-
-gmock_lib_files = [
- "lib/libgmock.a",
- "lib/libgmock_main.a",
-]
-
-include_files = gtest_include_files + gmock_include_files
-lib_files = gtest_lib_files + gmock_lib_files
-
-genrule(
- name = "gtest-srcs",
- srcs = [
- package_file,
- ],
- outs = include_files + lib_files,
- cmd = "\n".join([
- 'export TMP_DIR=$$(mktemp -d -t gtest.XXXXX)',
- 'export INSTALL_DIR=$$(pwd)/$(@D)',
- 'mkdir -p $$TMP_DIR',
- 'cp -R $(SRCS) $$TMP_DIR',
- 'cd $$TMP_DIR',
- 'unzip -q -o ' + package_file,
- 'cd ' + package_dir,
- 'cmake -DCMAKE_INSTALL_PREFIX:PATH=$$INSTALL_DIR .',
- 'make install',
- 'rm -rf $$TMP_DIR',
- ]),
-)
-
-cc_library(
- name = "gtest-cxx",
- srcs = [
- "empty.cc",
- "lib/libgtest.a",
- ],
- hdrs = gtest_include_files,
- includes = [
- "include",
- ],
- linkstatic = 1,
-)
-
-cc_library(
- name = "gtest_main-cxx",
- srcs = [
- "empty.cc",
- "lib/libgtest_main.a",
- ],
- deps = [
- ":gtest-cxx",
- ],
- linkstatic = 1,
- alwayslink = 1,
-)
-
-filegroup(
- name = "gtest",
- srcs = [
- ":gtest-cxx",
- ":gtest_main-cxx",
- ]
-)
-
-filegroup(
- name = "gtest-files",
- srcs = gtest_include_files + gtest_lib_files,
-)
-
-cc_library(
- name = "gmock-cxx",
- srcs = [
- "empty.cc",
- "lib/libgmock.a",
- ],
- hdrs = gmock_include_files,
- includes = [
- "include",
- ],
- linkstatic = 1,
-)
-
-cc_library(
- name = "gmock_main-cxx",
- srcs = [
- "empty.cc",
- "lib/libgmock_main.a",
- ],
- linkstatic = 1,
-)
-
-filegroup(
- name = "gmock",
- srcs = [
- ":gmock-cxx",
- ":gmock_main-cxx",
- ]
-)
-
-filegroup(
- name = "gmock-files",
- srcs = gmock_include_files + gmock_lib_files,
-)
diff --git a/third_party/gtest/empty.cc b/third_party/gtest/empty.cc
deleted file mode 100644
index 186c342..0000000
--- a/third_party/gtest/empty.cc
+++ /dev/null
@@ -1,2 +0,0 @@
-void _empty_gtest_xyz() {
-}
diff --git a/third_party/gtest/googletest-release-1.8.0.zip b/third_party/gtest/googletest-release-1.8.0.zip
deleted file mode 100644
index ee1136a..0000000
--- a/third_party/gtest/googletest-release-1.8.0.zip
+++ /dev/null
Binary files differ
diff --git a/third_party/gtest/gtest.BUILD b/third_party/gtest/gtest.BUILD
new file mode 100644
index 0000000..81ac254
--- /dev/null
+++ b/third_party/gtest/gtest.BUILD
@@ -0,0 +1,130 @@
+# Copyright 2017 Google Inc.
+# All Rights Reserved.
+#
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+# * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+# Author: misterg@google.com (Gennadiy Civil)
+#
+# Bazel Build for Google C++ Testing Framework(Google Test)
+
+package(default_visibility = ["//visibility:public"])
+
+licenses(["notice"])
+
+# Google Test including Google Mock
+cc_library(
+ name = "gtest",
+ srcs = glob(
+ include = [
+ "googletest/src/*.cc",
+ "googletest/src/*.h",
+ "googletest/include/gtest/**/*.h",
+ "googlemock/src/*.cc",
+ "googlemock/include/gmock/**/*.h",
+ ],
+ exclude = [
+ "googletest/src/gtest-all.cc",
+ "googletest/src/gtest_main.cc",
+ "googlemock/src/gmock-all.cc",
+ "googlemock/src/gmock_main.cc",
+ ],
+ ),
+ hdrs =glob([
+ "googletest/include/gtest/*.h",
+ "googlemock/include/gmock/*.h",
+ ]),
+ includes = [
+ "googlemock",
+ "googlemock/include",
+ "googletest",
+ "googletest/include",
+ ],
+)
+
+cc_library(
+ name = "gtest_main",
+ srcs = [
+ "googlemock/src/gmock_main.cc",
+ ],
+ deps = ["//:gtest"],
+)
+
+# The following rules build samples of how to use gTest.
+cc_library(
+ name = "gtest_sample_lib",
+ srcs = [
+ "googletest/samples/sample1.cc",
+ "googletest/samples/sample2.cc",
+ "googletest/samples/sample4.cc",
+ ],
+ hdrs = [
+ "googletest/samples/prime_tables.h",
+ "googletest/samples/sample1.h",
+ "googletest/samples/sample2.h",
+ "googletest/samples/sample3-inl.h",
+ "googletest/samples/sample4.h",
+ ],
+)
+
+cc_test(
+ name = "gtest_samples",
+ size = "small",
+ #All Samples except:
+ #sample9 ( main )
+ #sample10 (main and takes a command line option and needs to be separate)
+ srcs = [
+ "googletest/samples/sample1_unittest.cc",
+ "googletest/samples/sample2_unittest.cc",
+ "googletest/samples/sample3_unittest.cc",
+ "googletest/samples/sample4_unittest.cc",
+ "googletest/samples/sample5_unittest.cc",
+ "googletest/samples/sample6_unittest.cc",
+ "googletest/samples/sample7_unittest.cc",
+ "googletest/samples/sample8_unittest.cc",
+ ],
+ deps = [
+ "gtest_sample_lib",
+ ":gtest_main",
+ ],
+)
+
+cc_test(
+ name = "sample9_unittest",
+ size = "small",
+ srcs = ["googletest/samples/sample9_unittest.cc"],
+ deps = [":gtest"],
+)
+
+cc_test(
+ name = "sample10_unittest",
+ size = "small",
+ srcs = ["googletest/samples/sample10_unittest.cc"],
+ deps = [
+ ":gtest",
+ ],
+)
diff --git a/third_party/protobuf/BUILD b/third_party/protobuf/BUILD
deleted file mode 100644
index 2903a0f..0000000
--- a/third_party/protobuf/BUILD
+++ /dev/null
@@ -1,210 +0,0 @@
-licenses(["notice"])
-
-package(default_visibility = ["//visibility:public"])
-
-pkg_name = "protobuf"
-pkg_version = "3.4.0"
-
-pkg_file = pkg_name + "-" + pkg_version + ".tar.gz"
-pkg_dir = pkg_name + "-" + pkg_version
-pkg_patch = pkg_name + "-" + pkg_version + ".patch"
-
-gmock_name = "gmock"
-gmock_version = "1.7.0"
-gmock_file = gmock_name + "-" + gmock_version + ".zip"
-gmock_dir = gmock_name + "-" + gmock_version
-
-genrule(
- name = "protobuf-srcs",
- srcs = [pkg_file, pkg_patch, gmock_file],
- outs = [
- "bin/protoc",
-
- "include/google/protobuf/arena.h",
- "include/google/protobuf/arenastring.h",
- "include/google/protobuf/arena_impl.h",
- "include/google/protobuf/has_bits.h",
- "include/google/protobuf/stubs/atomic_sequence_num.h",
- "include/google/protobuf/stubs/fastmem.h",
- "include/google/protobuf/stubs/port.h",
- "include/google/protobuf/stubs/macros.h",
- "include/google/protobuf/stubs/logging.h",
- "include/google/protobuf/stubs/scoped_ptr.h",
- "include/google/protobuf/stubs/mutex.h",
- "include/google/protobuf/stubs/callback.h",
- "include/google/protobuf/stubs/shared_ptr.h",
- "include/google/protobuf/stubs/hash.h",
- "include/google/protobuf/stubs/casts.h",
-
- "include/google/protobuf/extension_set.h",
- "include/google/protobuf/map.h",
- "include/google/protobuf/map_type_handler.h",
- "include/google/protobuf/map_entry_lite.h",
- "include/google/protobuf/metadata_lite.h",
- "include/google/protobuf/message_lite.h",
- "include/google/protobuf/unknown_field_set.h",
- "include/google/protobuf/descriptor.h",
- "include/google/protobuf/generated_enum_reflection.h",
- "include/google/protobuf/reflection_ops.h",
- "include/google/protobuf/wire_format.h",
- "include/google/protobuf/descriptor.pb.h",
- "include/google/protobuf/generated_message_reflection.h",
- "include/google/protobuf/repeated_field.h",
- "include/google/protobuf/wire_format_lite.h",
- "include/google/protobuf/descriptor.proto",
- "include/google/protobuf/generated_message_util.h",
- "include/google/protobuf/generated_enum_util.h",
- "include/google/protobuf/service.h",
- "include/google/protobuf/wire_format_lite_inl.h",
- "include/google/protobuf/descriptor_database.h",
- "include/google/protobuf/dynamic_message.h",
- "include/google/protobuf/message.h",
- "include/google/protobuf/text_format.h",
- "include/google/protobuf/metadata.h",
- "include/google/protobuf/generated_message_table_driven.h",
-
- "include/google/protobuf/compiler/code_generator.h",
- "include/google/protobuf/compiler/command_line_interface.h",
- "include/google/protobuf/compiler/importer.h",
- "include/google/protobuf/compiler/parser.h",
- "include/google/protobuf/compiler/plugin.h",
- "include/google/protobuf/compiler/plugin.pb.h",
- "include/google/protobuf/compiler/plugin.proto",
-
- "include/google/protobuf/compiler/cpp/cpp_generator.h",
- "include/google/protobuf/compiler/java/java_generator.h",
- "include/google/protobuf/compiler/python/python_generator.h",
-
- "include/google/protobuf/io/coded_stream.h",
- "include/google/protobuf/io/gzip_stream.h",
- "include/google/protobuf/io/printer.h",
- "include/google/protobuf/io/tokenizer.h",
- "include/google/protobuf/io/zero_copy_stream.h",
- "include/google/protobuf/io/zero_copy_stream_impl.h",
- "include/google/protobuf/io/zero_copy_stream_impl_lite.h",
-
- "include/google/protobuf/stubs/atomicops.h",
- "include/google/protobuf/stubs/atomicops_internals_mips_gcc.h",
- "include/google/protobuf/stubs/once.h",
- "include/google/protobuf/stubs/atomicops_internals_arm_gcc.h",
- "include/google/protobuf/stubs/platform_macros.h",
- "include/google/protobuf/stubs/atomicops_internals_arm_qnx.h",
- "include/google/protobuf/stubs/atomicops_internals_x86_gcc.h",
- "include/google/protobuf/stubs/template_util.h",
- "include/google/protobuf/stubs/atomicops_internals_atomicword_compat.h",
- "include/google/protobuf/stubs/atomicops_internals_x86_msvc.h",
- "include/google/protobuf/stubs/type_traits.h",
- "include/google/protobuf/stubs/common.h",
-
- "lib/libprotobuf-lite.a",
- "lib/libprotobuf.a",
- "lib/libprotoc.a",
- ],
- cmd = "\n".join([
- "export INSTALL_DIR=$$(pwd)/$(@D)",
- "export TMP_DIR=$$(mktemp -d -t protobuf.XXXXX)",
- "mkdir -p $$TMP_DIR",
- "cp -R $(SRCS) $$TMP_DIR",
- "cd $$TMP_DIR",
- "tar xfz " + pkg_file,
- "patch -d " + pkg_dir + " -p1 < " + pkg_patch,
- "cd " + pkg_dir,
- "unzip -q -o " + "../" + gmock_file,
- "mv " + gmock_dir + " gmock",
- "./autogen.sh",
- "./configure --prefix=$$INSTALL_DIR --enable-shared=no",
- "make install",
- "rm -rf $$TMP_DIR",
- ]),
-)
-
-cc_library(
- name = "protobuf-cxx-lite",
- srcs = [
- "empty.cc",
- "lib/libprotobuf-lite.a",
- ],
- hdrs = [
- "include/google/protobuf/message_lite.h",
- ],
- includes = ["include"],
- linkstatic = 1,
-)
-
-cc_library(
- name = "protobuf-cxx",
- srcs = [
- "include/google/protobuf/descriptor.pb.h",
- "include/google/protobuf/generated_enum_reflection.h",
-
- "include/google/protobuf/stubs/atomicops.h",
- "include/google/protobuf/stubs/atomicops_internals_x86_gcc.h",
- "include/google/protobuf/stubs/atomicops_internals_atomicword_compat.h",
- "include/google/protobuf/stubs/platform_macros.h",
- "include/google/protobuf/stubs/type_traits.h",
- "include/google/protobuf/stubs/template_util.h",
-
- "empty.cc",
- "lib/libprotobuf.a",
- ],
- hdrs = [
- "include/google/protobuf/arena.h",
- "include/google/protobuf/arenastring.h",
- "include/google/protobuf/arena_impl.h",
- "include/google/protobuf/has_bits.h",
- "include/google/protobuf/stubs/atomic_sequence_num.h",
- "include/google/protobuf/stubs/common.h",
- "include/google/protobuf/stubs/fastmem.h",
- "include/google/protobuf/stubs/hash.h",
- "include/google/protobuf/stubs/once.h",
- "include/google/protobuf/stubs/port.h",
- "include/google/protobuf/stubs/macros.h",
- "include/google/protobuf/stubs/logging.h",
- "include/google/protobuf/stubs/scoped_ptr.h",
- "include/google/protobuf/stubs/mutex.h",
- "include/google/protobuf/stubs/callback.h",
- "include/google/protobuf/stubs/shared_ptr.h",
- "include/google/protobuf/stubs/casts.h",
-
- "include/google/protobuf/descriptor.h",
- "include/google/protobuf/extension_set.h",
- "include/google/protobuf/generated_enum_util.h",
- "include/google/protobuf/generated_message_util.h",
- "include/google/protobuf/generated_message_reflection.h",
- "include/google/protobuf/generated_message_table_driven.h",
- "include/google/protobuf/map.h",
- "include/google/protobuf/map_entry_lite.h",
- "include/google/protobuf/map_type_handler.h",
- "include/google/protobuf/message.h",
- "include/google/protobuf/message_lite.h",
- "include/google/protobuf/metadata.h",
- "include/google/protobuf/metadata_lite.h",
- "include/google/protobuf/reflection_ops.h",
- "include/google/protobuf/repeated_field.h",
- "include/google/protobuf/unknown_field_set.h",
- "include/google/protobuf/wire_format.h",
- "include/google/protobuf/wire_format_lite.h",
- "include/google/protobuf/wire_format_lite_inl.h",
-
- "include/google/protobuf/io/coded_stream.h",
- ],
- includes = [
- "include",
- ],
- linkstatic = 1,
-)
-
-cc_library(
- name = "protoc-cxx",
- srcs = [
- "empty.cc",
- "lib/libprotoc.a",
- ],
- deps = [":protobuf-cxx", ":gtest-cxx"],
- linkstatic = 1,
-)
-
-filegroup(
- name = "protoc",
- srcs = ["bin/protoc"]
-)
diff --git a/third_party/protobuf/empty.cc b/third_party/protobuf/empty.cc
deleted file mode 100644
index e2b1d40..0000000
--- a/third_party/protobuf/empty.cc
+++ /dev/null
@@ -1,2 +0,0 @@
-void _empty_protobuf_xyz() {
-}
diff --git a/third_party/protobuf/gmock-1.7.0.zip b/third_party/protobuf/gmock-1.7.0.zip
deleted file mode 100644
index 2f0edb9..0000000
--- a/third_party/protobuf/gmock-1.7.0.zip
+++ /dev/null
Binary files differ
diff --git a/third_party/protobuf/protobuf-3.4.0.patch b/third_party/protobuf/protobuf-3.4.0.patch
deleted file mode 100644
index 6be277d..0000000
--- a/third_party/protobuf/protobuf-3.4.0.patch
+++ /dev/null
@@ -1,295 +0,0 @@
-diff -rup protobuf-3.4.0.orig/configure.ac protobuf-3.4.0/configure.ac
---- protobuf-3.4.0.orig/configure.ac 2017-09-17 16:34:26.000000000 -0700
-+++ protobuf-3.4.0/configure.ac 2017-09-17 16:46:57.000000000 -0700
-@@ -65,7 +65,6 @@ AC_LANG([C++])
- ACX_USE_SYSTEM_EXTENSIONS
- m4_ifdef([AM_PROG_AR], [AM_PROG_AR])
- AM_CONDITIONAL(GCC, test "$GCC" = yes) # let the Makefile know if we're gcc
--AC_PROG_OBJC
-
- # test_util.cc takes forever to compile with GCC and optimization turned on.
- AC_MSG_CHECKING([C++ compiler flags...])
-@@ -189,15 +188,6 @@ case "$target_os" in
- ;;
- esac
-
--# Enable ObjC support for conformance directory on OS X.
--OBJC_CONFORMANCE_TEST=0
--case "$target_os" in
-- darwin*)
-- OBJC_CONFORMANCE_TEST=1
-- ;;
--esac
--AM_CONDITIONAL([OBJC_CONFORMANCE_TEST], [test $OBJC_CONFORMANCE_TEST = 1])
--
- AX_CXX_COMPILE_STDCXX([11], [noext], [optional])
-
- # HACK: Make gmock's configure script pick up our copy of CFLAGS and CXXFLAGS,
-diff -rup protobuf-3.4.0.orig/conformance/Makefile.am protobuf-3.4.0/conformance/Makefile.am
---- protobuf-3.4.0.orig/conformance/Makefile.am 2017-09-17 16:34:26.000000000 -0700
-+++ protobuf-3.4.0/conformance/Makefile.am 2017-09-17 16:48:31.000000000 -0700
-@@ -24,8 +24,6 @@ protoc_outputs =
-
- other_language_protoc_outputs = \
- conformance_pb2.py \
-- Conformance.pbobjc.h \
-- Conformance.pbobjc.m \
- conformance_pb.js \
- conformance_pb.rb \
- com/google/protobuf/Any.java \
-@@ -225,24 +223,6 @@ conformance_cpp_CPPFLAGS = -I$(top_srcdi
- # so a direct "make test_cpp" could fail if parallel enough.
- conformance_cpp-conformance_cpp.$(OBJEXT): conformance.pb.h
-
--if OBJC_CONFORMANCE_TEST
--
--bin_PROGRAMS += conformance-objc
--
--conformance_objc_SOURCES = conformance_objc.m ../objectivec/GPBProtocolBuffers.m
--nodist_conformance_objc_SOURCES = Conformance.pbobjc.m google/protobuf/TestMessagesProto2.pbobjc.m google/protobuf/TestMessagesProto3.pbobjc.m
--# On travis, the build fails without the isysroot because whatever system
--# headers are being found don't include generics support for
--# NSArray/NSDictionary, the only guess is their image at one time had an odd
--# setup for Xcode and old frameworks are being found.
--conformance_objc_CPPFLAGS = -I$(top_srcdir)/objectivec -isysroot `xcrun --sdk macosx --show-sdk-path`
--conformance_objc_LDFLAGS = -framework Foundation
--# Explicit dep beacuse BUILT_SOURCES are only done before a "make all/check"
--# so a direct "make test_objc" could fail if parallel enough.
--conformance_objc-conformance_objc.$(OBJEXT): Conformance.pbobjc.h google/protobuf/TestMessagesProto2.pbobjc.h google/protobuf/TestMessagesProto3.pbobjc.h
--
--endif
--
- # JavaScript well-known types are expected to be in a directory called
- # google-protobuf, because they are usually in the google-protobuf npm
- # package. But we want to use the sources from our tree, so we recreate
-@@ -363,9 +343,3 @@ test_python_cpp: protoc_middleman confor
- test_nodejs: protoc_middleman conformance-test-runner $(other_language_protoc_outputs)
- NODE_PATH=../js:. ./conformance-test-runner --enforce_recommended --failure_list failure_list_js.txt ./conformance_nodejs.js
-
--if OBJC_CONFORMANCE_TEST
--
--test_objc: protoc_middleman conformance-test-runner conformance-objc
-- ./conformance-test-runner --enforce_recommended --failure_list failure_list_objc.txt ./conformance-objc
--
--endif
-diff -rup protobuf-3.4.0.orig/conformance/conformance_objc.m protobuf-3.4.0/conformance/conformance_objc.m
---- protobuf-3.4.0.orig/conformance/conformance_objc.m 2017-09-17 16:34:26.000000000 -0700
-+++ protobuf-3.4.0/conformance/conformance_objc.m 2017-09-17 16:49:29.000000000 -0700
-@@ -1,188 +0,0 @@
--// Protocol Buffers - Google's data interchange format
--// Copyright 2015 Google Inc. All rights reserved.
--// https://developers.google.com/protocol-buffers/
--//
--// Redistribution and use in source and binary forms, with or without
--// modification, are permitted provided that the following conditions are
--// met:
--//
--// * Redistributions of source code must retain the above copyright
--// notice, this list of conditions and the following disclaimer.
--// * Redistributions in binary form must reproduce the above
--// copyright notice, this list of conditions and the following disclaimer
--// in the documentation and/or other materials provided with the
--// distribution.
--// * Neither the name of Google Inc. nor the names of its
--// contributors may be used to endorse or promote products derived from
--// this software without specific prior written permission.
--//
--// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
--// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
--// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
--// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
--// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
--// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
--// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
--// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
--// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
--// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
--// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
--
--#import <Foundation/Foundation.h>
--
--#import "Conformance.pbobjc.h"
--#import "google/protobuf/TestMessagesProto2.pbobjc.h"
--#import "google/protobuf/TestMessagesProto3.pbobjc.h"
--
--static void Die(NSString *format, ...) __dead2;
--
--static BOOL verbose = NO;
--static int32_t testCount = 0;
--
--static void Die(NSString *format, ...) {
-- va_list args;
-- va_start(args, format);
-- NSString *msg = [[NSString alloc] initWithFormat:format arguments:args];
-- NSLog(@"%@", msg);
-- va_end(args);
-- [msg release];
-- exit(66);
--}
--
--static NSData *CheckedReadDataOfLength(NSFileHandle *handle, NSUInteger numBytes) {
-- NSData *data = [handle readDataOfLength:numBytes];
-- NSUInteger dataLen = data.length;
-- if (dataLen == 0) {
-- return nil; // EOF.
-- }
-- if (dataLen != numBytes) {
-- Die(@"Failed to read the request length (%d), only got: %@",
-- numBytes, data);
-- }
-- return data;
--}
--
--static ConformanceResponse *DoTest(ConformanceRequest *request) {
-- ConformanceResponse *response = [ConformanceResponse message];
-- GPBMessage *testMessage = nil;
--
-- switch (request.payloadOneOfCase) {
-- case ConformanceRequest_Payload_OneOfCase_GPBUnsetOneOfCase:
-- Die(@"Request didn't have a payload: %@", request);
-- break;
--
-- case ConformanceRequest_Payload_OneOfCase_ProtobufPayload: {
-- Class msgClass = nil;
-- if ([request.messageType isEqual:@"protobuf_test_messages.proto3.TestAllTypesProto3"]) {
-- msgClass = [Proto3TestAllTypesProto3 class];
-- } else if ([request.messageType isEqual:@"protobuf_test_messages.proto2.TestAllTypesProto2"]) {
-- msgClass = [TestAllTypesProto2 class];
-- } else {
-- Die(@"Protobuf request had an unknown message_type: %@", request.messageType);
-- }
-- NSError *error = nil;
-- testMessage = [msgClass parseFromData:request.protobufPayload error:&error];
-- if (!testMessage) {
-- response.parseError =
-- [NSString stringWithFormat:@"Parse error: %@", error];
-- }
-- break;
-- }
--
-- case ConformanceRequest_Payload_OneOfCase_JsonPayload:
-- response.skipped = @"ObjC doesn't support parsing JSON";
-- break;
-- }
--
-- if (testMessage) {
-- switch (request.requestedOutputFormat) {
-- case WireFormat_GPBUnrecognizedEnumeratorValue:
-- case WireFormat_Unspecified:
-- Die(@"Unrecognized/unspecified output format: %@", request);
-- break;
--
-- case WireFormat_Protobuf:
-- response.protobufPayload = testMessage.data;
-- if (!response.protobufPayload) {
-- response.serializeError =
-- [NSString stringWithFormat:@"Failed to make data from: %@", testMessage];
-- }
-- break;
--
-- case WireFormat_Json:
-- response.skipped = @"ObjC doesn't support generating JSON";
-- break;
-- }
-- }
--
-- return response;
--}
--
--static uint32_t UInt32FromLittleEndianData(NSData *data) {
-- if (data.length != sizeof(uint32_t)) {
-- Die(@"Data not the right size for uint32_t: %@", data);
-- }
-- uint32_t value;
-- memcpy(&value, data.bytes, sizeof(uint32_t));
-- return CFSwapInt32LittleToHost(value);
--}
--
--static NSData *UInt32ToLittleEndianData(uint32_t num) {
-- uint32_t value = CFSwapInt32HostToLittle(num);
-- return [NSData dataWithBytes:&value length:sizeof(uint32_t)];
--}
--
--static BOOL DoTestIo(NSFileHandle *input, NSFileHandle *output) {
-- // See conformance_test_runner.cc for the wire format.
-- NSData *data = CheckedReadDataOfLength(input, sizeof(uint32_t));
-- if (!data) {
-- // EOF.
-- return NO;
-- }
-- uint32_t numBytes = UInt32FromLittleEndianData(data);
-- data = CheckedReadDataOfLength(input, numBytes);
-- if (!data) {
-- Die(@"Failed to read request");
-- }
--
-- NSError *error = nil;
-- ConformanceRequest *request = [ConformanceRequest parseFromData:data
-- error:&error];
-- if (!request) {
-- Die(@"Failed to parse the message data: %@", error);
-- }
--
-- ConformanceResponse *response = DoTest(request);
-- if (!response) {
-- Die(@"Failed to make a reply from %@", request);
-- }
--
-- data = response.data;
-- [output writeData:UInt32ToLittleEndianData((int32_t)data.length)];
-- [output writeData:data];
--
-- if (verbose) {
-- NSLog(@"Request: %@", request);
-- NSLog(@"Response: %@", response);
-- }
--
-- ++testCount;
-- return YES;
--}
--
--int main(int argc, const char *argv[]) {
-- @autoreleasepool {
-- NSFileHandle *input = [[NSFileHandle fileHandleWithStandardInput] retain];
-- NSFileHandle *output = [[NSFileHandle fileHandleWithStandardOutput] retain];
--
-- BOOL notDone = YES;
-- while (notDone) {
-- @autoreleasepool {
-- notDone = DoTestIo(input, output);
-- }
-- }
--
-- NSLog(@"Received EOF from test runner after %d tests, exiting.", testCount);
-- }
-- return 0;
--}
-diff -rup protobuf-3.4.0.orig/src/google/protobuf/io/zero_copy_stream_impl_lite.h protobuf-3.4.0/src/google/protobuf/io/zero_copy_stream_impl_lite.h
---- protobuf-3.4.0.orig/src/google/protobuf/io/zero_copy_stream_impl_lite.h 2017-09-17 16:34:27.000000000 -0700
-+++ protobuf-3.4.0/src/google/protobuf/io/zero_copy_stream_impl_lite.h 2017-09-17 16:45:58.000000000 -0700
-@@ -377,13 +377,9 @@ class LIBPROTOBUF_EXPORT CopyingOutputSt
- // return value is valid until the next time the string is resized. We
- // trust the caller to treat the return value as an array of length s->size().
- inline char* mutable_string_data(string* s) {
--#ifdef LANG_CXX11
- // This should be simpler & faster than string_as_array() because the latter
- // is guaranteed to return NULL when *s is empty, so it has to check for that.
- return &(*s)[0];
--#else
-- return string_as_array(s);
--#endif
- }
-
- // as_string_data(s) is equivalent to
-@@ -392,11 +388,7 @@ inline char* mutable_string_data(string*
- // code can avoid that check.
- inline std::pair<char*, bool> as_string_data(string* s) {
- char *p = mutable_string_data(s);
--#ifdef LANG_CXX11
- return std::make_pair(p, true);
--#else
-- return std::make_pair(p, p != NULL);
--#endif
- }
-
- } // namespace io
diff --git a/third_party/protobuf/protobuf-3.4.0.tar.gz b/third_party/protobuf/protobuf-3.4.0.tar.gz
deleted file mode 100644
index 5431b5b..0000000
--- a/third_party/protobuf/protobuf-3.4.0.tar.gz
+++ /dev/null
Binary files differ
diff --git a/tools/java/src/com/twitter/bazel/checkstyle/CppCheckstyle.java b/tools/java/src/com/twitter/bazel/checkstyle/CppCheckstyle.java
index d1b6f87..32c6c75 100644
--- a/tools/java/src/com/twitter/bazel/checkstyle/CppCheckstyle.java
+++ b/tools/java/src/com/twitter/bazel/checkstyle/CppCheckstyle.java
@@ -131,6 +131,7 @@
return Collections2.filter(
cppInfo.getSourcesAndHeadersList(),
Predicates.and(
+ Predicates.not(Predicates.containsPattern("external/")),
Predicates.not(Predicates.containsPattern("third_party/")),
Predicates.not(Predicates.containsPattern("config/heron-config.h")),
Predicates.not(Predicates.containsPattern(".*pb.h$")),
diff --git a/tools/rules/genproto.bzl b/tools/rules/genproto.bzl
index 3b9a9cf..32438f3 100644
--- a/tools/rules/genproto.bzl
+++ b/tools/rules/genproto.bzl
@@ -48,7 +48,7 @@
genproto_java_impl,
attrs = genproto_base_attrs + {
"_protoc": attr.label(
- default = Label("//third_party/protobuf:protoc"),
+ default = Label("@com_google_protobuf//:protoc"),
allow_files = True,
single_file = True,
),
@@ -97,13 +97,13 @@
proto_src = src[:-6] + ".pb.cc"
proto_srcgen_rule = name + "_cc_src"
proto_lib = name + "_cc"
- protoc = "//third_party/protobuf:protoc"
+ protoc = "@com_google_protobuf//:protoc"
if not includes:
proto_cmd = "$(location %s) --cpp_out=$(@D) %s" % (protoc, proto_path)
else:
proto_cmd = "$(location %s) %s --cpp_out=$(@D) %s" % (protoc, proto_include_paths, proto_path)
- cc_deps = ["//third_party/protobuf:protobuf-cxx"]
+ cc_deps = ["@com_google_protobuf//:protobuf"]
proto_deps = [src, protoc]
for dep in deps:
cc_deps += [dep + "_cc"]
@@ -133,7 +133,7 @@
proto_src = src[:-6] + "_pb2.py"
proto_srcgen_rule = name + "_py_src"
proto_lib = name + "_py"
- protoc = "//third_party/protobuf:protoc"
+ protoc = "@com_google_protobuf//:protoc"
if not includes:
proto_cmd = "$(location %s) --python_out=$(@D) %s" % (protoc, proto_path)
else:
diff --git a/tools/rules/newgenproto.bzl b/tools/rules/newgenproto.bzl
deleted file mode 100644
index c26bd4d..0000000
--- a/tools/rules/newgenproto.bzl
+++ /dev/null
@@ -1,149 +0,0 @@
-load("pex_rules", "pex_library")
-
-standard_proto_path = "heron/proto"
-
-def _genproto_impl(ctx):
- proto_src_deps = [src.proto_src for src in ctx.attr.deps]
- inputs, outputs, arguments = [ctx.file.src] + proto_src_deps, [], ["--proto_path=."]
- for src in proto_src_deps:
- if src.path.startswith(standard_proto_path):
- arguments += ["--proto_path=" + standard_proto_path]
- break
-
- if ctx.attr.gen_cc:
- outputs += [ctx.outputs.cc_hdr, ctx.outputs.cc_src]
- arguments += ["--cpp_out=" + ctx.configuration.genfiles_dir.path]
-
- if ctx.attr.gen_java:
- if ctx.outputs.java_src.path.endswith(".srcjar"):
- srcjar = ctx.new_file(ctx.outputs.java_src.basename[:-6] + "jar")
- else:
- srcjar = ctx.outputs.java_src
- outputs += [srcjar]
- arguments += ["--java_out=" + srcjar.path]
-
- if ctx.attr.gen_py:
- outputs += [ctx.outputs.py_src]
- arguments += ["--python_out=" + ctx.configuration.genfiles_dir.path]
-
- ctx.action(
- mnemonic = "GenProto",
- inputs = inputs,
- outputs = outputs,
- arguments = arguments + [ctx.file.src.path],
- executable = ctx.executable._protoc)
-
- # This is required because protoc only understands .jar extensions, but Bazel
- # requires source JAR files end in .srcjar.
- if ctx.attr.gen_java and srcjar != ctx.outputs.java_src:
- ctx.action(
- mnemonic = "FixProtoSrcJar",
- inputs = [srcjar],
- outputs = [ctx.outputs.java_src],
- arguments = [srcjar.path, ctx.outputs.java_src.path],
- command = "cp $1 $2")
-
- # Fixup the resulting outputs to keep the source-only .jar out of the result.
- outputs += [ctx.outputs.java_src]
- outputs = [e for e in outputs if e != srcjar]
-
- return struct(files=set(outputs),
- proto_src=ctx.file.src)
-
-_genproto_attrs = {
- "src": attr.label(
- allow_files = FileType([".proto"]),
- single_file = True,
- ),
- "deps": attr.label_list(
- allow_files = False,
- providers = ["proto_src"],
- ),
- "_protoc": attr.label(
- default = Label("//third_party/protobuf:protoc"),
- executable = True,
- ),
- "gen_cc": attr.bool(),
- "gen_java": attr.bool(),
- "gen_py": attr.bool(),
-}
-
-def _genproto_outputs(attrs):
- outputs = {}
- if attrs.gen_cc:
- outputs += {
- "cc_hdr": "%{src}.pb.h",
- "cc_src": "%{src}.pb.cc"
- }
- if attrs.gen_java:
- outputs += {
- "java_src": "%{src}.srcjar",
- }
- if attrs.gen_py:
- outputs += {
- "py_src": "%{src}_pb2.py"
- }
- return outputs
-
-genproto = rule(
- _genproto_impl,
- attrs = _genproto_attrs,
- output_to_genfiles = True,
- outputs = _genproto_outputs,
-)
-
-def proto_library(name, src=None, deps=[], visibility=None,
- gen_java=False, gen_cc=False, gen_py=False):
- if not src:
- if name.endswith("_proto"):
- src = name[:-6] + ".proto"
- else:
- src = name + ".proto"
-
- proto_pkg = genproto(name=name,
- src=src,
- deps=deps,
- gen_java=gen_java,
- gen_cc=gen_cc,
- gen_py=gen_py)
-
- # TODO(shahms): These should probably not be separate libraries, but
- # allowing upstream *_library and *_binary targets to depend on the
- # proto_library() directly is a challenge. We'd also need a different
- # workaround for the non-generated any.pb.{h,cc} from the upstream protocol
- # buffer library.
- if gen_java:
- java_deps = ["@com_google_protobuf_protobuf_java//jar"]
- for dep in deps:
- java_deps += [dep + "_java"]
- native.java_library(
- name = name + "_java",
- srcs = [proto_pkg.label()],
- deps = java_deps,
- visibility = visibility,
- )
-
- if gen_cc:
- cc_deps = ["//third_party/protobuf:protobuf-cxx"]
- for dep in deps:
- cc_deps += [dep + "_cc"]
- native.cc_library(
- name = name + "_cc",
- visibility = visibility,
- hdrs = [proto_pkg.label()],
- srcs = [proto_pkg.label()],
- defines = ["GOOGLE_PROTOBUF_NO_RTTI"],
- deps = cc_deps,
- )
-
- if gen_py:
- py_deps = []
- for dep in deps:
- py_deps += [dep + "_py"]
- pex_library(
- name = name + "_py",
- visibility = visibility,
- srcs = [proto_pkg.label()],
- deps = py_deps,
- )
-
diff --git a/tools/rules/proto.bzl b/tools/rules/proto.bzl
index a409293..6c82a7e 100644
--- a/tools/rules/proto.bzl
+++ b/tools/rules/proto.bzl
@@ -48,7 +48,7 @@
genproto_java_impl,
attrs = genproto_base_attrs + {
"_protoc": attr.label(
- default = Label("//third_party/protobuf:protoc"),
+ default = Label("@com_google_protobuf//:protoc"),
allow_files = True,
single_file = True,
),