diff --git a/CMakeLists.txt b/CMakeLists.txt
index 212333e0085ef308ca62ba4841dec23d8ee81f1a..9148b5202491c79ff8b1c40d4fc0e185a552fa49 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -12,6 +12,16 @@ enable_testing()
 set(THREADS_PREFER_PTHREAD_FLAG ON)
 set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/")
 
+check_language(CUDA)
+if (CUDA_TOOLKIT_ROOT_DIR)
+enable_language(CUDA)
+set(CMAKE_CUDA_FLAGS "")
+set(CMAKE_CUDA_FLAGS_DEBUG "-g -DDEBUG -D_DEBUG -Wall")
+set(CMAKE_CUDA_FLAGS_RELEASE "")
+add_definitions(-DHAVE_CUDA)
+include_directories(${CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES})
+endif ()
+
 find_package( glog REQUIRED )
 find_package( OpenCV REQUIRED )
 find_package( Threads REQUIRED )
@@ -38,16 +48,6 @@ endif()
 
 include_directories(${PROJECT_SOURCE_DIR}/common/cpp/include)
 
-check_language(CUDA)
-if (CUDA_FOUND)
-enable_language(CUDA)
-set(CMAKE_CUDA_FLAGS "")
-set(CMAKE_CUDA_FLAGS_DEBUG "-g -DDEBUG -D_DEBUG -Wall")
-set(CMAKE_CUDA_FLAGS_RELEASE "")
-add_definitions(-DHAVE_CUDA)
-include_directories(${CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES})
-endif (CUDA_FOUND)
-
 include(git_version)
 
 if (WIN32)