Merge branch 'master' of https://code.google.com/p/ceres-solver
diff --git a/CMakeLists.txt b/CMakeLists.txt
index c00d8b9..0002fbf 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -38,29 +38,45 @@
 
 ENABLE_TESTING()
 
+OPTION(BUILD_TESTING
+       "Enable tests"
+       ON)
+
+# Default locations to search for on various platforms.
+SET(SEARCH_LIBS
+    ${SEARCH_LIBS}
+    /usr/lib
+    /usr/local/lib
+    /usr/local/homebrew/lib     # Mac OS X
+    /opt/local/lib
+    )
+
+SET(SEARCH_HEADERS
+    ${SEARCH_HEADERS}
+    /usr/include
+    /usr/local/include
+    /usr/local/homebrew/include  # Mac OS X
+    /opt/local/include/
+    )
+
+# To get a more static build, try the following line on Mac and Linux:
+# SET(CMAKE_FIND_LIBRARY_SUFFIXES .a ${CMAKE_FIND_LIBRARY_SUFFIXES})
+
 # SuiteSparse
 OPTION(SUITESPARSE
        "Enable SuiteSparse. Needed for efficient solutions of large problems."
        ON)
 
-# To get a more static build, try the following line on Mac and Linux:
-# SET(CMAKE_FIND_LIBRARY_SUFFIXES .a ${CMAKE_FIND_LIBRARY_SUFFIXES})
-
 IF (SUITESPARSE)
   SET(SUITESPARSE_SEARCH_LIBS
       ${SEARCH_LIBS}
-      /usr/lib
       /usr/lib/suitesparse             # Ubuntu
-      /usr/local/lib/
       /usr/local/lib/suitesparse
       /opt/local/lib/ufsparse          # Mac OS X
       )
-
   SET(SUITESPARSE_SEARCH_HEADERS
       ${SEARCH_HEADERS}
-      /usr/include
       /usr/include/suitesparse         # Ubuntu
-      /usr/local/include
       /usr/local/include/suitesparse,
       /opt/local/include/ufsparse      # Mac os X
       )
@@ -167,28 +183,20 @@
        ON)
 
 IF (GFLAGS)
-  SET(GFLAGS_SEARCH_LIBS
-     ${SEARCH_LIBS}
-     /usr/lib
-     /usr/local/lib
-     )
-     
- SET(GFLAGS_SEARCH_HEADERS
-     ${SEARCH_HEADERS}
-     /usr/include
-     /usr/local/include
-     )
-
   MESSAGE("-- Check for Google Flags")
-  FIND_LIBRARY(GFLAGS_LIB NAMES gflags PATHS ${GFLAGS_SEARCH_LIBS})
-  FIND_PATH(GFLAGS_INCLUDE NAMES gflags/gflags.h PATHS ${GFLAGS_SEARCH_HEADERS})
-
-  IF (NOT EXISTS ${GFLAGS_LIB} OR NOT EXISTS ${GFLAGS_INCLUDE})
+  FIND_LIBRARY(GFLAGS_LIB NAMES gflags PATHS ${SEARCH_LIBS})
+  IF (NOT EXISTS ${GFLAGS_LIB})
     MESSAGE(FATAL_ERROR
             "Can't find Google Flags. Please specify: "
-            "-DGFLAGS_INCLUDE=... and -DGFLAGS_LIB=...")
-  ENDIF (NOT EXISTS ${GFLAGS_LIB} OR NOT EXISTS ${GFLAGS_INCLUDE})
+            "-DGFLAGS_LIB=...")
+  ENDIF (NOT EXISTS ${GFLAGS_LIB})
   MESSAGE("-- Found Google Flags library: ${GFLAGS_LIB}")
+  FIND_PATH(GFLAGS_INCLUDE NAMES gflags/gflags.h PATHS ${SEARCH_HEADERS})
+  IF (NOT EXISTS ${GFLAGS_INCLUDE})
+    MESSAGE(FATAL_ERROR
+            "Can't find Google Flags. Please specify: "
+            "-DGFLAGS_INCLUDE=...")
+  ENDIF (NOT EXISTS ${GFLAGS_INCLUDE})
   MESSAGE("-- Found Google Flags header in: ${GFLAGS_INCLUDE}")
 ELSE (GFLAGS)
   MESSAGE("-- Google Flags disabled; no tests or tools will be built!")
@@ -196,38 +204,32 @@
 ENDIF (GFLAGS)
 
 # Google Logging
-SET(GFLOG_SEARCH_LIBS
-    ${SEARCH_LIBS}
-    /usr/lib
-    /usr/local/lib
-    )
-     
-SET(GLOG_SEARCH_HEADERS
-    ${SEARCH_HEADERS}
-    /usr/include
-    /usr/local/include
-    )
-
 MESSAGE("-- Check for Google Log")
-FIND_LIBRARY(GLOG_LIB NAMES glog PATHS GLOG_SEARCH_LIBS)
-FIND_PATH(GLOG_INCLUDE NAMES glog/logging.h GLOG_SEARCH_HEADERS)
-IF (NOT EXISTS ${GLOG_LIB} OR NOT EXISTS ${GLOG_INCLUDE})
+FIND_LIBRARY(GLOG_LIB NAMES glog PATHS ${SEARCH_LIBS})
+IF (NOT EXISTS ${GLOG_LIB})
   MESSAGE(FATAL_ERROR
           "Can't find Google Log. Please specify: "
-          "-DGLOG_INCLUDE=... and -DGLOG_LIB=...")
-ENDIF (NOT EXISTS ${GLOG_LIB} OR NOT EXISTS ${GLOG_INCLUDE})
+          "-DGLOG_LIB=...")
+ENDIF (NOT EXISTS ${GLOG_LIB})
 MESSAGE("-- Found Google Log library: ${GLOG_LIB}")
+
+FIND_PATH(GLOG_INCLUDE NAMES glog/logging.h PATHS ${SEARCH_HEADERS})
+IF (NOT EXISTS ${GLOG_INCLUDE})
+  MESSAGE(FATAL_ERROR
+          "Can't find Google Log. Please specify: "
+          "-DGLOG_INCLUDE=...")
+ENDIF (NOT EXISTS ${GLOG_INCLUDE})
 MESSAGE("-- Found Google Log header in: ${GLOG_INCLUDE}")
 
 # Eigen
 MESSAGE("-- Check for Eigen 3.0")
 SET(EIGEN_SEARCH_HEADERS
     ${SEARCH_HEADERS}
-    /usr/include
     /usr/include/eigen3  # Ubuntu 10.04's default location.
-    /usr/local/include
     /usr/local/include/eigen3
-    /opt/local/var/macports/software/eigen3/opt/local/include/eigen3/)
+    /usr/local/homebrew/include/eigen3  # Mac OS X
+    /opt/local/var/macports/software/eigen3/opt/local/include/eigen3/
+    )
 FIND_PATH(EIGEN_INCLUDE NAMES Eigen/Core PATHS ${EIGEN_SEARCH_HEADERS})
 IF (NOT EXISTS ${EIGEN_INCLUDE})
   MESSAGE(FATAL_ERROR "Can't find Eigen. Try passing -DEIGEN_INCLUDE=...")