diff --git a/cmake/CeresConfig.cmake.in b/cmake/CeresConfig.cmake.in
index 56a2194..5550fd0 100644
--- a/cmake/CeresConfig.cmake.in
+++ b/cmake/CeresConfig.cmake.in
@@ -37,32 +37,40 @@
 #
 # This module defines the following variables:
 #
-# Ceres_FOUND / CERES_FOUND: True iff Ceres has been successfully found. Both
-#                            variables are set as although FindPackage() only
-#                            references Ceres_FOUND in Config mode, given the
-#                            conventions for <package>_FOUND when FindPackage()
-#                            is called in Module mode, users could reasonably
-#                            expect to use CERES_FOUND instead.
+# Ceres_FOUND / CERES_FOUND: True iff Ceres has been successfully
+#                            found. Both variables are set as although
+#                            FindPackage() only references Ceres_FOUND
+#                            in Config mode, given the conventions for
+#                            <package>_FOUND when FindPackage() is
+#                            called in Module mode, users could
+#                            reasonably expect to use CERES_FOUND
+#                            instead.
+#
 # CERES_VERSION: Version of Ceres found.
-# CERES_INCLUDE_DIRS: Include directories for Ceres and the dependencies which
-#                     appear in the Ceres public API and are thus required to
-#                     use Ceres.
-# CERES_LIBRARIES: Libraries for Ceres and all dependencies against which Ceres
-#                  was compiled. This will not include any optional dependencies
-#                  that were disabled when Ceres was compiled.
 #
-# CERES_INTERFACE_COMPILE_DEFINITIONS: List of compile definitions which should be
-#                                   used when compiling a target that uses Ceres
-#                                   Note that these variables will NOT have a -D
-#                                   prefix appended.
-# IMPORTANT: The contents of CERES_INTERFACE_COMPILE_DEFINITIONS will be
-#            AUTOMATICALLY added for you, either via the CMake function
-#            target_compile_definitions() in CMake >= 2.8.11, or via a call to
-#            add_definitions() in CMake < 2.8.11.
+# CERES_INCLUDE_DIRS: Include directories for Ceres and the
+#                     dependencies which appear in the Ceres public
+#                     API and are thus required to use Ceres.
+#                     CERES_LIBRARIES: Libraries for Ceres and all
+#                     dependencies against which Ceres was
+#                     compiled. This will not include any optional
+#                     dependencies that were disabled when Ceres was
+#                     compiled.
 #
-# The following variables are also defined for legacy compatibility only.
-# Any new code should not use them as they do not conform to the standard CMake
-# FindPackage naming conventions.
+# CERES_INTERFACE_COMPILE_DEFINITIONS: List of compile definitions
+#                                   which should be used when
+#                                   compiling a target that uses Ceres
+#                                   Note that these variables will NOT
+#                                   have a -D prefix appended.
+#
+# IMPORTANT: The contents of CERES_INTERFACE_COMPILE_DEFINITIONS will
+#            be AUTOMATICALLY added for you, either via the CMake
+#            function target_compile_definitions() in CMake >= 2.8.11,
+#            or via a call to add_definitions() in CMake < 2.8.11.
+#
+# The following variables are also defined for legacy compatibility
+# only.  Any new code should not use them as they do not conform to
+# the standard CMake FindPackage naming conventions.
 #
 # CERES_INCLUDES = ${CERES_INCLUDE_DIRS}.
 
@@ -70,8 +78,8 @@
 # unsets all public (designed to be used externally) variables and reports
 # error message at priority depending upon [REQUIRED/QUIET/<NONE>] argument.
 MACRO(CERES_REPORT_NOT_FOUND REASON_MSG)
-  # FindPackage() only references Ceres_FOUND, and requires it to be explicitly
-  # set FALSE to denote not found (not merely undefined).
+  # FindPackage() only references Ceres_FOUND, and requires it to be
+  # explicitly set FALSE to denote not found (not merely undefined).
   SET(Ceres_FOUND FALSE)
   SET(CERES_FOUND FALSE)
   UNSET(CERES_INCLUDE_DIRS)
@@ -81,8 +89,8 @@
   # Reset the CMake module path to its state when this script was called.
   SET(CMAKE_MODULE_PATH ${CALLERS_CMAKE_MODULE_PATH})
 
-  # Note <package>_FIND_[REQUIRED/QUIETLY] variables defined by FindPackage()
-  # use the camelcase library name, not uppercase.
+  # Note <package>_FIND_[REQUIRED/QUIETLY] variables defined by
+  # FindPackage() use the camelcase library name, not uppercase.
   IF (Ceres_FIND_QUIETLY)
     MESSAGE(STATUS "Failed to find Ceres - " ${REASON_MSG} ${ARGN})
   ELSE (Ceres_FIND_REQUIRED)
@@ -99,20 +107,20 @@
 GET_FILENAME_COMPONENT(CURRENT_CONFIG_INSTALL_DIR
   "${CMAKE_CURRENT_LIST_FILE}" PATH)
 
-# Record the state of the CMake module path when this script was called so
-# that we can ensure that we leave it in the same state on exit as it was
-# on entry, but modify it locally.
+# Record the state of the CMake module path when this script was
+# called so that we can ensure that we leave it in the same state on
+# exit as it was on entry, but modify it locally.
 SET(CALLERS_CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH})
-# Reset CMake module path to the installation directory of this script,
-# thus we will use the FindPackage() scripts shipped with Ceres to find
-# Ceres' dependencies, even if the user has equivalently named FindPackage()
-# scripts in their project.
+# Reset CMake module path to the installation directory of this
+# script, thus we will use the FindPackage() scripts shipped with
+# Ceres to find Ceres' dependencies, even if the user has equivalently
+# named FindPackage() scripts in their project.
 SET(CMAKE_MODULE_PATH ${CURRENT_CONFIG_INSTALL_DIR})
 
-# Build the absolute root install directory as a relative path (determined when
-# Ceres was configured & built) from the current install directory for this
-# this file.  This allows for the install tree to be relocated, after Ceres was
-# built, outside of CMake.
+# Build the absolute root install directory as a relative path
+# (determined when Ceres was configured & built) from the current
+# install directory for this this file.  This allows for the install
+# tree to be relocated, after Ceres was built, outside of CMake.
 GET_FILENAME_COMPONENT(CURRENT_ROOT_INSTALL_DIR
   ${CURRENT_CONFIG_INSTALL_DIR}/@INSTALL_ROOT_REL_CONFIG_INSTALL_DIR@ ABSOLUTE)
 IF (NOT EXISTS ${CURRENT_ROOT_INSTALL_DIR})
@@ -138,9 +146,10 @@
     "partially relocated outside of CMake after Ceres was built.")
 ENDIF (NOT EXISTS ${CERES_INCLUDE_DIR}/ceres/ceres.h)
 
-# Append the include directories for all (potentially optional) dependencies
-# with which Ceres was compiled, the libraries themselves come in via
-# CeresTargets-<release/debug>.cmake as link libraries for Ceres target.
+# Append the include directories for all (potentially optional)
+# dependencies with which Ceres was compiled, the libraries themselves
+# come in via CeresTargets-<release/debug>.cmake as link libraries for
+# Ceres target.
 SET(CERES_INCLUDE_DIRS ${CERES_INCLUDE_DIR})
 
 # Eigen.
@@ -200,15 +209,15 @@
 # Set the expected XX_LIBRARIES variable for FindPackage().
 SET(CERES_LIBRARIES ceres)
 
-# If Ceres was compiled with CMake < 2.8.11, we were not able to use the
-# new (in 2.8.11) target_compile_definitions() function to append the
-# required compile definitions to use when compiling a target that uses
-# Ceres to the Ceres library target.  As such, we need to use add_definitions()
-# to ensure that they will be present.  This is a blunt instrument, as it
-# will add the Ceres definitions to _all_ targets declared from this point
-# on in the caller's project.  Hoever, without requiring the user to
-# explicitly set the flags themselves, this is the only way in CMake
-# versions < 2.8.11.
+# If Ceres was compiled with CMake < 2.8.11, we were not able to use
+# the new (in 2.8.11) target_compile_definitions() function to append
+# the required compile definitions to use when compiling a target that
+# uses Ceres to the Ceres library target.  As such, we need to use
+# add_definitions() to ensure that they will be present.  This is a
+# blunt instrument, as it will add the Ceres definitions to _all_
+# targets declared from this point on in the caller's project.
+# Hoever, without requiring the user to explicitly set the flags
+# themselves, this is the only way in CMake versions < 2.8.11.
 SET (CERES_COMPILED_CMAKE_VERSION @CMAKE_VERSION@)
 SET (CERES_INTERFACE_COMPILE_DEFINITIONS @CERES_INTERFACE_COMPILE_DEFINITIONS@)
 IF (CERES_COMPILED_CMAKE_VERSION VERSION_LESS 2.8.11)
@@ -228,7 +237,9 @@
 # found Ceres and all required dependencies.
 MESSAGE(STATUS "Found Ceres version: ${CERES_VERSION} "
     "installed in: ${CURRENT_ROOT_INSTALL_DIR}")
-# Set CERES_FOUND to be equivalent to Ceres_FOUND, which is set to TRUE by
-# FindPackage() if this file is found and run, and after which Ceres_FOUND
-# is not (explicitly, i.e. undefined does not count) set to FALSE.
+
+# Set CERES_FOUND to be equivalent to Ceres_FOUND, which is set to
+# TRUE by FindPackage() if this file is found and run, and after which
+# Ceres_FOUND is not (explicitly, i.e. undefined does not count) set
+# to FALSE.
 SET(CERES_FOUND TRUE)
