Add a CUDA component to the Ceres package

Unlike the other optional backends, CUDA support was not exposed as a
package component, so consumers could not require it when finding Ceres.

Provide a CUDA component for builds with CUDA support and document it.

Change-Id: If15123d617dd35b7dccc138c995ac00351daa778
diff --git a/cmake/CeresCompileOptionsToComponents.cmake b/cmake/CeresCompileOptionsToComponents.cmake
index f4ed9ee..bbe39cc 100644
--- a/cmake/CeresCompileOptionsToComponents.cmake
+++ b/cmake/CeresCompileOptionsToComponents.cmake
@@ -79,6 +79,8 @@
   add_to_output_if_not_found(CURRENT_CERES_COMPILE_OPTIONS ${CERES_COMPONENTS_VAR}
     CERES_NO_ACCELERATE_SPARSE "AccelerateSparse;SparseLinearAlgebraLibrary")
   add_to_output_if_not_found(CURRENT_CERES_COMPILE_OPTIONS ${CERES_COMPONENTS_VAR}
+    CERES_NO_CUDA "CUDA")
+  add_to_output_if_not_found(CURRENT_CERES_COMPILE_OPTIONS ${CERES_COMPONENTS_VAR}
     CERES_NO_CUDSS "cuDSS;SparseLinearAlgebraLibrary")
   add_to_output_if_not_found(CURRENT_CERES_COMPILE_OPTIONS ${CERES_COMPONENTS_VAR}
     CERES_RESTRICT_SCHUR_SPECIALIZATION "SchurSpecializations")
diff --git a/docs/source/installation.rst b/docs/source/installation.rst
index 3c88f7f..8214e23 100644
--- a/docs/source/installation.rst
+++ b/docs/source/installation.rst
@@ -882,6 +882,9 @@
 #. ``EigenSparse``: Ceres built with Eigen's sparse Cholesky factorization
    support (``WITH_EIGENSPARSE=ON``).
 
+#. ``CUDA``: Ceres built with NVIDIA CUDA support for ``DENSE_QR``,
+   ``DENSE_NORMAL_CHOLESKY``, ``DENSE_SCHUR``, and ``CGNR`` (``WITH_CUDA``).
+
 #. ``cuDSS``: Ceres built with NVIDIA cuDSS sparse solver support
    (``WITH_CUDA`` and ``WITH_CUDSS=ON``).