aboutsummaryrefslogtreecommitdiffhomepage
path: root/tensorflow/tensorflow.bzl
diff options
context:
space:
mode:
authorGravatar A. Unique TensorFlower <gardener@tensorflow.org>2017-12-22 12:42:59 -0800
committerGravatar TensorFlower Gardener <gardener@tensorflow.org>2017-12-22 12:46:28 -0800
commite4532d20973c4c00854492362665317551661c18 (patch)
tree398527e29bd30d39237adb4785be5069fdb646fa /tensorflow/tensorflow.bzl
parent673641c2d6a27fa97ee05453d671853731a4c602 (diff)
Merge changes from github.
PiperOrigin-RevId: 179953488
Diffstat (limited to 'tensorflow/tensorflow.bzl')
-rw-r--r--tensorflow/tensorflow.bzl67
1 files changed, 37 insertions, 30 deletions
diff --git a/tensorflow/tensorflow.bzl b/tensorflow/tensorflow.bzl
index e51e20c282..b71328f847 100644
--- a/tensorflow/tensorflow.bzl
+++ b/tensorflow/tensorflow.bzl
@@ -19,6 +19,7 @@ load(
"//third_party/mkl:build_defs.bzl",
"if_mkl",
)
+
def register_extension_info(**kwargs):
pass
@@ -149,24 +150,27 @@ def if_darwin(a):
"//conditions:default": [],
})
-WIN_COPTS = [
- "/DLANG_CXX11",
- "/D__VERSION__=\\\"MSVC\\\"",
- "/DPLATFORM_WINDOWS",
- "/DTF_COMPILE_LIBRARY",
- "/DEIGEN_HAS_C99_MATH",
- "/DTENSORFLOW_USE_EIGEN_THREADPOOL",
- "/DEIGEN_AVOID_STL_ARRAY",
- "/Iexternal/gemmlowp",
- "/wd4018", # -Wno-sign-compare
- "/U_HAS_EXCEPTIONS",
- "/D_HAS_EXCEPTIONS=1",
- "/EHsc", # -fno-exceptions
- "/DNOGDI",
-]
+def get_win_copts(is_external=False):
+ WINDOWS_COPTS = [
+ "/D__VERSION__=\\\"MSVC\\\"",
+ "/DPLATFORM_WINDOWS",
+ "/DEIGEN_HAS_C99_MATH",
+ "/DTENSORFLOW_USE_EIGEN_THREADPOOL",
+ "/DEIGEN_AVOID_STL_ARRAY",
+ "/Iexternal/gemmlowp",
+ "/wd4018", # -Wno-sign-compare
+ "/U_HAS_EXCEPTIONS",
+ "/D_HAS_EXCEPTIONS=1",
+ "/EHsc", # -fno-exceptions
+ "/DNOGDI",
+ ]
+ if is_external:
+ return WINDOWS_COPTS + ["/UTF_COMPILE_LIBRARY"]
+ else:
+ return WINDOWS_COPTS + ["/DTF_COMPILE_LIBRARY"]
# LINT.IfChange
-def tf_copts(android_optimization_level_override="-O2"):
+def tf_copts(android_optimization_level_override="-O2", is_external=False):
# For compatibility reasons, android_optimization_level_override
# is currently only being set for Android.
# To clear this value, and allow the CROSSTOOL default
@@ -194,8 +198,8 @@ def tf_copts(android_optimization_level_override="-O2"):
+ select({
clean_dep("//tensorflow:android"): android_copts,
clean_dep("//tensorflow:darwin"): [],
- clean_dep("//tensorflow:windows"): WIN_COPTS,
- clean_dep("//tensorflow:windows_msvc"): WIN_COPTS,
+ clean_dep("//tensorflow:windows"): get_win_copts(is_external),
+ clean_dep("//tensorflow:windows_msvc"): get_win_copts(is_external),
clean_dep("//tensorflow:ios"): ["-std=c++11"],
"//conditions:default": ["-pthread"]
}))
@@ -211,7 +215,7 @@ def tf_opts_nortti_if_android():
# Given a list of "op_lib_names" (a list of files in the ops directory
# without their .cc extensions), generate a library for that file.
-def tf_gen_op_libs(op_lib_names, deps=None):
+def tf_gen_op_libs(op_lib_names, deps=None, is_external=True):
# Make library out of each op so it can also be used to generate wrappers
# for various languages.
if not deps:
@@ -219,7 +223,7 @@ def tf_gen_op_libs(op_lib_names, deps=None):
for n in op_lib_names:
native.cc_library(
name=n + "_op_lib",
- copts=tf_copts(),
+ copts=tf_copts(is_external=is_external),
srcs=["ops/" + n + ".cc"],
deps=deps + [clean_dep("//tensorflow/core:framework")],
visibility=["//visibility:public"],
@@ -292,9 +296,11 @@ def tf_cc_binary(name,
srcs=[],
deps=[],
linkopts=[],
+ copts=tf_copts(),
**kwargs):
native.cc_binary(
name=name,
+ copts=copts,
srcs=srcs + tf_binary_additional_srcs(),
deps=deps + if_mkl(
[
@@ -325,7 +331,7 @@ def tf_gen_op_wrapper_cc(name,
tf_cc_binary(
name=tool,
copts=tf_copts(),
- linkopts=["-lm"],
+ linkopts=if_not_windows(["-lm"]),
linkstatic=1, # Faster to link this one-time-use binary dynamically
deps=[op_gen] + deps)
@@ -496,7 +502,7 @@ def tf_gen_op_wrapper_py(name,
deps = [str(Label("//tensorflow/core:" + name + "_op_lib"))]
tf_cc_binary(
name=tool_name,
- linkopts=["-lm"] + cc_linkopts,
+ linkopts=if_not_windows(["-lm"]) + cc_linkopts,
copts=tf_copts(),
linkstatic=1, # Faster to link this one-time-use binary dynamically
deps=([
@@ -711,7 +717,7 @@ def tf_cuda_only_cc_test(name,
deps=deps + if_cuda([
clean_dep("//tensorflow/core:cuda"),
clean_dep("//tensorflow/core:gpu_lib")]),
- linkopts=["-lpthread", "-lm"] + linkopts + _rpath_linkopts(name),
+ linkopts=if_not_windows(["-lpthread", "-lm"]) + linkopts + _rpath_linkopts(name),
linkstatic=linkstatic or select({
# cc_tests with ".so"s in srcs incorrectly link on Darwin
# unless linkstatic=1.
@@ -849,7 +855,7 @@ register_extension_info(
label_regex_for_dep = "{extension_name}",
)
-def tf_cuda_library(deps=None, cuda_deps=None, copts=None, **kwargs):
+def tf_cuda_library(deps=None, cuda_deps=None, copts=tf_copts(), **kwargs):
"""Generate a cc_library with a conditional set of CUDA dependencies.
When the library is built with --config=cuda:
@@ -869,8 +875,6 @@ def tf_cuda_library(deps=None, cuda_deps=None, copts=None, **kwargs):
deps = []
if not cuda_deps:
cuda_deps = []
- if not copts:
- copts = []
native.cc_library(
deps=deps + if_cuda(cuda_deps + [
@@ -892,7 +896,8 @@ def tf_kernel_library(name,
hdrs=None,
deps=None,
alwayslink=1,
- copts=tf_copts(),
+ copts=None,
+ is_external=False,
**kwargs):
"""A rule to build a TensorFlow OpKernel.
@@ -921,7 +926,8 @@ def tf_kernel_library(name,
hdrs = []
if not deps:
deps = []
-
+ if not copts:
+ copts = tf_copts(is_external=is_external)
if prefix:
if native.glob([prefix + "*.cu.cc"], exclude=["*test*"]):
if not gpu_srcs:
@@ -1233,7 +1239,7 @@ def tf_custom_op_library(name, srcs=[], gpu_srcs=[], deps=[], linkopts=[]):
srcs=srcs,
deps=deps + if_cuda(cuda_deps),
data=[name + "_check_deps"],
- copts=tf_copts(),
+ copts=tf_copts(is_external=True),
linkopts=linkopts + select({
"//conditions:default": [
"-lm",
@@ -1577,9 +1583,10 @@ def tf_py_build_info_genrule():
def cc_library_with_android_deps(deps,
android_deps=[],
common_deps=[],
+ copts=tf_copts(),
**kwargs):
deps = if_not_android(deps) + if_android(android_deps) + common_deps
- native.cc_library(deps=deps, **kwargs)
+ native.cc_library(deps=deps, copts=copts, **kwargs)
register_extension_info(
extension_name = "cc_library_with_android_deps",