diff --git a/.gitignore b/.gitignore
index 1a54ff15872b407e5553633e46c6055b775c10dc..7574bf03a1675b186d231cfcfb4b6f59e0f9dc0f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,5 +1,5 @@
 */build
-*/node_modules
+**/node_modules
 **/include/ftl/config.h
 **/src/config.cpp
 **/*.blend1
diff --git a/CMakeLists.txt b/CMakeLists.txt
index eca831d0646f2e6414916a0b7e4c4930cfc68ce5..1a2f84925ca4c28ac81c7d4d3c8b2e28103512d9 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -19,14 +19,20 @@ find_package( URIParser REQUIRED )
 find_package( MsgPack REQUIRED )
 find_package( LibSGM )
 
+# Why is this problematic on some machines?
 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)
+set(HAVE_CUDA TRUE)
 include_directories(${CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES})
+
+set_property(TARGET Threads::Threads
+                 PROPERTY INTERFACE_COMPILE_OPTIONS $<$<COMPILE_LANGUAGE:CUDA>:-Xcompiler -pthread>
+                                                    "$<$<NOT:$<COMPILE_LANGUAGE:CUDA>>:-pthread>")
+
 endif ()
 
 if (NOT MsgPack_FOUND)
diff --git a/common/cpp/include/ftl/config.h.in b/common/cpp/include/ftl/config.h.in
index d3e2166031f7e7072f905701f98a3d4a4d90d38b..b03e4eeeff946c3e8c282500dd4717fa11fd3539 100644
--- a/common/cpp/include/ftl/config.h.in
+++ b/common/cpp/include/ftl/config.h.in
@@ -4,6 +4,7 @@
 #cmakedefine HAVE_VIZ
 #cmakedefine HAVE_OPENCVCUDA
 #cmakedefine HAVE_URIPARSESINGLE
+#cmakedefine HAVE_CUDA
 
 extern const char *FTL_VERSION_LONG;
 extern const char *FTL_VERSION;
diff --git a/cv-node/CMakeLists.txt b/cv-node/CMakeLists.txt
index 5f5457c82ba1b8cb7ea89f2eaed3e96c9478b82d..8a77cce2b78b2466d63f05c7345f93d2446284df 100644
--- a/cv-node/CMakeLists.txt
+++ b/cv-node/CMakeLists.txt
@@ -43,14 +43,10 @@ add_executable(cv-node ${CVNODESRC})
 add_dependencies(cv-node net)
 
 if (CUDA_FOUND)
-set_property(TARGET Threads::Threads
-                 PROPERTY INTERFACE_COMPILE_OPTIONS $<$<COMPILE_LANGUAGE:CUDA>:-Xcompiler -pthread>
-                                                    "$<$<NOT:$<COMPILE_LANGUAGE:CUDA>>:-pthread>")
-
 set_property(TARGET cv-node PROPERTY CUDA_SEPARABLE_COMPILATION ON)
-endif (CUDA_FOUND)
+endif()
 
-target_include_directories(cv-node PUBLIC ${PROJECT_SOURCE_DIR}/include)
-target_link_libraries(cv-node Threads::Threads ${OpenCV_LIBS} ${LIBSGM_LIBRARIES} ${CUDA_LIBRARIES} ${GLOG_LIBRARIES})
+#target_include_directories(cv-node PUBLIC ${PROJECT_SOURCE_DIR}/include)
+target_link_libraries(cv-node net Threads::Threads ${OpenCV_LIBS} ${LIBSGM_LIBRARIES} ${CUDA_LIBRARIES} ${GLOG_LIBRARIES})
 
 
diff --git a/cv-node/include/ftl/cuda_common.hpp b/cv-node/include/ftl/cuda_common.hpp
index 1adeed475a5b2df72493f602c7ad4128790c73be..741f857cc6e5536fb95bd815b0fc6fda2737cb90 100644
--- a/cv-node/include/ftl/cuda_common.hpp
+++ b/cv-node/include/ftl/cuda_common.hpp
@@ -1,6 +1,8 @@
 #ifndef _FTL_CUDA_COMMON_HPP_
 #define _FTL_CUDA_COMMON_HPP_
 
+#include <ftl/config.h>
+
 #if defined HAVE_CUDA
 
 #include <opencv2/core/cuda.hpp>