Build benchmarks with Bazel
Change-Id: I559cc1aa17d5be01dcff931e05b22e0dd9e248b6
diff --git a/BUILD b/BUILD
index 9c6a48c..25949c1 100644
--- a/BUILD
+++ b/BUILD
@@ -199,3 +199,15 @@
) for test_filename in glob([
"internal/ceres/generated_bundle_adjustment_tests/*_test.cc",
])]
+
+# Build the benchmarks.
+[cc_binary(
+ name = benchmark_name,
+ srcs = ["internal/ceres/" + benchmark_name + ".cc"],
+ copts = TEST_COPTS,
+ deps = TEST_DEPS + ["@com_github_google_benchmark//:benchmark"],
+) for benchmark_name in [
+ "autodiff_cost_function_benchmark",
+ "small_blas_gemm_benchmark",
+ "small_blas_gemv_benchmark",
+]]
diff --git a/WORKSPACE b/WORKSPACE
index 78c0e74..7598813 100644
--- a/WORKSPACE
+++ b/WORKSPACE
@@ -63,3 +63,29 @@
"http://bitbucket.org/eigen/eigen/get/3.3.4.tar.bz2",
],
)
+
+# External dependency: Google Benchmark; has no Bazel build.
+new_http_archive(
+ name = "com_github_google_benchmark",
+ urls = ["https://github.com/google/benchmark/archive/56f52ee228783547f544d9ac4a533574b9010e3f.zip"],
+ sha256 = "8c1c6e90cd320b07504fabb86400f390faff2e599183ebd9396908817968ae79",
+ strip_prefix = "benchmark-56f52ee228783547f544d9ac4a533574b9010e3f",
+ build_file_content =
+"""
+cc_library(
+ name = "benchmark",
+ srcs = glob([
+ "src/*.h",
+ "src/*.cc",
+ ]),
+ hdrs = glob(["include/benchmark/*.h"]),
+ copts = [
+ "-DHAVE_STD_REGEX",
+ ],
+ includes = [
+ "include",
+ ],
+ visibility = ["//visibility:public"],
+)
+"""
+)