Browse Source

Define __CUDACC__ during dependency scanning, since NVCC doesn't.

James Bigler 16 years ago
parent
commit
d2d3672f1c
1 changed files with 7 additions and 0 deletions
  1. 7 0
      Modules/FindCUDA/run_nvcc.cmake

+ 7 - 0
Modules/FindCUDA/run_nvcc.cmake

@@ -164,11 +164,18 @@ if(CUDA_VERSION VERSION_LESS "3.0")
   cmake_policy(POP)
 endif()
 
+# nvcc doesn't define __CUDACC__ for some reason when generating dependency files.  This
+# can cause incorrect dependencies when #including files based on this macro which is
+# defined in the generating passes of nvcc invokation.  We will go ahead and manually
+# define this for now until a future version fixes this bug.
+set(CUDACC_DEFINE -D__CUDACC__)
+
 # Generate the dependency file
 cuda_execute_process(
   "Generating dependency file: ${NVCC_generated_dependency_file}"
   COMMAND "${CUDA_NVCC_EXECUTABLE}"
   -M
+  ${CUDACC_DEFINE}
   "${source_file}"
   -o "${NVCC_generated_dependency_file}"
   ${CCBIN}