| 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), |
| ) |