From 4bbf4dd025a87bdd29ee25aecaa08305f2bfa8f8 Mon Sep 17 00:00:00 2001 From: "A. Unique TensorFlower" Date: Wed, 17 Feb 2021 09:00:15 -0800 Subject: [PATCH] Windows CUDA build: explicitly specify system include paths and library search paths. NVCC doesn't respect the INCLUDE and LIB env vars from MSVC (which are set by Bazel). This change ensures NVCC uses the same include and library paths chosen by Bazel. PiperOrigin-RevId: 357959501 Change-Id: I5a7461d75b4255e59c7c7f5750da55e04d620c83 --- .../gpus/crosstool/windows/msvc_wrapper_for_nvcc.py.tpl | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/third_party/gpus/crosstool/windows/msvc_wrapper_for_nvcc.py.tpl b/third_party/gpus/crosstool/windows/msvc_wrapper_for_nvcc.py.tpl index 7e0674963bf..0d1423f8ba0 100644 --- a/third_party/gpus/crosstool/windows/msvc_wrapper_for_nvcc.py.tpl +++ b/third_party/gpus/crosstool/windows/msvc_wrapper_for_nvcc.py.tpl @@ -153,6 +153,13 @@ def InvokeNvcc(argv, log=False): ] _, argv = GetOptionValue(argv, '--no-cuda-include-ptx') + # nvcc doesn't respect the INCLUDE and LIB env vars from MSVC, + # so we explicity specify the system include paths and library search paths. + if 'INCLUDE' in os.environ: + nvccopts += [('--system-include="%s"' % p) for p in os.environ['INCLUDE'].split(";")] + if 'LIB' in os.environ: + nvccopts += [('--library-path="%s"' % p) for p in os.environ['LIB'].split(";")] + nvccopts += nvcc_compiler_options nvccopts += undefines nvccopts += defines