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})
|
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
|
# 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
|
# to flatten paths, because nvcc can generate stuff like /bin/../include instead of
|
||||||
# just /include.
|
# just /include.
|
||||||
get_filename_component(file_absolute "${file}" ABSOLUTE)
|
get_filename_component(file_absolute "${file}" ABSOLUTE)
|
||||||
list(APPEND dependency_list "${file_absolute}")
|
list(APPEND dependency_list "${file_absolute}")
|
||||||
endif(NOT IS_DIRECTORY ${file})
|
endif()
|
||||||
|
|
||||||
endforeach(file)
|
endforeach(file)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue