diff --git a/WORKSPACE b/WORKSPACE index 806004774490e3514b15fd02debd8be58be89e6c..14699da90523c48d80f8ba5917bc7aa7e29e0152 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -23,3 +23,12 @@ git_repository( tag = "v2.2.0", remote = "https://github.com/gflags/gflags.git" ) + +# External dependency to glog. This method comes from +# https://github.com/reyoung/bazel_playground/blob/master/WORKSPACE +new_git_repository( + name = "glog", + remote = "https://github.com/google/glog.git", + commit = "b6a5e0524c28178985f0d228e9eaa43808dbec3c", + build_file = "third_party/glog.BUILD" +) diff --git a/third_party/gflags_test/BUILD b/third_party/gflags_test/BUILD index c3e53afb4079f29c96db5f55441dc1b0574caf10..a018299ec475d74b20caf92a15cad885402329ca 100644 --- a/third_party/gflags_test/BUILD +++ b/third_party/gflags_test/BUILD @@ -5,7 +5,7 @@ cc_test( srcs = ["gflags_test.cc"], copts = ["-Iexternal/gtest/include"], deps = [ - "@gtest//:main", + "@gtest//:gtest", "@gflags//:gflags", ], ) diff --git a/third_party/glog.BUILD b/third_party/glog.BUILD new file mode 100644 index 0000000000000000000000000000000000000000..560c82d8d30d63412ddab23d695b312862dd3c7b --- /dev/null +++ b/third_party/glog.BUILD @@ -0,0 +1,169 @@ +licenses(["notice"]) + +cc_library( + visibility = ["//visibility:public"], + name = "glog", + deps = [ + #"//third_party/libunwind:libunwind-k8", + "@gflags//:gflags", + ], + includes = [ + ".", + "src", + ], + copts = [ + "-D_START_GOOGLE_NAMESPACE_='namespace google {'", + "-D_END_GOOGLE_NAMESPACE_='}'", + "-DGOOGLE_NAMESPACE='google'", + "-DGOOGLE_GLOG_DLL_DECL=''", + "-DHAVE_DLADDR", + "-DHAVE_SNPRINTF", + "-DHAVE_DLFCN_H", + "-DHAVE_FCNTL", + "-DHAVE_GLOB_H", + "-DHAVE_INTTYPES_H", + "-DHAVE_LIBPTHREAD", + "-DHAVE_SYS_SYSCALL_H", + #"-DHAVE_LIBUNWIND_H", + "-DHAVE_LIB_GFLAGS", + #"-DHAVE_LIB_UNWIND", + "-DHAVE_MEMORY_H", + "-DHAVE_NAMESPACES", + "-DHAVE_PREAD", + "-DHAVE_PTHREAD", + "-DHAVE_PWD_H", + "-DHAVE_PWRITE", + "-DHAVE_RWLOCK", + "-DHAVE_SIGACTION", + "-DHAVE_SIGALTSTACK", + "-DHAVE_STDINT_H", + "-DHAVE_STRING_H", + "-DHAVE_SYS_TIME_H", + "-DHAVE_SYS_TYPES_H", + "-DHAVE_SYS_UCONTEXT_H", + "-DHAVE_SYS_UTSNAME_H", + "-DHAVE_UNISTD_H", + "-DHAVE_USING_OPERATOR", + "-DHAVE_HAVE___ATTRIBUTE___", + "-DHAVE_HAVE___BUILTIN_EXPECT", + #"-DNO_FRAME_POINTER", + "-D_GNU_SOURCE", + #"-fno-sanitize=thread", + #"-fno-sanitize=address", + "-Iexternal/glog/src", + #"-I/usr/local/include", # XXX import libunwind + ], + srcs = [ + "src/demangle.cc", + "src/logging.cc", + "src/raw_logging.cc", + "src/signalhandler.cc", + "src/symbolize.cc", + "src/utilities.cc", + "src/vlog_is_on.cc", + ":config_h", + ":logging_h", + ":raw_logging_h", + ":stl_logging_h", + ":vlog_is_on_h", + ], + hdrs = [ + "src/demangle.h", + "src/mock-log.h", + "src/stacktrace.h", + #"src/stacktrace_libunwind-inl.h", + "src/symbolize.h", + "src/utilities.h", + "src/base/commandlineflags.h", + "src/base/googleinit.h", + "src/base/mutex.h", + "src/glog/log_severity.h", + ], + linkopts = [ + #"-pthread", + #"-L/usr/local/lib -lunwind", + ], +) + +genrule( + name = "config_h", + srcs = [ + "src/config.h.cmake.in", + ], + outs = [ + "config.h", + ], + cmd = "awk '{ gsub(/^#cmakedefine/, \"//cmakedefine\"); print; }' $(<) > $(@)", +) + +genrule( + name = "logging_h", + srcs = [ + "src/glog/logging.h.in", + ], + outs = [ + "glog/logging.h", + ], + cmd = "$(location :gen_sh) < $(<) > $(@)", + tools = [":gen_sh"], +) + +genrule( + name = "raw_logging_h", + srcs = [ + "src/glog/raw_logging.h.in", + ], + outs = [ + "glog/raw_logging.h", + ], + cmd = "$(location :gen_sh) < $(<) > $(@)", + tools = [":gen_sh"], +) + +genrule( + name = "stl_logging_h", + srcs = [ + "src/glog/stl_logging.h.in", + ], + outs = [ + "glog/stl_logging.h", + ], + cmd = "$(location :gen_sh) < $(<) > $(@)", + tools = [":gen_sh"], +) + +genrule( + name = "vlog_is_on_h", + srcs = [ + "src/glog/vlog_is_on.h.in", + ], + outs = [ + "glog/vlog_is_on.h", + ], + cmd = "$(location :gen_sh) < $(<) > $(@)", + tools = [":gen_sh"], +) + +genrule( + name = "gen_sh", + outs = [ + "gen.sh", + ], + cmd = """ +cat > $@ <<"EOF" +#! /bin/sh +sed -e 's/@ac_cv_have_unistd_h@/1/g' \ + -e 's/@ac_cv_have_stdint_h@/1/g' \ + -e 's/@ac_cv_have_systypes_h@/1/g' \ + -e 's/@ac_cv_have_libgflags_h@/1/g' \ + -e 's/@ac_cv_have_uint16_t@/1/g' \ + -e 's/@ac_cv_have___builtin_expect@/1/g' \ + -e 's/@ac_cv_have_.*@/0/g' \ + -e 's/@ac_google_start_namespace@/namespace google {/g' \ + -e 's/@ac_google_end_namespace@/}/g' \ + -e 's/@ac_google_namespace@/google/g' \ + -e 's/@ac_cv___attribute___noinline@/__attribute__((noinline))/g' \ + -e 's/@ac_cv___attribute___noreturn@/__attribute__((noreturn))/g' \ + -e 's/@ac_cv___attribute___printf_4_5@/__attribute__((__format__ (__printf__, 4, 5)))/g' +EOF""" +) diff --git a/third_party/gtest.BUILD b/third_party/gtest.BUILD index 3e68a1d879311de905fab2f4cd3486a4c72a3532..e9187e51ef517675ad0a32380609038fc59a6ac1 100644 --- a/third_party/gtest.BUILD +++ b/third_party/gtest.BUILD @@ -1,5 +1,5 @@ cc_library( - name = "main", + name = "gtest", srcs = glob( ["src/*.cc"], exclude = ["src/gtest-all.cc"] diff --git a/third_party/protobuf_test/BUILD b/third_party/protobuf_test/BUILD index 46f769da5f5004ef2c5f6ecee43bc8965c1d811d..29c5f344d313d7a467bc43ddcdd9b1c8be2ca817 100644 --- a/third_party/protobuf_test/BUILD +++ b/third_party/protobuf_test/BUILD @@ -21,7 +21,7 @@ cc_test( srcs = ["example_lib_test.cc"], copts = ["-Iexternal/gtest/include"], deps =[ - "@gtest//:main", + "@gtest//:gtest", ":example_lib", ], )