Do not discard caller's CMAKE_MODULE_PATH

Ceres CMake package configuration relies on several own find modules
(e.g., for SuiteSparse and METIS). To allow CMake to discover additional
find modules, the CMAKE_MODULE_PATH variable must be updated to include
the directories containing the corresponding find modules.

Previously, before updating CMAKE_MODULE_PATH, Ceres stored the
variable's initial value and then completely replaced it by the
directory containing Ceres's modules. However, a find_dependency failure
would cause an early return preventing CMAKE_MODULE_PATH to be restored.
Thus, any initial user changes to CMAKE_MODULE_PATH would be lost.

Now, instead of completely replacing the CMAKE_MODULE_PATH value we only
prepend additional directories. An early return no longer has a
destructive effect on CMAKE_MODULE_PATH. In a failure case,
CMAKE_MODULE_PATH still contains caller's initial set of directories and
an additional path prepended by Ceres.

Fixes #1024

Change-Id: I80d92a5dff9f3cff651f950c4f8d04ece008b44b
diff --git a/cmake/CeresConfig.cmake.in b/cmake/CeresConfig.cmake.in
index 9122881..1d0b012 100644
--- a/cmake/CeresConfig.cmake.in
+++ b/cmake/CeresConfig.cmake.in
@@ -120,11 +120,11 @@
   "${CMAKE_CURRENT_LIST_FILE}" PATH)
 
 if (CERES_WAS_INSTALLED)
-  # 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 ${CERES_CURRENT_CONFIG_DIR})
+  # Update the CMake module path to include 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.
+  list(PREPEND CMAKE_MODULE_PATH ${CERES_CURRENT_CONFIG_DIR})
 
   # Build the absolute root install directory as a relative path
   # (determined when Ceres was configured & built) from the current
@@ -155,11 +155,11 @@
       "directory: ${CERES_EXPORTED_BUILD_DIR} does not exist.")
   endif()
 
-  # Reset CMake module path to the cmake directory in the Ceres source
-  # tree which was exported, 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 ${CERES_EXPORTED_SOURCE_DIR}/cmake)
+  # Update the CMake module path to include the cmake directory in the Ceres
+  # source tree which was exported, 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.
+  list(PREPEND CMAKE_MODULE_PATH ${CERES_EXPORTED_SOURCE_DIR}/cmake)
 endif(CERES_WAS_INSTALLED)
 
 # Set the version.