diff --git a/CMakeLists.txt b/CMakeLists.txt
index 778682e..319407a 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -66,6 +66,7 @@
 
 # Make CMake aware of the cmake folder for local FindXXX scripts.
 SET (CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake")
+INCLUDE(UpdateCacheVariable)
 
 SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
 SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
@@ -117,11 +118,8 @@
     MESSAGE(
       "-- Disabling tests. The flags BUILD_TESTING and BUILD_SHARED_LIBS"
       " are incompatible with MSVC."
-    )
-    # Retain the help string associated with the BUILD_TESTING option
-    # and turn testing off.
-    GET_PROPERTY(HELP_STRING CACHE BUILD_TESTING PROPERTY HELPSTRING)
-    SET(BUILD_TESTING OFF CACHE BOOL "${HELP_STRING}" FORCE)
+      )
+    UPDATE_CACHE_VARIABLE(BUILD_TESTING OFF)
   ENDIF (BUILD_TESTING AND BUILD_SHARED_LIBS)
 ENDIF (MSVC)
 
@@ -206,10 +204,7 @@
   ENDIF (BLAS_FOUND)
 
   IF (NOT (LAPACK_FOUND AND BLAS_FOUND))
-    # Retain the help string associated with the LAPACK option
-    # when updating it to disable use of LAPACK.
-    GET_PROPERTY(HELP_STRING CACHE LAPACK PROPERTY HELPSTRING)
-    SET(LAPACK OFF CACHE BOOL "${HELP_STRING}" FORCE)
+    UPDATE_CACHE_VARIABLE(LAPACK OFF)
     LIST(APPEND CERES_COMPILE_OPTIONS CERES_NO_LAPACK)
   ENDIF (NOT (LAPACK_FOUND AND BLAS_FOUND))
 ELSE (LAPACK)
@@ -224,10 +219,7 @@
   # via SuiteSparse to LAPACK.
   MESSAGE("-- Disabling SuiteSparse as use of LAPACK has been disabled, "
     "turn ON LAPACK to enable (optional) building with SuiteSparse.")
-  # Retain the help string associated with the SUITESPARSE option
-  # when updating it to disable use of SuiteSparse.
-  GET_PROPERTY(HELP_STRING CACHE SUITESPARSE PROPERTY HELPSTRING)
-  SET(SUITESPARSE OFF CACHE BOOL "${HELP_STRING}" FORCE)
+  UPDATE_CACHE_VARIABLE(SUITESPARSE OFF)
 ENDIF (SUITESPARSE AND NOT LAPACK)
 IF (SUITESPARSE)
   # By default, if SuiteSparse and all dependencies are found, Ceres is
@@ -261,10 +253,7 @@
     # Disable use of SuiteSparse if it cannot be found and continue.
     MESSAGE("-- Did not find all SuiteSparse dependencies, disabling "
       "SuiteSparse support.")
-    # Retain the help string associated with the SUITESPARSE option
-    # when updating it to disable use of SuiteSparse.
-    GET_PROPERTY(HELP_STRING CACHE SUITESPARSE PROPERTY HELPSTRING)
-    SET(SUITESPARSE OFF CACHE BOOL "${HELP_STRING}" FORCE)
+    UPDATE_CACHE_VARIABLE(SUITESPARSE OFF)
     LIST(APPEND CERES_COMPILE_OPTIONS CERES_NO_SUITESPARSE)
   ENDIF (SUITESPARSE_FOUND)
 ELSE (SUITESPARSE)
@@ -284,10 +273,7 @@
   ELSE (CXSPARSE_FOUND)
     # Disable use of CXSparse if it cannot be found and continue.
     MESSAGE("-- Did not find CXSparse, Building without CXSparse.")
-    # Retain the help string associated with the CXSPARSE option
-    # when updating it to disable use of CXSparse.
-    GET_PROPERTY(HELP_STRING CACHE CXSPARSE PROPERTY HELPSTRING)
-    SET(CXSPARSE OFF CACHE BOOL "${HELP_STRING}" FORCE)
+    UPDATE_CACHE_VARIABLE(CXSPARSE OFF)
     LIST(APPEND CERES_COMPILE_OPTIONS CERES_NO_CXSPARSE)
   ENDIF (CXSPARSE_FOUND)
 ELSE (CXSPARSE)
@@ -313,10 +299,7 @@
   ELSE (GFLAGS_FOUND)
     MESSAGE("-- Did not find Google Flags (gflags), Building without gflags "
       "- no tests or tools will be built!")
-    # Retain the help string associated with the GFLAGS option
-    # when updating it to disable use of gflags.
-    GET_PROPERTY(HELP_STRING CACHE GFLAGS PROPERTY HELPSTRING)
-    SET(GFLAGS OFF CACHE BOOL "${HELP_STRING}" FORCE)
+    UPDATE_CACHE_VARIABLE(GFLAGS OFF)
   ENDIF (GFLAGS_FOUND)
 ELSE (GFLAGS)
   MESSAGE("-- Google Flags disabled; no tests or tools will be built!")
@@ -370,10 +353,7 @@
 IF (OPENMP)
   # Clang does not (yet) support OpenMP.
   IF (CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
-    # Retain the help string associated with the OPENMP option
-    # when updating it to disable use of OPENMP.
-    GET_PROPERTY(HELP_STRING CACHE OPENMP PROPERTY HELPSTRING)
-    SET(OPENMP OFF CACHE BOOL "${HELP_STRING}" FORCE)
+    UPDATE_CACHE_VARIABLE(OPENMP OFF)
     MESSAGE("-- Compiler is Clang, disabling OpenMP.")
     LIST(APPEND CERES_COMPILE_OPTIONS CERES_NO_THREADS)
   ELSE (CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
@@ -392,10 +372,7 @@
       ENDIF (UNIX)
     ELSE (OPENMP_FOUND)
       MESSAGE("-- Failed to find OpenMP, disabling.")
-      # Retain the help string associated with the OPENMP option
-      # when updating it to disable use of OPENMP.
-      GET_PROPERTY(HELP_STRING CACHE OPENMP PROPERTY HELPSTRING)
-      SET(OPENMP OFF CACHE BOOL "${HELP_STRING}" FORCE)
+      UPDATE_CACHE_VARIABLE(OPENMP OFF)
       LIST(APPEND CERES_COMPILE_OPTIONS CERES_NO_THREADS)
     ENDIF (OPENMP_FOUND)
   ENDIF (CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
diff --git a/cmake/UpdateCacheVariable.cmake b/cmake/UpdateCacheVariable.cmake
new file mode 100644
index 0000000..759de2e
--- /dev/null
+++ b/cmake/UpdateCacheVariable.cmake
@@ -0,0 +1,43 @@
+# Ceres Solver - A fast non-linear least squares minimizer
+# Copyright 2014 Google Inc. All rights reserved.
+# http://code.google.com/p/ceres-solver/
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+#
+# * Redistributions of source code must retain the above copyright notice,
+#   this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above copyright notice,
+#   this list of conditions and the following disclaimer in the documentation
+#   and/or other materials provided with the distribution.
+# * Neither the name of Google Inc. nor the names of its contributors may be
+#   used to endorse or promote products derived from this software without
+#   specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+#
+# Author: alexs.mac@gmail.com (Alex Stewart)
+
+# By default, there is no easy way in CMake to set the value of a cache
+# variable without reinitialising it, which involves resetting its
+# associated help string.  This is particularly annoying for CMake options
+# where they need to programmatically updated.
+#
+# This function automates this process by getting the current help string
+# for the cache variable to update, then reinitialising it with the new
+# value, but with the original help string.
+FUNCTION(UPDATE_CACHE_VARIABLE VAR_NAME VALUE)
+  GET_PROPERTY(HELP_STRING CACHE ${VAR_NAME} PROPERTY HELPSTRING)
+  GET_PROPERTY(VAR_TYPE CACHE ${VAR_NAME} PROPERTY TYPE)
+  SET(${VAR_NAME} ${VALUE} CACHE ${VAR_TYPE} "${HELP_STRING}" FORCE)
+ENDFUNCTION()
