diff options
author | AG Ramesh <ag.ramesh@intel.com> | 2018-08-06 20:41:34 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-08-06 20:41:34 -0700 |
commit | b18dc214e1edb6994320c8f9781eafa5f2a9e9b4 (patch) | |
tree | d04a47f86c7cff88a5e12308ff4d319f33e590ac /third_party/clang_toolchain | |
parent | 82e6460611744847688edca252224d06819ac22d (diff) | |
parent | 7585a44b0164e234ad6b6c3b99632fb28b7023e8 (diff) |
Merge branch 'master' into conv3d
Diffstat (limited to 'third_party/clang_toolchain')
-rw-r--r-- | third_party/clang_toolchain/cc_configure_clang.bzl | 18 | ||||
-rw-r--r-- | third_party/clang_toolchain/download_clang.bzl | 104 |
2 files changed, 64 insertions, 58 deletions
diff --git a/third_party/clang_toolchain/cc_configure_clang.bzl b/third_party/clang_toolchain/cc_configure_clang.bzl index 1181110ea9..0778c43c53 100644 --- a/third_party/clang_toolchain/cc_configure_clang.bzl +++ b/third_party/clang_toolchain/cc_configure_clang.bzl @@ -7,16 +7,16 @@ _TF_DOWNLOAD_CLANG = "TF_DOWNLOAD_CLANG" _TF_NEED_CUDA = "TF_NEED_CUDA" def _cc_clang_autoconf(repo_ctx): - if repo_ctx.os.environ.get(_TF_DOWNLOAD_CLANG) != "1": - return - if repo_ctx.os.environ.get(_TF_NEED_CUDA) == "1": - # Clang is handled separately for CUDA configs. - # See cuda_configure.bzl for more details. - return + if repo_ctx.os.environ.get(_TF_DOWNLOAD_CLANG) != "1": + return + if repo_ctx.os.environ.get(_TF_NEED_CUDA) == "1": + # Clang is handled separately for CUDA configs. + # See cuda_configure.bzl for more details. + return - download_clang(repo_ctx, out_folder='extra_tools') - overriden_tools = {'gcc': 'extra_tools/bin/clang'} - cc_autoconf_impl(repo_ctx, overriden_tools) + download_clang(repo_ctx, out_folder = "extra_tools") + overriden_tools = {"gcc": "extra_tools/bin/clang"} + cc_autoconf_impl(repo_ctx, overriden_tools) cc_download_clang_toolchain = repository_rule( environ = [ diff --git a/third_party/clang_toolchain/download_clang.bzl b/third_party/clang_toolchain/download_clang.bzl index ab57b9dfa0..5ef47cdd0d 100644 --- a/third_party/clang_toolchain/download_clang.bzl +++ b/third_party/clang_toolchain/download_clang.bzl @@ -1,54 +1,60 @@ """ Helpers to download a recent clang release.""" def _get_platform_folder(os_name): - os_name = os_name.lower() - if os_name.startswith('windows'): - return 'Win' - if os_name.startswith('mac os'): - return 'Mac' - if not os_name.startswith('linux'): - fail('Unknown platform') - return 'Linux_x64' - -def _download_chromium_clang(repo_ctx, platform_folder, package_version, sha256, - out_folder): - cds_url = 'https://commondatastorage.googleapis.com/chromium-browser-clang' - cds_file = 'clang-%s.tgz' % package_version - cds_full_url = '{0}/{1}/{2}'.format(cds_url, platform_folder, cds_file) - repo_ctx.download_and_extract(cds_full_url, output=out_folder, sha256=sha256) + os_name = os_name.lower() + if os_name.startswith("windows"): + return "Win" + if os_name.startswith("mac os"): + return "Mac" + if not os_name.startswith("linux"): + fail("Unknown platform") + return "Linux_x64" + +def _download_chromium_clang( + repo_ctx, + platform_folder, + package_version, + sha256, + out_folder): + cds_url = "https://commondatastorage.googleapis.com/chromium-browser-clang" + cds_file = "clang-%s.tgz" % package_version + cds_full_url = "{0}/{1}/{2}".format(cds_url, platform_folder, cds_file) + repo_ctx.download_and_extract(cds_full_url, output = out_folder, sha256 = sha256) def download_clang(repo_ctx, out_folder): - """ Download a fresh clang release and put it into out_folder. - - Clang itself will be located in 'out_folder/bin/clang'. - We currently download one of the latest releases of clang by the - Chromium project (see - https://chromium.googlesource.com/chromium/src/+/master/docs/clang.md). - - Args: - repo_ctx: An instance of repository_context object. - out_folder: A folder to extract the compiler into. - """ - # TODO(ibiryukov): we currently download and extract some extra tools in the - # clang release (e.g., sanitizers). We should probably remove the ones - # we don't need and document the ones we want provide in addition to clang. - - # Latest CLANG_REVISION and CLANG_SUB_REVISION of the Chromiums's release - # can be found in https://chromium.googlesource.com/chromium/src/tools/clang/+/master/scripts/update.py - CLANG_REVISION = '336424' - CLANG_SUB_REVISION = 1 - - package_version = '%s-%s' % (CLANG_REVISION, CLANG_SUB_REVISION) - - checksums = { - 'Linux_x64': - '2ea97e047470da648f5d078af008bce6891287592382cee3d53a1187d996da94', - 'Mac': - 'c6e28909cce63ee35e0d51284d9f0f6e8838f7fb8b7a0dc9536c2ea900552df0', - 'Win': - '1299fda7c4378bfb81337f7e5f351c8a1f953f51e0744e2170454b8d722f3db7', - } - - platform_folder = _get_platform_folder(repo_ctx.os.name) - _download_chromium_clang(repo_ctx, platform_folder, package_version, - checksums[platform_folder], out_folder) + """ Download a fresh clang release and put it into out_folder. + + Clang itself will be located in 'out_folder/bin/clang'. + We currently download one of the latest releases of clang by the + Chromium project (see + https://chromium.googlesource.com/chromium/src/+/master/docs/clang.md). + + Args: + repo_ctx: An instance of repository_context object. + out_folder: A folder to extract the compiler into. + """ + # TODO(ibiryukov): we currently download and extract some extra tools in the + # clang release (e.g., sanitizers). We should probably remove the ones + # we don't need and document the ones we want provide in addition to clang. + + # Latest CLANG_REVISION and CLANG_SUB_REVISION of the Chromiums's release + # can be found in https://chromium.googlesource.com/chromium/src/tools/clang/+/master/scripts/update.py + CLANG_REVISION = "338452" + CLANG_SUB_REVISION = 1 + + package_version = "%s-%s" % (CLANG_REVISION, CLANG_SUB_REVISION) + + checksums = { + "Linux_x64": "213ba23a0a9855ede5041f66661caa9c5c59a573ec60b82a31839f9a97f397bf", + "Mac": "4267774201f8cb50c25e081375e87038d58db80064a20a0d9d7fe57ea4357ece", + "Win": "a8a5d5b25443c099e2c20d1a0cdce2f1d17e2dba84de66a6dc6a239ce3e78c34", + } + + platform_folder = _get_platform_folder(repo_ctx.os.name) + _download_chromium_clang( + repo_ctx, + platform_folder, + package_version, + checksums[platform_folder], + out_folder, + ) |