# For platform specific build config
load(
"//tensorflow/core:platform/default/build_config.bzl",
+ "tf_platform_hdrs",
+ "tf_platform_srcs",
"tf_proto_library",
"tf_proto_library_cc",
"tf_additional_all_protos",
"tf_additional_libdevice_srcs",
"tf_additional_test_deps",
"tf_additional_test_srcs",
- "tf_env_time_hdrs",
- "tf_env_time_srcs",
"tf_kernel_tests_linkstatic",
"tf_additional_cloud_op_deps",
"tf_additional_cloud_kernel_deps",
)
PLATFORM_BASE_HDRS = [
+ "platform/env_time.h",
"platform/logging.h",
"platform/macros.h",
"platform/types.h",
"platform/cpu_feature_guard.h",
"platform/dynamic_annotations.h",
"platform/env.h",
- "platform/env_time.h",
"platform/file_system.h",
"platform/file_system_helper.h",
"platform/fingerprint.h",
# Smaller platform libraries that don't depend on "lib" or "lib_internal".
cc_library(
name = "platform_base",
- srcs = glob([
- "platform/*/integral_types.h",
- "platform/*/logging.h",
- ]),
+ srcs = tf_platform_hdrs([
+ "integral_types.h",
+ "logging.h",
+ ]) + tf_platform_srcs([
+ "logging.cc",
+ "env_time.cc",
+ ]) + [
+ "platform/env_time.cc",
+ ],
hdrs = PLATFORM_BASE_HDRS,
+ copts = tf_copts(),
deps = [
":lib_platform",
"//tensorflow/core/platform/default/build_config:base",
# don't have to depend on lib/platformlib.
cc_library(
name = "lib_proto_parsing",
- srcs = glob(tf_additional_proto_srcs()) + tf_env_time_srcs(),
+ srcs = glob(tf_additional_proto_srcs()),
hdrs = [
"lib/core/errors.h",
"lib/core/status.h",
"platform/types.h",
"platform/windows/cpu_info.h",
"lib/bfloat16/bfloat16.h",
- ] + tf_additional_proto_hdrs() + glob(tf_env_time_hdrs()),
+ ] + tf_additional_proto_hdrs(),
copts = tf_copts(),
deps = tf_lib_proto_parsing_deps() + [
+ ":platform_base",
"@double_conversion//:double-conversion",
],
)
"platform/**/env_time.cc",
"platform/**/cuda_libdevice_path.cc",
"platform/**/device_tracer.cc",
+ "platform/**/logging.cc",
"platform/abi.cc",
"platform/variant_coding.cc",
"platform/**/variant_cord_coding.cc",
"platform/**/stream_executor.h",
"platform/**/env_time.cc",
"platform/**/device_tracer.cc",
+ "platform/**/logging.cc",
"platform/abi.cc",
"platform/variant_coding.cc",
"platform/**/variant_cord_coding.cc",
srcs = ["platform/test_main.cc"],
copts = tf_copts(),
deps = [
- ":core_stringpiece",
+ # TODO(ahentz): we don't want to depend on "lib" here. It used to be
+ # that "core_stringpiece" was enough but that recently changed and
+ # we now need at least "str_util".
+ ":lib",
":lib_platform",
":stacktrace_handler",
":test_lite",
use_grpc_plugin = has_services,
)
+# A list of all files under platform matching the pattern in 'files'. In
+# contrast with 'tf_platform_srcs' below, which seletive collects files that
+# must be compiled in the 'default' platform, this is a list of all headers
+# mentioned in the platform/* files.
+def tf_platform_hdrs(files):
+ return native.glob(["platform/*/" + f for f in files])
+
+def tf_platform_srcs(files):
+ base_set = ["platform/default/" + f for f in files]
+ windows_set = base_set + ["platform/windows/" + f for f in files]
+ posix_set = base_set + ["platform/posix/" + f for f in files]
+ return select({
+ "//tensorflow:windows" : native.glob(windows_set),
+ "//tensorflow:windows_msvc" : native.glob(windows_set),
+ "//conditions:default" : native.glob(posix_set),
+ })
+
def tf_additional_lib_hdrs(exclude = []):
windows_hdrs = native.glob([
"platform/default/*.h",
def tf_additional_proto_srcs():
return [
- "platform/default/logging.cc",
"platform/default/protobuf.cc",
]
extra_deps=tf_protos_grappler_impl(),
otherwise=["//tensorflow/core/grappler/costs:op_performance_data_cc"])
-def tf_env_time_hdrs():
- return [
- "platform/env_time.h",
- ]
-
-def tf_env_time_srcs():
- win_env_time = native.glob([
- "platform/windows/env_time.cc",
- "platform/env_time.cc",
- ], exclude = [])
- return select({
- "//tensorflow:windows" : win_env_time,
- "//tensorflow:windows_msvc" : win_env_time,
- "//conditions:default" : native.glob([
- "platform/posix/env_time.cc",
- "platform/env_time.cc",
- ], exclude = []),
- })
-
def tf_additional_cupti_wrapper_deps():
return ["//tensorflow/core/platform/default/gpu:cupti_wrapper"]