Run gen_git_source.py inside of a repo_rule instead of configure.

PiperOrigin-RevId: 179971055
This commit is contained in:
Michael Case 2017-12-22 15:44:29 -08:00 committed by TensorFlower Gardener
parent f10a598e34
commit a64485dbb3
11 changed files with 44 additions and 28 deletions

View File

@ -265,19 +265,6 @@ def reset_tf_configure_bazelrc():
f.write('import %workspace%/.tf_configure.bazelrc\n')
def run_gen_git_source(environ_cp):
"""Run the gen_git_source to create links.
The links are for bazel to track dependencies for git hash propagation.
Args:
environ_cp: copy of the os.environ.
"""
cmd = '"%s" tensorflow/tools/git/gen_git_source.py --configure %s' % (
environ_cp.get('PYTHON_BIN_PATH'), os.getcwd())
os.system(cmd)
def cleanup_makefile():
"""Delete any leftover BUILD files from the Makefile build.
@ -1251,7 +1238,6 @@ def main():
reset_tf_configure_bazelrc()
cleanup_makefile()
setup_python(environ_cp)
run_gen_git_source(environ_cp)
if is_windows():
environ_cp['TF_NEED_S3'] = '0'

View File

@ -1561,9 +1561,9 @@ def tf_version_info_genrule():
native.genrule(
name="version_info_gen",
srcs=[
clean_dep("//tensorflow/tools/git:gen/spec.json"),
clean_dep("//tensorflow/tools/git:gen/head"),
clean_dep("//tensorflow/tools/git:gen/branch_ref"),
clean_dep("@local_config_git//:gen/spec.json"),
clean_dep("@local_config_git//:gen/head"),
clean_dep("@local_config_git//:gen/branch_ref"),
],
outs=["util/version_info.cc"],
cmd=

View File

@ -7,9 +7,7 @@ package(default_visibility = ["//tensorflow:internal"])
licenses(["notice"]) # Apache 2.0
exports_files(
glob(["gen/*"]) + [
"gen_git_source.py",
],
["gen_git_source.py"],
)
# -----------------------------------------------------------------------------

View File

@ -1 +0,0 @@

View File

@ -1 +0,0 @@

View File

@ -1,3 +0,0 @@
{
"git": false
}

View File

@ -62,7 +62,7 @@ def parse_branch_ref(filename):
raise RuntimeError("Git directory has unparseable HEAD")
def configure(src_base_path, debug=False):
def configure(src_base_path, gen_path, debug=False):
"""Configure `src_base_path` to embed git hashes if available."""
# TODO(aselle): No files generated or symlinked here are deleted by
@ -71,7 +71,6 @@ def configure(src_base_path, debug=False):
# without running ./configure again.
git_path = os.path.join(src_base_path, ".git")
gen_path = os.path.join(src_base_path, "tensorflow", "tools", "git", "gen")
# Remove and recreate the path
if os.path.exists(gen_path):
@ -260,6 +259,10 @@ parser.add_argument(
"--configure", type=str,
help="Path to configure as a git repo dependency tracking sentinel")
parser.add_argument(
"--gen_root_path", type=str,
help="Root path to place generated git files (created by --configure).")
parser.add_argument(
"--generate",
type=str,
@ -274,7 +277,9 @@ parser.add_argument(
args = parser.parse_args()
if args.configure is not None:
configure(args.configure, debug=args.debug)
if args.gen_root_path is None:
raise RuntimeError("Must pass --gen_root_path arg when running --configure")
configure(args.configure, args.gen_root_path, debug=args.debug)
elif args.generate is not None:
generate(args.generate)
elif args.raw_generate is not None:

View File

@ -2,6 +2,7 @@
load("//third_party/gpus:cuda_configure.bzl", "cuda_configure")
load("//third_party/mkl:build_defs.bzl", "mkl_repository")
load("//third_party/git:git_configure.bzl", "git_configure")
load("//third_party/py:python_configure.bzl", "python_configure")
load("//third_party/sycl:sycl_configure.bzl", "sycl_configure")
load("//third_party/toolchains/cpus/arm:arm_compiler_configure.bzl", "arm_compiler_configure")
@ -47,6 +48,7 @@ def tf_workspace(path_prefix="", tf_repo_name=""):
# version we require here.
check_version("0.5.4")
cuda_configure(name="local_config_cuda")
git_configure(name="local_config_git")
sycl_configure(name="local_config_sycl")
python_configure(name="local_config_python")

0
third_party/git/BUILD vendored Normal file
View File

10
third_party/git/BUILD.tpl vendored Normal file
View File

@ -0,0 +1,10 @@
# Description:
# Exports generated files used to generate tensorflow/core/util/version_info.cc
package(default_visibility = ["//visibility:public"])
licenses(["notice"])
exports_files(
glob(["gen/*"]),
)

20
third_party/git/git_configure.bzl vendored Normal file
View File

@ -0,0 +1,20 @@
"""Repository rule for Git autoconfiguration."""
def _git_conf_impl(repository_ctx):
repository_ctx.template(
"BUILD",
Label("//third_party/git:BUILD.tpl"))
tensorflow_root_path = str(repository_ctx.path(
Label("@org_tensorflow//:BUILD")))[:-len("BUILD")]
python_script_path = repository_ctx.path(
Label("@org_tensorflow//tensorflow/tools/git:gen_git_source.py"))
generated_files_path = repository_ctx.path("gen")
repository_ctx.execute([
python_script_path, "--configure", tensorflow_root_path,
"--gen_root_path", generated_files_path], quiet=False)
git_configure = repository_rule(
implementation = _git_conf_impl,
)