FindCUDA: Always list custom command outputs in their targets

CMake's intended interface for linking to explicit object files (marked
with EXTERNAL_OBJECT) is that only those listed as target sources should
be linked.  Drop FindCUDA's attempt to hide the .obj files from VS IDE
project files, which depends on VS-version-specific behavior of linking
custom command outputs that happen to be named "*.obj".  CMake puts
external object files in a dedicated source group anyway.
This commit is contained in:
Brad King 2013-09-13 10:08:43 -04:00
parent 4c4bafdeab
commit ef27fa6760
1 changed files with 1 additions and 16 deletions

View File

@ -1292,22 +1292,7 @@ macro(CUDA_WRAP_SRCS cuda_target format generated_files)
# Make sure the build system knows the file is generated. # Make sure the build system knows the file is generated.
set_source_files_properties(${generated_file} PROPERTIES GENERATED TRUE) set_source_files_properties(${generated_file} PROPERTIES GENERATED TRUE)
# Don't add the object file to the list of generated files if we are using
# visual studio and we are attaching the build rule to the cuda file. VS
# will add our object file to the linker automatically for us.
set(cuda_add_generated_file TRUE)
if(NOT compile_to_ptx AND CMAKE_GENERATOR MATCHES "Visual Studio" AND CUDA_ATTACH_VS_BUILD_RULE_TO_CUDA_FILE)
# Visual Studio 8 crashes when you close the solution when you don't add the object file.
if(NOT CMAKE_GENERATOR MATCHES "Visual Studio 8")
#message("Not adding ${generated_file}")
set(cuda_add_generated_file FALSE)
endif()
endif()
if(cuda_add_generated_file)
list(APPEND _cuda_wrap_generated_files ${generated_file}) list(APPEND _cuda_wrap_generated_files ${generated_file})
endif()
# Add the other files that we want cmake to clean on a cleanup ########## # Add the other files that we want cmake to clean on a cleanup ##########
list(APPEND CUDA_ADDITIONAL_CLEAN_FILES "${cmake_dependency_file}") list(APPEND CUDA_ADDITIONAL_CLEAN_FILES "${cmake_dependency_file}")