Fix path for cuda-memcheck tests

* Use generator expression instead of CMAKE_RUNTIME_OUTPUT_DIRECTORY
  to get the path of compiled CUDA test targets when running
  cuda-memcheck tests.
* Only add cuda-memcheck targets if testing is enabled.

Change-Id: Idea498dd9008b7e5075d4af9775f9f43716e22f1
diff --git a/internal/ceres/CMakeLists.txt b/internal/ceres/CMakeLists.txt
index 8bea234..0e33263 100644
--- a/internal/ceres/CMakeLists.txt
+++ b/internal/ceres/CMakeLists.txt
@@ -137,14 +137,16 @@
        ${CUDA_cublas_LIBRARY}
        ${CUDA_cusolver_LIBRARY}
        ${CUDA_cusparse_LIBRARY})
-  add_test(
-      NAME cuda_memcheck_dense_qr_test
-      COMMAND cuda-memcheck --leak-check full
-          ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/cuda_dense_qr_test)
-  add_test(
-      NAME cuda_memcheck_dense_cholesky_test
-      COMMAND cuda-memcheck --leak-check full
-          ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/cuda_dense_cholesky_test)
+  if (BUILD_TESTING)
+    add_test(
+        NAME cuda_memcheck_dense_qr_test
+        COMMAND cuda-memcheck --leak-check full
+            $<TARGET_FILE:cuda_dense_qr_test>)
+    add_test(
+        NAME cuda_memcheck_dense_cholesky_test
+        COMMAND cuda-memcheck --leak-check full
+            $<TARGET_FILE:cuda_dense_cholesky_test>)
+  endif (BUILD_TESTING)
 endif (CUDA_FOUND)
 
 if (LAPACK_FOUND)