 diff -ruN cmake-3.2.2/Modules/FindCUDA.cmake cmake-3.2.2-new/Modules/FindCUDA.cmake
 --- cmake-3.2.2/Modules/FindCUDA.cmake	2015-04-13 11:09:00.000000000 -0600
-+++ cmake-3.2.2-new/Modules/FindCUDA.cmake	2015-05-02 15:08:03.622306512 -0600
++++ cmake-3.2.2-new/Modules/FindCUDA.cmake	2015-08-19 16:13:43.893234400 -0600
 @@ -901,6 +901,7 @@
          "x${arg}" STREQUAL "xEXCLUDE_FROM_ALL" OR
          "x${arg}" STREQUAL "xSTATIC" OR

   # would be. CUDA_C_OR_CXX is computed based on CUDA_HOST_COMPILATION_CPP.
diff -ruN cmake-3.2.2/Modules/Platform/Linux.cmake cmake-3.2.2-new/Modules/Platform/Linux.cmake
--- cmake-3.2.2/Modules/Platform/Linux.cmake	2015-04-13 11:09:00.000000000 -0600
+++ cmake-3.2.2-new/Modules/Platform/Linux.cmake	2015-05-02 15:05:44.330390931 -0600
@@ -2,7 +2,7 @@
 set(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "-Wl,-rpath,")
 set(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP ":")

         "x${arg}" STREQUAL "xMODULE"
         )
       list(APPEND ${_cmake_options} ${arg})
@@ -1467,9 +1468,9 @@
     # we work around that issue by compiling the intermediate link object as a
     # pre-link custom command in that situation.
     set(do_obj_build_rule TRUE)
-    if (MSVC_VERSION GREATER 1599)
-      # VS 2010 and 2012 have this problem.  If future versions fix this issue,
-      # it should still work, it just won't be as nice as the other method.
+
+    if (MSVC_VERSION GREATER 1599 AND MSVC_VERSION LESS 1800)
+      # VS 2010 and 2012 have this problem.
       set(do_obj_build_rule FALSE)
     endif()
 
@@ -1525,9 +1526,11 @@
   # variable will have been defined.
   CUDA_LINK_SEPARABLE_COMPILATION_OBJECTS("${link_file}" ${cuda_target} "${_options}" "${${cuda_target}_SEPARABLE_COMPILATION_OBJECTS}")
