Better handling of booleans in CMakeLists.txt
Updated the value of the version of cmake needed to build
ceres. Since the way booleans and literals are handled has changed
recently.

Change-Id: If13877f4403705cc29c3cf66c4e66dec26bbb3e9
diff --git a/CMakeLists.txt b/CMakeLists.txt
index ab00deb..20ac076 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -28,7 +28,7 @@
 #
 # Author: keir@google.com (Keir Mierle)
 
-CMAKE_MINIMUM_REQUIRED(VERSION 2.4)
+CMAKE_MINIMUM_REQUIRED(VERSION 2.8.0)
 
 IF (COMMAND cmake_policy)
   CMAKE_POLICY(SET CMP0003 NEW)
@@ -184,12 +184,12 @@
 ENDIF (EXISTS ${METIS_LIB})
 
 SET(BLAS_AND_LAPACK_FOUND TRUE)
-IF (APPLE)
+IF (${APPLE})
   # Mac OS X has LAPACK/BLAS bundled in a framework called
   # "vecLib". Search for that instead of for the normal "lapack"
   # library.
   FIND_LIBRARY(LAPACK_LIB NAMES vecLib)
-ELSE (APPLE)
+ELSE (${APPLE})
   FIND_LIBRARY(BLAS_LIB NAMES blas)
   IF (EXISTS ${BLAS_LIB})
     MESSAGE("-- Found BLAS library: ${BLAS_LIB}")
@@ -198,7 +198,7 @@
     SET(BLAS_AND_LAPACK_FOUND FALSE)
   ENDIF (EXISTS ${BLAS_LIB})
   FIND_LIBRARY(LAPACK_LIB NAMES lapack)
-ENDIF (APPLE)
+ENDIF (${APPLE})
 
 IF (EXISTS ${LAPACK_LIB})
   MESSAGE("-- Found LAPACK library: ${LAPACK_LIB}")
@@ -208,33 +208,33 @@
 ENDIF (EXISTS ${LAPACK_LIB})
 
 SET(SUITESPARSE_FOUND
-    AMD_FOUND AND
-    CAMD_FOUND AND
-    COLAMD_FOUND AND
-    CCOLAMD_FOUND AND
-    CHOLMOD_FOUND AND
-    BLAS_AND_LAPACK_FOUND)
+  ${AMD_FOUND} AND
+  ${CAMD_FOUND} AND
+  ${COLAMD_FOUND} AND
+  ${CCOLAMD_FOUND} AND
+  ${CHOLMOD_FOUND} AND
+  ${BLAS_AND_LAPACK_FOUND})
 
 # By default, if all of SuiteSparse's dependencies are found, Ceres is
 # built with SuiteSparse support. -DSUITESPARSE=ON/OFF can be used to
 # enable/disable SuiteSparse explicitly.
 IF (DEFINED SUITESPARSE)
-  IF (SUITESPARSE)
-    IF (NOT SUITESPARSE_FOUND)
+  IF (${SUITESPARSE})
+    IF (NOT ${SUITESPARSE_FOUND})
       MESSAGE(FATAL_ERROR "One or more of SuiteSparse's dependencies was not found")
-    ENDIF (NOT SUITESPARSE_FOUND)
-  ELSE (SUITESPARSE)
+    ENDIF (NOT ${SUITESPARSE_FOUND})
+  ELSE (${SUITESPARSE})
     ADD_DEFINITIONS(-DCERES_NO_SUITESPARSE)
-  ENDIF (SUITESPARSE)
+  ENDIF (${SUITESPARSE})
 ELSE (DEFINED SUITESPARSE)
-  IF (SUITESPARSE_FOUND)
+  IF (${SUITESPARSE_FOUND})
     MESSAGE("-- Found all SuiteSparse dependencies. Building with SuiteSparse")
     SET(SUITESPARSE ON)
-  ELSE (SUITESPARSE_FOUND)
+  ELSE (${SUITESPARSE_FOUND})
     MESSAGE("-- Did not find all SuiteSparse dependencies. Building without SuiteSparse")
     SET(SUITESPARSE OFF)
     ADD_DEFINITIONS(-DCERES_NO_SUITESPARSE)
-  ENDIF (SUITESPARSE_FOUND)
+  ENDIF (${SUITESPARSE_FOUND})
 ENDIF (DEFINED SUITESPARSE)
 
 # By default, if all of CXSparse's dependencies are found, Ceres is
@@ -260,22 +260,22 @@
 ENDIF (EXISTS ${CXSPARSE_INCLUDE})
 
 IF (DEFINED CXSPARSE)
-  IF (CXSPARSE)
-    IF (NOT CXSPARSE_FOUND)
+  IF (${CXSPARSE})
+    IF (NOT ${CXSPARSE_FOUND})
       MESSAGE(FATAL_ERROR "-- CXSparse not found.")
-    ENDIF (NOT CXSPARSE_FOUND)
-  ELSE (CXSPARSE)
+    ENDIF (NOT ${CXSPARSE_FOUND})
+  ELSE (${CXSPARSE})
     ADD_DEFINITIONS(-DCERES_NO_CXSPARSE)
-  ENDIF (CXSPARSE)
+  ENDIF (${CXSPARSE})
 ELSE (DEFINED CXSPARSE)
-  IF (CXSPARSE_FOUND)
+  IF (${CXSPARSE_FOUND})
     MESSAGE("-- Building with CXSparse support.")
     SET(CXSPARSE ON)
-  ELSE (CXSPARSE_FOUND)
+  ELSE (${CXSPARSE_FOUND})
     MESSAGE("-- Building without CXSparse.")
     SET(CXSPARSE OFF)
     ADD_DEFINITIONS(-DCERES_NO_CXSPARSE)
-  ENDIF (CXSPARSE_FOUND)
+  ENDIF (${CXSPARSE_FOUND})
 ENDIF (DEFINED CXSPARSE)
 
 # Google Flags
@@ -283,7 +283,7 @@
        "Enable Google Flags."
        ON)
 
-IF (GFLAGS)
+IF (${GFLAGS})
   MESSAGE("-- Check for Google Flags")
   FIND_LIBRARY(GFLAGS_LIB NAMES gflags PATHS ${SEARCH_LIBS})
   IF (NOT EXISTS ${GFLAGS_LIB})
@@ -299,10 +299,10 @@
             "-DGFLAGS_INCLUDE=...")
   ENDIF (NOT EXISTS ${GFLAGS_INCLUDE})
   MESSAGE("-- Found Google Flags header in: ${GFLAGS_INCLUDE}")
-ELSE (GFLAGS)
+ELSE (${GFLAGS})
   MESSAGE("-- Google Flags disabled; no tests or tools will be built!")
   ADD_DEFINITIONS(-DCERES_NO_GFLAGS)
-ENDIF (GFLAGS)
+ENDIF (${GFLAGS})
 
 # Google Logging
 MESSAGE("-- Check for Google Log")
@@ -337,52 +337,52 @@
        "Enable fixed-size schur specializations."
        ON)
 
-IF (NOT SCHUR_SPECIALIZATIONS)
+IF (NOT ${SCHUR_SPECIALIZATIONS})
   ADD_DEFINITIONS(-DCERES_RESTRICT_SCHUR_SPECIALIZATION)
   MESSAGE("-- Disabling Schur specializations (faster compiles)")
-ENDIF (NOT SCHUR_SPECIALIZATIONS)
+ENDIF (NOT ${SCHUR_SPECIALIZATIONS})
 
 # Multithreading using OpenMP
 OPTION(OPENMP
        "Enable threaded solving in Ceres (requires OpenMP)"
        ON)
 
-IF (OPENMP)
+IF (${OPENMP})
   FIND_PACKAGE(OpenMP)
-  IF(OPENMP_FOUND)
+  IF(${OPENMP_FOUND})
     MESSAGE("-- Found OpenMP.")
     SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
     ADD_DEFINITIONS(-DCERES_USE_OPENMP)
-  ELSE(OPENMP_FOUND)
+  ELSE(${OPENMP_FOUND})
     MESSAGE("-- Can't find OpenMP. Continuing without it.")
-  ENDIF(OPENMP_FOUND)
-ENDIF (OPENMP)
+  ENDIF(${OPENMP_FOUND})
+ENDIF (${OPENMP})
 
 # Protocol buffers
 OPTION(PROTOBUF
        "Enable protocol buffers support."
        ON)
 
-IF (PROTOBUF)
+IF (${PROTOBUF})
   FIND_PACKAGE(Protobuf)
-  IF (PROTOBUF_FOUND)
+  IF (${PROTOBUF_FOUND})
     INCLUDE_DIRECTORIES(${PROTOBUF_INCLUDE_DIRS})
     INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}/internal)
-  ELSE (PROTOBUF_FOUND)
+  ELSE (${PROTOBUF_FOUND})
     ADD_DEFINITIONS(-DCERES_DONT_HAVE_PROTOCOL_BUFFERS)
-  ENDIF (PROTOBUF_FOUND)
-ELSE (PROTOBUF)
+  ENDIF (${PROTOBUF_FOUND})
+ELSE (${PROTOBUF})
   ADD_DEFINITIONS(-DCERES_DONT_HAVE_PROTOCOL_BUFFERS)
-ENDIF (PROTOBUF)
+ENDIF (${PROTOBUF})
 
-IF (UNIX)
-  # Atleast on linux, we need pthreads to be enabled for mutex to
+IF (${UNIX})
+  # At least on linux, we need pthreads to be enabled for mutex to
   # compile. This may not work on windows or android.
   FIND_PACKAGE(Threads REQUIRED)
   SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CMAKE_THREAD_LIBS_INIT}")
   ADD_DEFINITIONS(-DCERES_HAVE_PTHREAD)
   ADD_DEFINITIONS(-DCERES_HAVE_RWLOCK)
-ENDIF (UNIX)
+ENDIF (${UNIX})
 
 # Use the std namespace for the hash<> and related templates. This may vary by
 # system.
@@ -397,23 +397,23 @@
   ${EIGEN_INCLUDE}
   )
 
-IF (SUITESPARSE)
+IF (${SUITESPARSE})
   INCLUDE_DIRECTORIES(${CHOLMOD_INCLUDE})
-ENDIF(SUITESPARSE)
+ENDIF(${SUITESPARSE})
 
-IF (CXSPARSE)
+IF (${CXSPARSE})
   INCLUDE_DIRECTORIES(${CXSPARSE_INCLUDE})
-ENDIF(CXSPARSE)
+ENDIF(${CXSPARSE})
 
-IF (GFLAGS)
+IF (${GFLAGS})
   INCLUDE_DIRECTORIES(${GFLAGS_INCLUDE})
-ENDIF (GFLAGS)
+ENDIF (${GFLAGS})
 
 # Change the default build type from Debug to Release, while still
 # supporting overriding the build type.
-IF (NOT CMAKE_BUILD_TYPE)
+IF (NOT ${CMAKE_BUILD_TYPE})
   SET(CMAKE_BUILD_TYPE Release)
-ENDIF (NOT CMAKE_BUILD_TYPE)
+ENDIF (NOT ${CMAKE_BUILD_TYPE})
 
 ADD_SUBDIRECTORY(internal/ceres)
 ADD_SUBDIRECTORY(examples)
diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt
index 25ec6de..a5a820c 100644
--- a/examples/CMakeLists.txt
+++ b/examples/CMakeLists.txt
@@ -40,7 +40,7 @@
 ADD_EXECUTABLE(powell powell.cc)
 TARGET_LINK_LIBRARIES(powell ceres)
 
-IF (GFLAGS)
+IF (${GFLAGS})
   ADD_EXECUTABLE(circle_fit circle_fit.cc)
   TARGET_LINK_LIBRARIES(circle_fit ceres)
 
@@ -48,7 +48,7 @@
                  bundle_adjuster.cc
                  bal_problem.cc)
   TARGET_LINK_LIBRARIES(bundle_adjuster ceres)
-ENDIF (GFLAGS)
+ENDIF (${GFLAGS})
 
 ADD_EXECUTABLE(simple_bundle_adjuster
                simple_bundle_adjuster.cc)
diff --git a/internal/ceres/CMakeLists.txt b/internal/ceres/CMakeLists.txt
index 1b8b0d0..4cdf055 100644
--- a/internal/ceres/CMakeLists.txt
+++ b/internal/ceres/CMakeLists.txt
@@ -84,20 +84,20 @@
     visibility.cc
 )
 
-If (PROTOBUF_FOUND)
+If (${PROTOBUF_FOUND})
   PROTOBUF_GENERATE_CPP(PROTO_SRCS PROTO_HDRS matrix.proto)
-ENDIF (PROTOBUF_FOUND)
+ENDIF (${PROTOBUF_FOUND})
 
 # Also depend on the header files so that they appear in IDEs.
 FILE(GLOB CERES_INTERNAL_HDRS *.h)
 
 # Include the specialized schur solvers.
-IF (SCHUR_SPECIALIZATIONS)
+IF (${SCHUR_SPECIALIZATIONS})
   FILE(GLOB CERES_INTERNAL_SCHUR_FILES generated/*.cc)
-ELSE (SCHUR_SPECIALIZATIONS)
+ELSE (${SCHUR_SPECIALIZATIONS})
   # Only the fully dynamic solver.
   FILE(GLOB CERES_INTERNAL_SCHUR_FILES generated/schur_eliminator_d_d_d.cc)
-ENDIF (SCHUR_SPECIALIZATIONS)
+ENDIF (${SCHUR_SPECIALIZATIONS})
 
 ADD_LIBRARY(ceres
             ${PROTO_SRCS}
@@ -108,11 +108,11 @@
 
 SET(CERES_LIBRARY_DEPENDENCIES ${GLOG_LIB})
 
-IF (GFLAGS)
+IF (${GFLAGS})
   LIST(APPEND CERES_LIBRARY_DEPENDENCIES ${GFLAGS_LIB})
-ENDIF (GFLAGS)
+ENDIF (${GFLAGS})
 
-IF (SUITESPARSE)
+IF (${SUITESPARSE_FOUND})
   LIST(APPEND CERES_LIBRARY_DEPENDENCIES ${CHOLMOD_LIB})
   LIST(APPEND CERES_LIBRARY_DEPENDENCIES ${CCOLAMD_LIB})
   LIST(APPEND CERES_LIBRARY_DEPENDENCIES ${CAMD_LIB})
@@ -128,23 +128,23 @@
   IF (EXISTS ${BLAS_LIB})
     LIST(APPEND CERES_LIBRARY_DEPENDENCIES ${BLAS_LIB})
   ENDIF (EXISTS ${BLAS_LIB})
-ENDIF (SUITESPARSE)
+ENDIF (${SUITESPARSE_FOUND})
 
-IF (CXSPARSE)
+IF (${CXSPARSE_FOUND})
   LIST(APPEND CERES_LIBRARY_DEPENDENCIES ${CXSPARSE_LIB})
-ENDIF (CXSPARSE)
+ENDIF (${CXSPARSE_FOUND})
 
-IF (OPENMP_FOUND)
+IF (${OPENMP_FOUND})
   LIST(APPEND CERES_LIBRARY_DEPENDENCIES gomp)
-ENDIF (OPENMP_FOUND)
+ENDIF (${OPENMP_FOUND})
 
-IF (PROTOBUF_FOUND)
+IF (${PROTOBUF_FOUND})
   LIST(APPEND CERES_LIBRARY_DEPENDENCIES ${PROTOBUF_LIBRARY})
-ENDIF (PROTOBUF_FOUND)
+ENDIF (${PROTOBUF_FOUND})
 
 TARGET_LINK_LIBRARIES(ceres ${CERES_LIBRARY_DEPENDENCIES})
 
-IF (BUILD_TESTING)
+IF (${BUILD_TESTING})
   ADD_LIBRARY(gtest gmock_gtest_all.cc gmock_main.cc)
   ADD_LIBRARY(test_util test_util.cc)
   TARGET_LINK_LIBRARIES(gtest ${GFLAGS_LIB} ${GLOG_LIB})
@@ -203,7 +203,7 @@
   ENDIF (GFLAGS)
 
   # Large end to end test for the entire solver.
-  IF (GFLAGS)
+  IF (${GFLAGS})
     CERES_TEST(system)
-  ENDIF (GFLAGS)
-ENDIF (BUILD_TESTING)
+  ENDIF (${GFLAGS})
+ENDIF (${BUILD_TESTING})