diff --git a/CMakeLists.txt b/CMakeLists.txt
index fa070ba..f6062d6 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -416,19 +416,16 @@
   message("-- Building without OpenMP, disabling.")
 endif (OPENMP)
 
-# Initialise CMAKE_REQUIRED_FLAGS used by CheckCXXSourceCompiles with the
-# contents of CMAKE_CXX_FLAGS such that if the user has passed extra flags
-# they are used when discovering shared_ptr/unordered_map.
-set(CMAKE_REQUIRED_FLAGS ${CMAKE_CXX_FLAGS})
-
 if (TBB)
-  find_package(TBB REQUIRED)
+  find_package(TBB QUIET)
   if (TBB_FOUND)
-    message("-- Building with TBB.")
+    message("-- Building with TBB (version: ${TBB_VERSION}).")
     list(APPEND CERES_COMPILE_OPTIONS CERES_USE_TBB)
     include_directories(${TBB_INCLUDE_DIRS})
-    # TBB requires C++11
-    update_cache_variable(CXX11 ON)
+    if (NOT CXX11)
+      message("-- Enabling CXX11 (C++11) option required by TBB=ON.")
+      update_cache_variable(CXX11 ON)
+    endif()
   else (TBB_FOUND)
     message("-- Failed to find TBB, disabling.")
     update_cache_variable(TBB OFF)
@@ -436,7 +433,7 @@
 endif (TBB)
 
 if (NOT OPENMP AND NOT TBB)
-  message("-- Nor OpenMP neither TBB is used, disabling multithreading.")
+  message("-- Neither OpenMP or TBB is enabled, disabling multithreading.")
   list(APPEND CERES_COMPILE_OPTIONS CERES_NO_THREADS)
 else (NOT OPENMP AND NOT TBB)
   if (UNIX)
@@ -448,6 +445,10 @@
   endif (UNIX)
 endif (NOT OPENMP AND NOT TBB)
 
+# Initialise CMAKE_REQUIRED_FLAGS used by CheckCXXSourceCompiles with the
+# contents of CMAKE_CXX_FLAGS such that if the user has passed extra flags
+# they are used when discovering shared_ptr/unordered_map.
+set(CMAKE_REQUIRED_FLAGS ${CMAKE_CXX_FLAGS})
 include(CheckCXXCompilerFlag)
 check_cxx_compiler_flag("-std=c++11" COMPILER_HAS_CXX11_FLAG)
 if (CXX11 AND COMPILER_HAS_CXX11_FLAG)
diff --git a/cmake/CeresCompileOptionsToComponents.cmake b/cmake/CeresCompileOptionsToComponents.cmake
index 7177475..2243ab3 100644
--- a/cmake/CeresCompileOptionsToComponents.cmake
+++ b/cmake/CeresCompileOptionsToComponents.cmake
@@ -83,7 +83,9 @@
   add_to_output_if_found(CURRENT_CERES_COMPILE_OPTIONS ${CERES_COMPONENTS_VAR}
     CERES_USE_CXX11 "C++11")
   add_to_output_if_found(CURRENT_CERES_COMPILE_OPTIONS ${CERES_COMPONENTS_VAR}
-    CERES_USE_OPENMP "OpenMP")
+    CERES_USE_OPENMP "OpenMP;Multithreading")
+  add_to_output_if_found(CURRENT_CERES_COMPILE_OPTIONS ${CERES_COMPONENTS_VAR}
+    CERES_USE_TBB "TBB;Multithreading")
   # Remove duplicates of SparseLinearAlgebraLibrary if multiple sparse backends
   # are present.
   list(REMOVE_DUPLICATES ${CERES_COMPONENTS_VAR})
diff --git a/cmake/FindSuiteSparse.cmake b/cmake/FindSuiteSparse.cmake
index 50d4ae1..e887e3b 100644
--- a/cmake/FindSuiteSparse.cmake
+++ b/cmake/FindSuiteSparse.cmake
@@ -291,21 +291,14 @@
   # SuiteSparseQR may be compiled with Intel Threading Building Blocks,
   # we assume that if TBB is installed, SuiteSparseQR was compiled with
   # support for it, this will do no harm if it wasn't.
-  suitesparse_find_component(TBB LIBRARIES tbb)
+  find_package(TBB QUIET)
   if (TBB_FOUND)
-    message(STATUS "Found Intel Thread Building Blocks (TBB) library: "
-      "${TBB_LIBRARY}, assuming SuiteSparseQR was compiled with TBB.")
-    suitesparse_find_component(TBB_MALLOC LIBRARIES tbbmalloc)
-    if (TBB_MALLOC_FOUND)
-      message(STATUS "Found Intel Thread Building Blocks (TBB) Malloc library: "
-        "${TBB_MALLOC_LIBRARY}")
-      # Add the TBB libraries to the SuiteSparseQR libraries (the only
-      # libraries to optionally depend on TBB).
-      list(APPEND SUITESPARSEQR_LIBRARY ${TBB_LIBRARY} ${TBB_MALLOC_LIBRARY})
-    else()
-      message(STATUS "Did not find Intel Thread Building Blocks (TBB) Malloc "
-        "Library, discarding TBB as a dependency.")
-    endif()
+    message(STATUS "Found Intel Thread Building Blocks (TBB) library "
+      "(${TBB_VERSION}) assuming SuiteSparseQR was compiled "
+      "with TBB.")
+    # Add the TBB libraries to the SuiteSparseQR libraries (the only
+    # libraries to optionally depend on TBB).
+    list(APPEND SUITESPARSEQR_LIBRARY ${TBB_LIBRARIES})
   else()
     message(STATUS "Did not find Intel TBB library, assuming SuiteSparseQR was "
       "not compiled with TBB.")
diff --git a/docs/source/installation.rst b/docs/source/installation.rst
index c95049e..27979ce 100644
--- a/docs/source/installation.rst
+++ b/docs/source/installation.rst
@@ -865,6 +865,11 @@
 
 #. ``OpenMP``: Ceres built with OpenMP (``OPENMP=ON``).
 
+#. ``TBB``: Ceres built with Intel Thread Building Blocks (TBB) (``TBB=ON``).
+
+#. ``Multithreading``: Ceres built with *a* multithreading library.
+   This is equivalent to ``OpenMP`` **OR** ``TBB``.
+
 #. ``C++11``: Ceres built with C++11 (``CXX11=ON``).
 
 To specify one/multiple Ceres components use the ``COMPONENTS`` argument to
diff --git a/internal/ceres/CMakeLists.txt b/internal/ceres/CMakeLists.txt
index 829a383..c68edab 100644
--- a/internal/ceres/CMakeLists.txt
+++ b/internal/ceres/CMakeLists.txt
@@ -184,7 +184,7 @@
 endif (OPENMP_FOUND)
 
 if (TBB_FOUND)
-  list(APPEND CERES_LIBRARY_PRIVATE_DEPENDENCIES ${TBB_tbb_LIBRARY})
+  list(APPEND CERES_LIBRARY_PRIVATE_DEPENDENCIES ${TBB_LIBRARIES})
   if (NOT MSVC)
     list(APPEND CERES_LIBRARY_PRIVATE_DEPENDENCIES ${CMAKE_THREAD_LIBS_INIT})
   endif (NOT MSVC)
