Add work around for CUDA in UNC paths.
Nvcc can emit '/path' instead of '//path' which can cause a lot of grief later. We test to see if the file exists, if it doesn't then we see if the file exists with '/' prepended. Files that don't exist won't be added to the list.
This commit is contained in:
parent
e0bc42aa4f
commit
83d4eeadac
|
@ -54,13 +54,27 @@ if (${depend_text} MATCHES ".+")
|
|||
|
||||
string(REGEX REPLACE "^ +" "" file ${file})
|
||||
|
||||
if(NOT IS_DIRECTORY ${file})
|
||||
# OK, now if we had a UNC path, nvcc has a tendency to only output the first '/'
|
||||
# instead of '//'. Here we will test to see if the file exists, if it doesn't then
|
||||
# try to prepend another '/' to the path and test again. If it still fails remove the
|
||||
# path.
|
||||
|
||||
if(NOT EXISTS "${file}")
|
||||
if (EXISTS "/${file}")
|
||||
set(file "/${file}")
|
||||
else()
|
||||
message(WARNING " Removing non-existant dependency file: ${file}")
|
||||
set(file "")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(NOT IS_DIRECTORY "${file}")
|
||||
# If softlinks start to matter, we should change this to REALPATH. For now we need
|
||||
# to flatten paths, because nvcc can generate stuff like /bin/../include instead of
|
||||
# just /include.
|
||||
get_filename_component(file_absolute "${file}" ABSOLUTE)
|
||||
list(APPEND dependency_list "${file_absolute}")
|
||||
endif(NOT IS_DIRECTORY ${file})
|
||||
endif()
|
||||
|
||||
endforeach(file)
|
||||
|
||||
|
|
Loading…
Reference in New Issue