Skip to content

FindCUDA: Fix support for backslashes in CUDA_NVCC_INCLUDE_DIRS

Hong Xu requested to merge xuhdev/cmake:nvcc-include-dir into master

Backslashes in CUDA_NVCC_INCLUDE_DIRS cause syntax errors because it is written to a generated .cmake script as a string literal. Use a bracket argument to hold the expanded value as we already do for CUDA_NVCC_COMPILE_DEFINITIONS. Then explicitly convert backslashes to forward slashes.

Example error message
CMake Warning (dev) at torch_generated_ceil_op.cu.obj.Release.cmake:178
(execute_process):
  Syntax error in cmake code at

    C:/Jenkins/workspace/pytorch-builds/pytorch-win-ws2016-cuda9-cudnn7-py3-build/build/caffe2/CMakeFiles/torch.dir/operators/torch_generated_ceil_op.cu.obj.Release.cmake:178

  when parsing string

    C:/Jenkins/workspace/pytorch-builds/pytorch-win-ws2016-cuda9-cudnn7-py3-build/build/win_tmp/bin/nvcc;-M;-D__CUDACC__;C:/Jenkins/workspace/pytorch-builds/pytorch-win-ws2016-cuda9-cudnn7-py3-build/caffe2/operators/ceil_op.cu;-o;C:/Jenkins/workspace/pytorch-builds/pytorch-win-ws2016-cuda9-cudnn7-py3-build/build/caffe2/CMakeFiles/torch.dir/operators/torch_generated_ceil_op.cu.obj.NVCC-depend;-ccbin;cl.exe;-m64;-Dtorch_EXPORTS;-D_THP_CORE;-DUSE_CUDA;-DCAFFE2_BUILD_MAIN_LIB;-DAT_PARALLEL_OPENMP=1;-DTH_BLAS_MKL;-D_OPENMP_NOFORCE_MANIFEST;-DONNX_ML=1;-DONNX_NAMESPACE=onnx_torch;-D_CRT_SECURE_NO_DEPRECATE=1;-DMAGMA_V2;-DCPUINFO_SUPPORTED_PLATFORM=1;-Xcompiler;,"/DWIN32","/D_WINDOWS","/W3","/GR","/EHsc","/EHa","-openmp","/MP","/bigobj","-DHAVE_AVX_CPU_DEFINITION","-DHAVE_AVX2_CPU_DEFINITION","/MD","/O2","/Ob2","/MP","/bigobj";-DONNX_NAMESPACE=onnx_torch;-gencode;arch=compute_52,code=sm_52;-Xcudafe;--diag_suppress=cc_clobber_ignored;-Xcudafe;--diag_suppress=integer_sign_change;-Xcudafe;--diag_suppress=useless_using_declaration;-Xcudafe;--diag_suppress=set_but_not_used;-Xcompiler;-MD;--expt-relaxed-constexpr;--expt-extended-lambda;-Xcompiler;/wd4819;-Xcompiler;/wd4503;-Xcompiler;/wd4190;-Xcompiler;/wd4244;-Xcompiler;/wd4251;-Xcompiler;/wd4275;-Xcompiler;/wd4522;-Wno-deprecated-gpu-targets;--expt-extended-lambda;-gencode;arch=compute_52,code=sm_52;-DCUDA_HAS_FP16=1;-D__CUDA_NO_HALF_OPERATORS__;-D__CUDA_NO_HALF_CONVERSIONS__;-D__CUDA_NO_HALF2_OPERATORS__;-DNVCC;-IC:/Program
Files/NVIDIA GPU Computing
Toolkit/CUDA/v9.0/include;-IC:/Jenkins/workspace/pytorch-builds/pytorch-win-ws2016-cuda9-cudnn7-py3-build/aten/src;-IC:/Jenkins/workspace/pytorch-builds/pytorch-win-ws2016-cuda9-cudnn7-py3-build/build;-IC:/Jenkins/workspace/pytorch-builds/pytorch-win-ws2016-cuda9-cudnn7-py3-build;-IC:/Jenkins/workspace/pytorch-builds/pytorch-win-ws2016-cuda9-cudnn7-py3-build/cmake/../third_party/googletest/googlemock/include;-IC:/Jenkins/workspace/pytorch-builds/pytorch-win-ws2016-cuda9-cudnn7-py3-build/cmake/../third_party/googletest/googletest/include;-IC:/Jenkins/workspace/pytorch-builds/pytorch-win-ws2016-cuda9-cudnn7-py3-build/third_party/protobuf/src;-IC:/Jenkins/workspace/pytorch-builds/pytorch-win-ws2016-cuda9-cudnn7-py3-build/build/win_tmp/mkl/include;-IC:/Jenkins/workspace/pytorch-builds/pytorch-win-ws2016-cuda9-cudnn7-py3-build/cmake/../third_party/benchmark/include;-IC:/Jenkins/workspace/pytorch-builds/pytorch-win-ws2016-cuda9-cudnn7-py3-build/cmake/../third_party/eigen;-IC:/Jenkins/Miniconda3/include;-IC:/Jenkins/Miniconda3/lib/site-packages/numpy/core/include;-IC:/Jenkins/workspace/pytorch-builds/pytorch-win-ws2016-cuda9-cudnn7-py3-build/torch/include;-I/opt/rocm/hip/include;-I/include;-IC:/Jenkins/workspace/pytorch-builds/pytorch-win-ws2016-cuda9-cudnn7-py3-build/cmake/../third_party/cub;-IC:/Jenkins/workspace/pytorch-builds/pytorch-win-ws2016-cuda9-cudnn7-py3-build/build/caffe2/contrib/aten;-IC:/Jenkins/workspace/pytorch-builds/pytorch-win-ws2016-cuda9-cudnn7-py3-build/third_party/onnx;-IC:/Jenkins/workspace/pytorch-builds/pytorch-win-ws2016-cuda9-cudnn7-py3-build/build/third_party/onnx;-IC:/Jenkins/workspace/pytorch-builds/pytorch-win-ws2016-cuda9-cudnn7-py3-build/third_party/foxi;-IC:/Jenkins/workspace/pytorch-builds/pytorch-win-ws2016-cuda9-cudnn7-py3-build/build/third_party/foxi;-IC:/Jenkins/workspace/pytorch-builds/pytorch-win-ws2016-cuda9-cudnn7-py3-build/build/win_tmp/magma/include;-IC:/Jenkins/workspace/pytorch-builds/pytorch-win-ws2016-cuda9-cudnn7-py3-build/caffe2/../torch/csrc/api;-IC:/Jenkins/workspace/pytorch-builds/pytorch-win-ws2016-cuda9-cudnn7-py3-build/caffe2/../torch/csrc/api/include;-IC:/Program
Files/NVIDIA
Corporation/NvToolsExt/include;-IC:/Jenkins/workspace/pytorch-builds/pytorch-win-ws2016-cuda9-cudnn7-py3-build/caffe2/aten/src/TH;-IC:/Jenkins/workspace/pytorch-builds/pytorch-win-ws2016-cuda9-cudnn7-py3-build/build/caffe2/aten/src/TH;-IC:/Jenkins/workspace/pytorch-builds/pytorch-win-ws2016-cuda9-cudnn7-py3-build/caffe2/../torch/../aten/src;-IC:/Jenkins/workspace/pytorch-builds/pytorch-win-ws2016-cuda9-cudnn7-py3-build/build/caffe2/aten/src;-IC:/Jenkins/workspace/pytorch-builds/pytorch-win-ws2016-cuda9-cudnn7-py3-build/build/aten/src;-IC:/Jenkins/workspace/pytorch-builds/pytorch-win-ws2016-cuda9-cudnn7-py3-build/build/caffe2/../aten/src;-IC:/Jenkins/workspace/pytorch-builds/pytorch-win-ws2016-cuda9-cudnn7-py3-build/build/caffe2/../aten/src/ATen;-IC:/Jenkins/workspace/pytorch-builds/pytorch-win-ws2016-cuda9-cudnn7-py3-build/caffe2/../torch/csrc;-IC:/Jenkins/workspace/pytorch-builds/pytorch-win-ws2016-cuda9-cudnn7-py3-build/caffe2/../torch/../third_party/miniz-2.0.8;-IC:/Jenkins/workspace/pytorch-builds/pytorch-win-ws2016-cuda9-cudnn7-py3-build/aten/src/TH;-IC:/Jenkins/workspace/pytorch-builds/pytorch-win-ws2016-cuda9-cudnn7-py3-build/aten/../third_party/catch/single_include;-IC:/Jenkins/workspace/pytorch-builds/pytorch-win-ws2016-cuda9-cudnn7-py3-build/aten/src/ATen/..;-IC:/Jenkins/workspace/pytorch-builds/pytorch-win-ws2016-cuda9-cudnn7-py3-build/build/caffe2/aten/src/ATen;-IC:/Jenkins/workspace/pytorch-builds/pytorch-win-ws2016-cuda9-cudnn7-py3-build/third_party/miniz-2.0.8;-IC:/Jenkins/workspace/pytorch-builds/pytorch-win-ws2016-cuda9-cudnn7-py3-build/caffe2/core/nomnigraph/include;-IC:/Jenkins/workspace/pytorch-builds/pytorch-win-ws2016-cuda9-cudnn7-py3-build/caffe2/;-IC:/Jenkins/workspace/pytorch-builds/pytorch-win-ws2016-cuda9-cudnn7-py3-build/build/caffe2/aten/src/THC;-IC:/Jenkins/workspace/pytorch-builds/pytorch-win-ws2016-cuda9-cudnn7-py3-build/aten/src/THC;-IC:/Jenkins/workspace/pytorch-builds/pytorch-win-ws2016-cuda9-cudnn7-py3-build/aten/src/THCUNN;-IC:/Jenkins/workspace/pytorch-builds/pytorch-win-ws2016-cuda9-cudnn7-py3-build/aten/src/ATen/cuda;-IC:/Jenkins/workspace/pytorch-builds/pytorch-win-ws2016-cuda9-cudnn7-py3-build/c10/../;-IC:/Jenkins/workspace/pytorch-builds/pytorch-win-ws2016-cuda9-cudnn7-py3-build/third_party/cpuinfo/include;-IC:/Jenkins/workspace/pytorch-builds/pytorch-win-ws2016-cuda9-cudnn7-py3-build/third_party/FP16/include;-IC:/Jenkins/workspace/pytorch-builds/pytorch-win-ws2016-cuda9-cudnn7-py3-build/c10/cuda/../..;-IC:/Program
Files/NVIDIA GPU Computing Toolkit/CUDA/v9.0\include

  Invalid escape sequence \i

  Policy CMP0010 is not set: Bad variable reference syntax is an error.
Run
  "cmake --help-policy CMP0010" for policy details.  Use the
cmake_policy
  command to set the policy and suppress this warning.
Call Stack (most recent call first):
  torch_generated_ceil_op.cu.obj.Release.cmake:203
(cuda_execute_process)
This warning is for project developers.  Use -Wno-dev to suppress it.

Topic-rename: FindCUDA-nvcc-include-dir-backslash

Edited by Brad King

Merge request reports