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=...")