Restore most of pull request #8606
Pull request #8606 added str(Label(...)) for most dependencies in tensorflow.bzl, allowing most functions to be used from repositories which include TensorFlow as a submodule. Unfortunately, it broke when pulled into Google and was removed in cl/152200430. This CL restores the change, except for two Android-only functions; these were the only problematic bits. Change: 152297413
This commit is contained in:
parent
0b1aee350e
commit
c699e5fa03
@ -41,76 +41,82 @@ def tf_android_core_proto_headers(core_proto_sources_relative):
|
|||||||
])
|
])
|
||||||
|
|
||||||
|
|
||||||
|
# Sanitize a dependency so that it works correctly from code that includes
|
||||||
|
# TensorFlow as a submodule.
|
||||||
|
def clean_dep(dep):
|
||||||
|
return str(Label(dep))
|
||||||
|
|
||||||
|
|
||||||
def if_android_x86(a):
|
def if_android_x86(a):
|
||||||
return select({
|
return select({
|
||||||
"//tensorflow:android_x86": a,
|
clean_dep("//tensorflow:android_x86"): a,
|
||||||
"//tensorflow:android_x86_64": a,
|
clean_dep("//tensorflow:android_x86_64"): a,
|
||||||
"//conditions:default": [],
|
"//conditions:default": [],
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
def if_android_arm(a):
|
def if_android_arm(a):
|
||||||
return select({
|
return select({
|
||||||
"//tensorflow:android_arm": a,
|
clean_dep("//tensorflow:android_arm"): a,
|
||||||
"//conditions:default": [],
|
"//conditions:default": [],
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
def if_android_arm64(a):
|
def if_android_arm64(a):
|
||||||
return select({
|
return select({
|
||||||
"//tensorflow:android_arm64": a,
|
clean_dep("//tensorflow:android_arm64"): a,
|
||||||
"//conditions:default": [],
|
"//conditions:default": [],
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
def if_not_android(a):
|
def if_not_android(a):
|
||||||
return select({
|
return select({
|
||||||
"//tensorflow:android": [],
|
clean_dep("//tensorflow:android"): [],
|
||||||
"//conditions:default": a,
|
"//conditions:default": a,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
def if_android(a):
|
def if_android(a):
|
||||||
return select({
|
return select({
|
||||||
"//tensorflow:android": a,
|
clean_dep("//tensorflow:android"): a,
|
||||||
"//conditions:default": [],
|
"//conditions:default": [],
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
def if_ios(a):
|
def if_ios(a):
|
||||||
return select({
|
return select({
|
||||||
"//tensorflow:ios": a,
|
clean_dep("//tensorflow:ios"): a,
|
||||||
"//conditions:default": [],
|
"//conditions:default": [],
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
def if_mobile(a):
|
def if_mobile(a):
|
||||||
return select({
|
return select({
|
||||||
"//tensorflow:android": a,
|
clean_dep("//tensorflow:android"): a,
|
||||||
"//tensorflow:ios": a,
|
clean_dep("//tensorflow:ios"): a,
|
||||||
"//conditions:default": [],
|
"//conditions:default": [],
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
def if_not_mobile(a):
|
def if_not_mobile(a):
|
||||||
return select({
|
return select({
|
||||||
"//tensorflow:android": [],
|
clean_dep("//tensorflow:android"): [],
|
||||||
"//tensorflow:ios": [],
|
clean_dep("//tensorflow:ios"): [],
|
||||||
"//conditions:default": a,
|
"//conditions:default": a,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
def if_not_windows(a):
|
def if_not_windows(a):
|
||||||
return select({
|
return select({
|
||||||
"//tensorflow:windows": [],
|
clean_dep("//tensorflow:windows"): [],
|
||||||
"//conditions:default": a,
|
"//conditions:default": a,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
def if_x86(a):
|
def if_x86(a):
|
||||||
return select({
|
return select({
|
||||||
"//tensorflow:linux_x86_64": a,
|
clean_dep("//tensorflow:linux_x86_64"): a,
|
||||||
"//tensorflow:windows": a,
|
clean_dep("//tensorflow:windows"): a,
|
||||||
"//conditions:default": [],
|
"//conditions:default": [],
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -124,13 +130,13 @@ def tf_copts():
|
|||||||
"-fno-exceptions",
|
"-fno-exceptions",
|
||||||
] + if_cuda(["-DGOOGLE_CUDA=1"]) + if_mkl(["-DINTEL_MKL=1"]) + if_android_arm(
|
] + if_cuda(["-DGOOGLE_CUDA=1"]) + if_mkl(["-DINTEL_MKL=1"]) + if_android_arm(
|
||||||
["-mfpu=neon"]) + if_x86(["-msse3"]) + select({
|
["-mfpu=neon"]) + if_x86(["-msse3"]) + select({
|
||||||
"//tensorflow:android": [
|
clean_dep("//tensorflow:android"): [
|
||||||
"-std=c++11",
|
"-std=c++11",
|
||||||
"-DTF_LEAN_BINARY",
|
"-DTF_LEAN_BINARY",
|
||||||
"-O2",
|
"-O2",
|
||||||
],
|
],
|
||||||
"//tensorflow:darwin": [],
|
clean_dep("//tensorflow:darwin"): [],
|
||||||
"//tensorflow:windows": [
|
clean_dep("//tensorflow:windows"): [
|
||||||
"/DLANG_CXX11",
|
"/DLANG_CXX11",
|
||||||
"/D__VERSION__=\\\"MSVC\\\"",
|
"/D__VERSION__=\\\"MSVC\\\"",
|
||||||
"/DPLATFORM_WINDOWS",
|
"/DPLATFORM_WINDOWS",
|
||||||
@ -138,7 +144,7 @@ def tf_copts():
|
|||||||
"/DEIGEN_HAS_C99_MATH",
|
"/DEIGEN_HAS_C99_MATH",
|
||||||
"/DTENSORFLOW_USE_EIGEN_THREADPOOL",
|
"/DTENSORFLOW_USE_EIGEN_THREADPOOL",
|
||||||
],
|
],
|
||||||
"//tensorflow:ios": ["-std=c++11"],
|
clean_dep("//tensorflow:ios"): ["-std=c++11"],
|
||||||
"//conditions:default": ["-pthread"]
|
"//conditions:default": ["-pthread"]
|
||||||
}))
|
}))
|
||||||
|
|
||||||
@ -166,7 +172,7 @@ def tf_gen_op_libs(op_lib_names, deps=None):
|
|||||||
name=n + "_op_lib",
|
name=n + "_op_lib",
|
||||||
copts=tf_copts(),
|
copts=tf_copts(),
|
||||||
srcs=["ops/" + n + ".cc"],
|
srcs=["ops/" + n + ".cc"],
|
||||||
deps=deps + ["//tensorflow/core:framework"],
|
deps=deps + [clean_dep("//tensorflow/core:framework")],
|
||||||
visibility=["//visibility:public"],
|
visibility=["//visibility:public"],
|
||||||
alwayslink=1,
|
alwayslink=1,
|
||||||
linkstatic=1,)
|
linkstatic=1,)
|
||||||
@ -175,7 +181,7 @@ def tf_gen_op_libs(op_lib_names, deps=None):
|
|||||||
def tf_gen_op_wrapper_cc(name,
|
def tf_gen_op_wrapper_cc(name,
|
||||||
out_ops_file,
|
out_ops_file,
|
||||||
pkg="",
|
pkg="",
|
||||||
op_gen="//tensorflow/cc:cc_op_gen_main",
|
op_gen=clean_dep("//tensorflow/cc:cc_op_gen_main"),
|
||||||
deps=None,
|
deps=None,
|
||||||
override_file=None,
|
override_file=None,
|
||||||
include_internal_ops=0):
|
include_internal_ops=0):
|
||||||
@ -242,11 +248,11 @@ def tf_gen_op_wrappers_cc(name,
|
|||||||
other_hdrs=[],
|
other_hdrs=[],
|
||||||
pkg="",
|
pkg="",
|
||||||
deps=[
|
deps=[
|
||||||
"//tensorflow/cc:ops",
|
clean_dep("//tensorflow/cc:ops"),
|
||||||
"//tensorflow/cc:scope",
|
clean_dep("//tensorflow/cc:scope"),
|
||||||
"//tensorflow/cc:const_op",
|
clean_dep("//tensorflow/cc:const_op"),
|
||||||
],
|
],
|
||||||
op_gen="//tensorflow/cc:cc_op_gen_main",
|
op_gen=clean_dep("//tensorflow/cc:cc_op_gen_main"),
|
||||||
override_file=None,
|
override_file=None,
|
||||||
include_internal_ops=0,
|
include_internal_ops=0,
|
||||||
visibility=None):
|
visibility=None):
|
||||||
@ -272,12 +278,12 @@ def tf_gen_op_wrappers_cc(name,
|
|||||||
srcs=subsrcs,
|
srcs=subsrcs,
|
||||||
hdrs=subhdrs,
|
hdrs=subhdrs,
|
||||||
deps=deps + if_not_android([
|
deps=deps + if_not_android([
|
||||||
"//tensorflow/core:core_cpu",
|
clean_dep("//tensorflow/core:core_cpu"),
|
||||||
"//tensorflow/core:framework",
|
clean_dep("//tensorflow/core:framework"),
|
||||||
"//tensorflow/core:lib",
|
clean_dep("//tensorflow/core:lib"),
|
||||||
"//tensorflow/core:protos_all_cc",
|
clean_dep("//tensorflow/core:protos_all_cc"),
|
||||||
]) + if_android([
|
]) + if_android([
|
||||||
"//tensorflow/core:android_tensorflow_lib",
|
clean_dep("//tensorflow/core:android_tensorflow_lib"),
|
||||||
]),
|
]),
|
||||||
copts=tf_copts(),
|
copts=tf_copts(),
|
||||||
alwayslink=1,
|
alwayslink=1,
|
||||||
@ -287,16 +293,16 @@ def tf_gen_op_wrappers_cc(name,
|
|||||||
srcs=internalsrcs,
|
srcs=internalsrcs,
|
||||||
hdrs=internalhdrs,
|
hdrs=internalhdrs,
|
||||||
deps=deps + if_not_android([
|
deps=deps + if_not_android([
|
||||||
"//tensorflow/core:core_cpu",
|
clean_dep("//tensorflow/core:core_cpu"),
|
||||||
"//tensorflow/core:framework",
|
clean_dep("//tensorflow/core:framework"),
|
||||||
"//tensorflow/core:lib",
|
clean_dep("//tensorflow/core:lib"),
|
||||||
"//tensorflow/core:protos_all_cc",
|
clean_dep("//tensorflow/core:protos_all_cc"),
|
||||||
]) + if_android([
|
]) + if_android([
|
||||||
"//tensorflow/core:android_tensorflow_lib",
|
clean_dep("//tensorflow/core:android_tensorflow_lib"),
|
||||||
]),
|
]),
|
||||||
copts=tf_copts(),
|
copts=tf_copts(),
|
||||||
alwayslink=1,
|
alwayslink=1,
|
||||||
visibility=["//tensorflow:internal"])
|
visibility=[clean_dep("//tensorflow:internal")])
|
||||||
|
|
||||||
|
|
||||||
# Invoke this rule in .../tensorflow/python to build the wrapper library.
|
# Invoke this rule in .../tensorflow/python to build the wrapper library.
|
||||||
@ -311,17 +317,17 @@ def tf_gen_op_wrapper_py(name,
|
|||||||
# Construct a cc_binary containing the specified ops.
|
# Construct a cc_binary containing the specified ops.
|
||||||
tool_name = "gen_" + name + "_py_wrappers_cc"
|
tool_name = "gen_" + name + "_py_wrappers_cc"
|
||||||
if not deps:
|
if not deps:
|
||||||
deps = ["//tensorflow/core:" + name + "_op_lib"]
|
deps = [str(Label("//tensorflow/core:" + name + "_op_lib"))]
|
||||||
native.cc_binary(
|
native.cc_binary(
|
||||||
name=tool_name,
|
name=tool_name,
|
||||||
linkopts=["-lm"],
|
linkopts=["-lm"],
|
||||||
copts=tf_copts(),
|
copts=tf_copts(),
|
||||||
linkstatic=1, # Faster to link this one-time-use binary dynamically
|
linkstatic=1, # Faster to link this one-time-use binary dynamically
|
||||||
deps=([
|
deps=([
|
||||||
"//tensorflow/core:framework",
|
clean_dep("//tensorflow/core:framework"),
|
||||||
"//tensorflow/python:python_op_gen_main"
|
clean_dep("//tensorflow/python:python_op_gen_main")
|
||||||
] + deps),
|
] + deps),
|
||||||
visibility=["//tensorflow:internal"],)
|
visibility=[clean_dep("//tensorflow:internal")],)
|
||||||
|
|
||||||
# Invoke the previous cc_binary to generate a python file.
|
# Invoke the previous cc_binary to generate a python file.
|
||||||
if not out:
|
if not out:
|
||||||
@ -363,7 +369,7 @@ def tf_gen_op_wrapper_py(name,
|
|||||||
srcs_version="PY2AND3",
|
srcs_version="PY2AND3",
|
||||||
visibility=visibility,
|
visibility=visibility,
|
||||||
deps=[
|
deps=[
|
||||||
"//tensorflow/python:framework_for_generated_wrappers_v2",
|
clean_dep("//tensorflow/python:framework_for_generated_wrappers_v2"),
|
||||||
],)
|
],)
|
||||||
|
|
||||||
|
|
||||||
@ -439,7 +445,7 @@ def tf_cuda_cc_test(name,
|
|||||||
name=name,
|
name=name,
|
||||||
srcs=srcs,
|
srcs=srcs,
|
||||||
suffix="_gpu",
|
suffix="_gpu",
|
||||||
deps=deps + if_cuda(["//tensorflow/core:gpu_runtime"]),
|
deps=deps + if_cuda([clean_dep("//tensorflow/core:gpu_runtime")]),
|
||||||
linkstatic=if_cuda(1, 0),
|
linkstatic=if_cuda(1, 0),
|
||||||
tags=tags + tf_cuda_tests_tags(),
|
tags=tags + tf_cuda_tests_tags(),
|
||||||
data=data,
|
data=data,
|
||||||
@ -547,8 +553,8 @@ def tf_gpu_kernel_library(srcs,
|
|||||||
hdrs=hdrs,
|
hdrs=hdrs,
|
||||||
copts=copts,
|
copts=copts,
|
||||||
deps=deps + if_cuda([
|
deps=deps + if_cuda([
|
||||||
"//tensorflow/core:cuda",
|
clean_dep("//tensorflow/core:cuda"),
|
||||||
"//tensorflow/core:gpu_lib",
|
clean_dep("//tensorflow/core:gpu_lib"),
|
||||||
]),
|
]),
|
||||||
alwayslink=1,
|
alwayslink=1,
|
||||||
**kwargs)
|
**kwargs)
|
||||||
@ -579,7 +585,7 @@ def tf_cuda_library(deps=None, cuda_deps=None, copts=None, **kwargs):
|
|||||||
|
|
||||||
native.cc_library(
|
native.cc_library(
|
||||||
deps=deps + if_cuda(cuda_deps + [
|
deps=deps + if_cuda(cuda_deps + [
|
||||||
"//tensorflow/core:cuda",
|
clean_dep("//tensorflow/core:cuda"),
|
||||||
"@local_config_cuda//cuda:cuda_headers"
|
"@local_config_cuda//cuda:cuda_headers"
|
||||||
]),
|
]),
|
||||||
copts=copts + if_cuda(["-DGOOGLE_CUDA=1"]) + if_mkl(["-DINTEL_MKL=1"]),
|
copts=copts + if_cuda(["-DGOOGLE_CUDA=1"]) + if_mkl(["-DINTEL_MKL=1"]),
|
||||||
@ -634,7 +640,7 @@ def tf_kernel_library(name,
|
|||||||
hdrs = hdrs + native.glob(
|
hdrs = hdrs + native.glob(
|
||||||
[prefix + "*.h"], exclude=[prefix + "*test*", prefix + "*.cu.h"])
|
[prefix + "*.h"], exclude=[prefix + "*test*", prefix + "*.cu.h"])
|
||||||
|
|
||||||
cuda_deps = ["//tensorflow/core:gpu_lib"]
|
cuda_deps = [clean_dep("//tensorflow/core:gpu_lib")]
|
||||||
if gpu_srcs:
|
if gpu_srcs:
|
||||||
for gpu_src in gpu_srcs:
|
for gpu_src in gpu_srcs:
|
||||||
if gpu_src.endswith(".cc") and not gpu_src.endswith(".cu.cc"):
|
if gpu_src.endswith(".cc") and not gpu_src.endswith(".cu.cc"):
|
||||||
@ -810,8 +816,8 @@ def cc_header_only_library(name, deps=[], **kwargs):
|
|||||||
def tf_custom_op_library_additional_deps():
|
def tf_custom_op_library_additional_deps():
|
||||||
return [
|
return [
|
||||||
"@protobuf//:protobuf_headers",
|
"@protobuf//:protobuf_headers",
|
||||||
"//third_party/eigen3",
|
clean_dep("//third_party/eigen3"),
|
||||||
"//tensorflow/core:framework_headers_lib",
|
clean_dep("//tensorflow/core:framework_headers_lib"),
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
@ -871,7 +877,7 @@ check_deps = rule(
|
|||||||
# implementations of custom ops and kernels.
|
# implementations of custom ops and kernels.
|
||||||
def tf_custom_op_library(name, srcs=[], gpu_srcs=[], deps=[]):
|
def tf_custom_op_library(name, srcs=[], gpu_srcs=[], deps=[]):
|
||||||
cuda_deps = [
|
cuda_deps = [
|
||||||
"//tensorflow/core:stream_executor_headers_lib",
|
clean_dep("//tensorflow/core:stream_executor_headers_lib"),
|
||||||
"@local_config_cuda//cuda:cudart_static",
|
"@local_config_cuda//cuda:cudart_static",
|
||||||
]
|
]
|
||||||
deps = deps + tf_custom_op_library_additional_deps()
|
deps = deps + tf_custom_op_library_additional_deps()
|
||||||
@ -888,8 +894,8 @@ def tf_custom_op_library(name, srcs=[], gpu_srcs=[], deps=[]):
|
|||||||
name=name + "_check_deps",
|
name=name + "_check_deps",
|
||||||
deps=deps + if_cuda(cuda_deps),
|
deps=deps + if_cuda(cuda_deps),
|
||||||
disallowed_deps=[
|
disallowed_deps=[
|
||||||
"//tensorflow/core:framework",
|
clean_dep("//tensorflow/core:framework"),
|
||||||
"//tensorflow/core:lib"
|
clean_dep("//tensorflow/core:lib")
|
||||||
])
|
])
|
||||||
|
|
||||||
native.cc_binary(
|
native.cc_binary(
|
||||||
@ -903,7 +909,7 @@ def tf_custom_op_library(name, srcs=[], gpu_srcs=[], deps=[]):
|
|||||||
"//conditions:default": [
|
"//conditions:default": [
|
||||||
"-lm",
|
"-lm",
|
||||||
],
|
],
|
||||||
"//tensorflow:darwin": [],
|
clean_dep("//tensorflow:darwin"): [],
|
||||||
}),)
|
}),)
|
||||||
|
|
||||||
|
|
||||||
@ -956,21 +962,21 @@ def tf_py_wrap_cc(name,
|
|||||||
extra_linkopts = select({
|
extra_linkopts = select({
|
||||||
"@local_config_cuda//cuda:darwin": [
|
"@local_config_cuda//cuda:darwin": [
|
||||||
"-Wl,-exported_symbols_list",
|
"-Wl,-exported_symbols_list",
|
||||||
"//tensorflow:tf_exported_symbols.lds"
|
clean_dep("//tensorflow:tf_exported_symbols.lds")
|
||||||
],
|
],
|
||||||
str(Label("//tensorflow:windows")): [],
|
clean_dep("//tensorflow:windows"): [],
|
||||||
"//conditions:default": [
|
"//conditions:default": [
|
||||||
"-Wl,--version-script",
|
"-Wl,--version-script",
|
||||||
"//tensorflow:tf_version_script.lds"
|
clean_dep("//tensorflow:tf_version_script.lds")
|
||||||
]
|
]
|
||||||
})
|
})
|
||||||
extra_deps += select({
|
extra_deps += select({
|
||||||
"@local_config_cuda//cuda:darwin": [
|
"@local_config_cuda//cuda:darwin": [
|
||||||
"//tensorflow:tf_exported_symbols.lds"
|
clean_dep("//tensorflow:tf_exported_symbols.lds")
|
||||||
],
|
],
|
||||||
"//tensorflow:windows": [],
|
clean_dep("//tensorflow:windows"): [],
|
||||||
"//conditions:default": [
|
"//conditions:default": [
|
||||||
"//tensorflow:tf_version_script.lds"
|
clean_dep("//tensorflow:tf_version_script.lds")
|
||||||
]
|
]
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -994,7 +1000,7 @@ def tf_py_wrap_cc(name,
|
|||||||
srcs=[":" + name + ".py"],
|
srcs=[":" + name + ".py"],
|
||||||
srcs_version="PY2AND3",
|
srcs_version="PY2AND3",
|
||||||
data=select({
|
data=select({
|
||||||
"//tensorflow:windows": [":" + cc_library_pyd_name],
|
clean_dep("//tensorflow:windows"): [":" + cc_library_pyd_name],
|
||||||
"//conditions:default": [":" + cc_library_name],
|
"//conditions:default": [":" + cc_library_name],
|
||||||
}))
|
}))
|
||||||
|
|
||||||
@ -1003,7 +1009,7 @@ def py_test(deps=[], **kwargs):
|
|||||||
native.py_test(
|
native.py_test(
|
||||||
deps=select({
|
deps=select({
|
||||||
"//conditions:default": deps,
|
"//conditions:default": deps,
|
||||||
"//tensorflow:no_tensorflow_py_deps": []
|
clean_dep("//tensorflow:no_tensorflow_py_deps"): []
|
||||||
}),
|
}),
|
||||||
**kwargs)
|
**kwargs)
|
||||||
|
|
||||||
@ -1028,15 +1034,15 @@ def tf_py_test(name,
|
|||||||
main=main,
|
main=main,
|
||||||
args=args,
|
args=args,
|
||||||
tags=tags,
|
tags=tags,
|
||||||
visibility=["//tensorflow:internal"],
|
visibility=[clean_dep("//tensorflow:internal")],
|
||||||
shard_count=shard_count,
|
shard_count=shard_count,
|
||||||
data=data,
|
data=data,
|
||||||
deps=select({
|
deps=select({
|
||||||
"//conditions:default": [
|
"//conditions:default": [
|
||||||
"//tensorflow/python:extra_py_tests_deps",
|
clean_dep("//tensorflow/python:extra_py_tests_deps"),
|
||||||
"//tensorflow/python:gradient_checker",
|
clean_dep("//tensorflow/python:gradient_checker"),
|
||||||
] + additional_deps,
|
] + additional_deps,
|
||||||
"//tensorflow:no_tensorflow_py_deps": []
|
clean_dep("//tensorflow:no_tensorflow_py_deps"): []
|
||||||
}),
|
}),
|
||||||
flaky=flaky,
|
flaky=flaky,
|
||||||
srcs_version="PY2AND3")
|
srcs_version="PY2AND3")
|
||||||
@ -1153,13 +1159,13 @@ def tf_generate_proto_text_sources(name, srcs_relative_dir, srcs):
|
|||||||
out_srcs = [p.replace(".proto", ".pb_text.cc") for p in srcs]
|
out_srcs = [p.replace(".proto", ".pb_text.cc") for p in srcs]
|
||||||
native.genrule(
|
native.genrule(
|
||||||
name=name,
|
name=name,
|
||||||
srcs=srcs + ["//tensorflow/tools/proto_text:placeholder.txt"],
|
srcs=srcs + [clean_dep("//tensorflow/tools/proto_text:placeholder.txt")],
|
||||||
outs=out_hdrs + out_srcs,
|
outs=out_hdrs + out_srcs,
|
||||||
cmd=
|
cmd=
|
||||||
"$(location //tensorflow/tools/proto_text:gen_proto_text_functions) "
|
"$(location //tensorflow/tools/proto_text:gen_proto_text_functions) "
|
||||||
+ "$(@D) " + srcs_relative_dir + " $(SRCS)",
|
+ "$(@D) " + srcs_relative_dir + " $(SRCS)",
|
||||||
tools=[
|
tools=[
|
||||||
"//tensorflow/tools/proto_text:gen_proto_text_functions"
|
clean_dep("//tensorflow/tools/proto_text:gen_proto_text_functions")
|
||||||
],)
|
],)
|
||||||
return struct(hdrs=out_hdrs, srcs=out_srcs)
|
return struct(hdrs=out_hdrs, srcs=out_srcs)
|
||||||
|
|
||||||
@ -1173,15 +1179,15 @@ def tf_version_info_genrule():
|
|||||||
native.genrule(
|
native.genrule(
|
||||||
name="version_info_gen",
|
name="version_info_gen",
|
||||||
srcs=[
|
srcs=[
|
||||||
"//tensorflow/tools/git:gen/spec.json",
|
clean_dep("//tensorflow/tools/git:gen/spec.json"),
|
||||||
"//tensorflow/tools/git:gen/head",
|
clean_dep("//tensorflow/tools/git:gen/head"),
|
||||||
"//tensorflow/tools/git:gen/branch_ref",
|
clean_dep("//tensorflow/tools/git:gen/branch_ref"),
|
||||||
],
|
],
|
||||||
outs=["util/version_info.cc"],
|
outs=["util/version_info.cc"],
|
||||||
cmd=
|
cmd=
|
||||||
"$(location //tensorflow/tools/git:gen_git_source.py) --generate $(SRCS) \"$@\"",
|
"$(location //tensorflow/tools/git:gen_git_source.py) --generate $(SRCS) \"$@\"",
|
||||||
local=1,
|
local=1,
|
||||||
tools=["//tensorflow/tools/git:gen_git_source.py"],)
|
tools=[clean_dep("//tensorflow/tools/git:gen_git_source.py")],)
|
||||||
|
|
||||||
|
|
||||||
def cc_library_with_android_deps(deps,
|
def cc_library_with_android_deps(deps,
|
||||||
|
Loading…
Reference in New Issue
Block a user