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})