GLOG_CONFIG_HEADERS = [ "vlog_is_on.h", "stl_logging.h", "raw_logging.h", "logging.h", ] GLOG_SED_COMMAND = " ".join([ "sed", "-e 's/@ac_cv_cxx_using_operator@/1/g'", "-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@/0/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'", ]) def define_glog(): cxx_library( name = "glog", srcs = [ "glog/src/demangle.cc", "glog/src/vlog_is_on.cc", "glog/src/symbolize.cc", "glog/src/raw_logging.cc", "glog/src/logging.cc", "glog/src/signalhandler.cc", "glog/src/utilities.cc", ], exported_headers = [":glog_{}".format(header) for header in GLOG_CONFIG_HEADERS], header_namespace = "glog", compiler_flags = [ "-Wno-sign-compare", "-Wno-unused-function", "-Wno-unused-local-typedefs", "-Wno-unused-variable", "-Wno-deprecated-declarations", ], preferred_linkage = "static", exported_linker_flags = [], exported_preprocessor_flags = [ "-DGLOG_NO_ABBREVIATED_SEVERITIES", "-DGLOG_STL_LOGGING_FOR_UNORDERED", "-DGOOGLE_GLOG_DLL_DECL=", "-DGOOGLE_NAMESPACE=google", # this is required for buck build "-DGLOG_BAZEL_BUILD", "-DHAVE_PTHREAD", # Allows src/logging.cc to determine the host name. "-DHAVE_SYS_UTSNAME_H", # For src/utilities.cc. "-DHAVE_SYS_SYSCALL_H", "-DHAVE_SYS_TIME_H", "-DHAVE_STDINT_H", "-DHAVE_STRING_H", # Enable dumping stacktrace upon sigaction. "-DHAVE_SIGACTION", # For logging.cc. "-DHAVE_PREAD", "-DHAVE___ATTRIBUTE__", ], deps = [":glog_config"], soname = "libglog.$(ext)", visibility = ["PUBLIC"], ) cxx_library( name = "glog_config", header_namespace = "", exported_headers = { "config.h": ":glog_config.h", "glog/log_severity.h": "glog/src/glog/log_severity.h", }, ) genrule( name = "glog_config.h", srcs = ["glog/src/config.h.cmake.in"], out = "config.h", cmd = "awk '{ gsub(/^#cmakedefine/, \"//cmakedefine\"); print; }' $SRCS > $OUT", ) for header in GLOG_CONFIG_HEADERS: genrule( name = "glog_{}".format(header), out = header, srcs = ["glog/src/glog/{}.in".format(header)], cmd = "{} $SRCS > $OUT".format(GLOG_SED_COMMAND), )