Updated depend.cmake to follow CMake IF convention.
Change-Id: I1e86cf134d3f40852033ae73f36d9143b389a918
diff --git a/CMakeLists.txt b/CMakeLists.txt
index c3b536b..348f719 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -29,6 +29,7 @@
# Author: keir@google.com (Keir Mierle)
CMAKE_MINIMUM_REQUIRED(VERSION 2.8.0)
+CMAKE_POLICY(VERSION 2.8)
IF (COMMAND cmake_policy)
CMAKE_POLICY(SET CMP0003 NEW)
@@ -273,12 +274,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}")
@@ -287,7 +288,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}")
@@ -310,22 +311,22 @@
# built with SuiteSparse support. -DSUITESPARSE=ON/OFF can be used to
# enable/disable SuiteSparse explicitly.
IF (DEFINED SUITESPARSE)
- IF (${SUITESPARSE})
+ 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})
+ 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
@@ -353,22 +354,22 @@
ENDIF ((NOT DEFINED CXSPARSE) OR (DEFINED CXSPARSE AND CXSPARSE))
IF (DEFINED CXSPARSE)
- IF (${CXSPARSE})
+ IF (CXSPARSE)
IF (NOT ${CXSPARSE_FOUND})
MESSAGE(FATAL_ERROR "-- CXSparse not found.")
ENDIF (NOT ${CXSPARSE_FOUND})
- ELSE (${CXSPARSE})
+ 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
@@ -376,7 +377,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})
@@ -392,10 +393,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
IF (NOT ${BUILD_ANDROID})
@@ -469,11 +470,11 @@
"Enable threaded solving in Ceres (requires OpenMP)"
ON)
-IF (${OPENMP})
+IF (OPENMP)
FIND_PACKAGE(OpenMP)
-ENDIF (${OPENMP})
+ENDIF (OPENMP)
-IF(${OPENMP_FOUND})
+IF (OPENMP_FOUND)
MESSAGE("-- Found OpenMP.")
ADD_DEFINITIONS(-DCERES_USE_OPENMP)
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
@@ -488,43 +489,43 @@
ADD_DEFINITIONS(-DCERES_HAVE_PTHREAD)
ADD_DEFINITIONS(-DCERES_HAVE_RWLOCK)
ENDIF ("${UNIX}")
-ELSE(${OPENMP_FOUND})
+ELSE (OPENMP_FOUND)
MESSAGE("-- Can't find OpenMP. Disabling multithreading.")
ADD_DEFINITIONS(-DCERES_NO_THREADS)
-ENDIF(${OPENMP_FOUND})
+ENDIF (OPENMP_FOUND)
# Disable threads in mutex.h. Someday, after there is OpenMP support in
# Android, this can get removed. Also turn on a workaround for an NDK bug.
-IF (${BUILD_ANDROID})
+IF (BUILD_ANDROID)
ADD_DEFINITIONS(-DCERES_NO_THREADS)
ADD_DEFINITIONS(-DCERES_WORK_AROUND_ANDROID_NDK_COMPILER_BUG)
-ENDIF (${BUILD_ANDROID})
+ENDIF (BUILD_ANDROID)
# 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_NO_PROTOCOL_BUFFERS)
- ENDIF (${PROTOBUF_FOUND})
-ELSE (${PROTOBUF})
+ ENDIF (PROTOBUF_FOUND)
+ELSE (PROTOBUF)
ADD_DEFINITIONS(-DCERES_NO_PROTOCOL_BUFFERS)
-ENDIF (${PROTOBUF})
+ENDIF (PROTOBUF)
OPTION(DISABLE_TR1
"Don't use TR1. This replaces some hash tables with sets. Slower."
OFF)
-IF (${DISABLE_TR1})
+IF (DISABLE_TR1)
MESSAGE("-- Replacing unordered_map/set with map/set (warning: slower!)")
ADD_DEFINITIONS(-DCERES_NO_TR1)
-ELSE (${DISABLE_TR1})
+ELSE (DISABLE_TR1)
MESSAGE("-- Using normal TR1 unordered_map/set")
# Use the std namespace for the hash<> and related templates. This may vary by
# system.
@@ -537,7 +538,7 @@
ADD_DEFINITIONS("\"-DCERES_HASH_NAMESPACE_START=namespace std { namespace tr1 {\"")
ADD_DEFINITIONS("\"-DCERES_HASH_NAMESPACE_END=}}\"")
ENDIF (MSVC)
-ENDIF (${DISABLE_TR1})
+ENDIF (DISABLE_TR1)
INCLUDE_DIRECTORIES(
include
@@ -553,27 +554,27 @@
FILE(GLOB CERES_PUBLIC_INTERNAL_HDRS ${CMAKE_SOURCE_DIR}/include/ceres/internal/*.h)
INSTALL(FILES ${CERES_PUBLIC_INTERNAL_HDRS} DESTINATION include/ceres/internal)
-IF (${SUITESPARSE})
+IF (SUITESPARSE)
INCLUDE_DIRECTORIES(${AMD_INCLUDE})
INCLUDE_DIRECTORIES(${CAMD_INCLUDE})
INCLUDE_DIRECTORIES(${COLAMD_INCLUDE})
INCLUDE_DIRECTORIES(${CCOLAMD_INCLUDE})
INCLUDE_DIRECTORIES(${CHOLMOD_INCLUDE})
- IF (${SUITESPARSE_CONFIG_FOUND})
+ IF (SUITESPARSE_CONFIG_FOUND)
INCLUDE_DIRECTORIES(${SUITESPARSE_CONFIG_INCLUDE})
- ENDIF (${SUITESPARSE_CONFIG_FOUND})
- IF (${UFCONFIG_FOUND})
+ ENDIF (SUITESPARSE_CONFIG_FOUND)
+ IF (UFCONFIG_FOUND)
INCLUDE_DIRECTORIES(${UFCONFIG_INCLUDE})
- ENDIF (${UFCONFIG_FOUND})
-ENDIF(${SUITESPARSE})
+ ENDIF (UFCONFIG_FOUND)
+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.
@@ -599,10 +600,10 @@
IF (CMAKE_BUILD_TYPE STREQUAL "Release")
IF (CMAKE_COMPILER_IS_GNUCXX)
- IF (${BUILD_ANDROID})
+ IF (BUILD_ANDROID)
# TODO(keir): Figure out what flags should go here to make an optimized
# native ARM binary for Android.
- ELSE (${BUILD_ANDROID})
+ ELSE (BUILD_ANDROID)
# Linux
IF (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
SET (CERES_CXX_FLAGS "${CERES_CXX_FLAGS} -march=native -mtune=native")
@@ -611,7 +612,7 @@
IF (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
SET (CERES_CXX_FLAGS "${CERES_CXX_FLAGS} -fast -msse3")
ENDIF (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
- ENDIF (${BUILD_ANDROID})
+ ENDIF (BUILD_ANDROID)
ENDIF (CMAKE_COMPILER_IS_GNUCXX)
IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
# Use of -O4 requires use of gold linker & LLVM-gold plugin, which might
@@ -622,10 +623,10 @@
IF (HAVE_LTO_SUPPORT)
MESSAGE(STATUS "Enabling link-time optimization (-O4)")
SET(CERES_CXX_FLAGS "${CERES_CXX_FLAGS} -O4")
- ELSE()
+ ELSE ()
MESSAGE(STATUS "Compiler/linker does not support link-time optimization (-O4), disabling.")
ENDIF (HAVE_LTO_SUPPORT)
- ENDIF()
+ ENDIF ()
ENDIF (CMAKE_BUILD_TYPE STREQUAL "Release")
SET (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} ${CERES_CXX_FLAGS}")
@@ -663,10 +664,10 @@
ENDIF (MSVC)
# GCC is not strict enough by default, so enable most of the warnings.
-IF ("${UNIX}")
+IF (UNIX)
SET(CMAKE_CXX_FLAGS
"${CMAKE_CXX_FLAGS} -Werror -Wall -Wextra -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter")
-ENDIF ("${UNIX}")
+ENDIF (UNIX)
# Use a larger inlining threshold for Clang, since it hobbles Eigen,
# resulting in an unreasonably slow version of the blas routines. The
@@ -675,7 +676,7 @@
IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
SET(CMAKE_CXX_FLAGS
"${CMAKE_CXX_FLAGS} -Qunused-arguments -mllvm -inline-threshold=600 -Wno-return-type-c-linkage")
-ENDIF()
+ENDIF ()
ADD_SUBDIRECTORY(internal/ceres)
@@ -683,7 +684,7 @@
"Build User's Guide (html)"
OFF)
-IF (${BUILD_DOCUMENTATION})
+IF (BUILD_DOCUMENTATION)
MESSAGE("-- Documentation building is enabled")
# Make CMake aware of the cmake folder, in order to find 'FindSphinx.cmake'
@@ -692,16 +693,16 @@
# Generate the User's Guide (html).
# The corresponding target is UserGuide, but is included in ALL.
ADD_SUBDIRECTORY(docs)
-ENDIF (${BUILD_DOCUMENTATION})
+ENDIF (BUILD_DOCUMENTATION)
OPTION(BUILD_EXAMPLES "Build examples" ON)
-IF (${BUILD_EXAMPLES})
+IF (BUILD_EXAMPLES)
MESSAGE("-- Build the examples.")
ADD_SUBDIRECTORY(examples)
-ELSE (${BUILD_EXAMPLES})
+ELSE (BUILD_EXAMPLES)
MESSAGE("-- Do not build any example.")
-ENDIF (${BUILD_EXAMPLES})
+ENDIF (BUILD_EXAMPLES)
# Add an uninstall target to remove all installed files.
CONFIGURE_FILE("${CMAKE_SOURCE_DIR}/cmake/uninstall.cmake.in"
diff --git a/cmake/depend.cmake b/cmake/depend.cmake
index 8796339..275a440 100644
--- a/cmake/depend.cmake
+++ b/cmake/depend.cmake
@@ -52,7 +52,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})
@@ -68,7 +68,7 @@
"-DGFLAGS_INCLUDE=...")
ENDIF (NOT EXISTS ${GFLAGS_INCLUDE})
MESSAGE("-- Found Google Flags header in: ${GFLAGS_INCLUDE}")
-ENDIF (${GFLAGS})
+ENDIF (GFLAGS)
# Google Logging
MESSAGE("-- Check for Google Log")
diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt
index dfe5589..c0b4ec0 100644
--- a/examples/CMakeLists.txt
+++ b/examples/CMakeLists.txt
@@ -54,7 +54,7 @@
simple_bundle_adjuster.cc)
TARGET_LINK_LIBRARIES(simple_bundle_adjuster ceres)
-IF (${GFLAGS})
+IF (GFLAGS)
ADD_EXECUTABLE(nist nist.cc)
TARGET_LINK_LIBRARIES(nist ceres)
@@ -70,5 +70,5 @@
denoising.cc
fields_of_experts.cc)
TARGET_LINK_LIBRARIES(denoising ceres)
-ENDIF (${GFLAGS})
+ENDIF (GFLAGS)
diff --git a/internal/ceres/CMakeLists.txt b/internal/ceres/CMakeLists.txt
index df67f68..45df9be 100644
--- a/internal/ceres/CMakeLists.txt
+++ b/internal/ceres/CMakeLists.txt
@@ -114,25 +114,25 @@
NOT EXISTS "/etc/debian_version" AND
NOT EXISTS "/etc/arch-release")
SET(LIB_SUFFIX "64")
-ENDIF()
+ENDIF ()
-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. The build is much faster this way.
FILE(GLOB CERES_INTERNAL_SCHUR_FILES generated/schur_eliminator_d_d_d.cc)
-ENDIF (${SCHUR_SPECIALIZATIONS})
+ENDIF (SCHUR_SPECIALIZATIONS)
# For Android, use the internal Glog implementation.
-IF (${BUILD_ANDROID})
+IF (BUILD_ANDROID)
ADD_LIBRARY(miniglog STATIC
miniglog/glog/logging.cc)
@@ -145,15 +145,15 @@
RUNTIME DESTINATION bin
LIBRARY DESTINATION lib${LIB_SUFFIX}
ARCHIVE DESTINATION lib${LIB_SUFFIX})
-ENDIF (${BUILD_ANDROID})
+ENDIF (BUILD_ANDROID)
SET(CERES_LIBRARY_DEPENDENCIES ${GLOG_LIB})
-IF (${GFLAGS})
+IF (GFLAGS)
LIST(APPEND CERES_LIBRARY_DEPENDENCIES ${GFLAGS_LIB})
-ENDIF (${GFLAGS})
+ENDIF (GFLAGS)
-IF (${SUITESPARSE_FOUND})
+IF (SUITESPARSE_FOUND)
LIST(APPEND CERES_LIBRARY_DEPENDENCIES ${CHOLMOD_LIB})
LIST(APPEND CERES_LIBRARY_DEPENDENCIES ${CCOLAMD_LIB})
LIST(APPEND CERES_LIBRARY_DEPENDENCIES ${CAMD_LIB})
@@ -172,21 +172,21 @@
IF (EXISTS ${BLAS_LIB})
LIST(APPEND CERES_LIBRARY_DEPENDENCIES ${BLAS_LIB})
ENDIF (EXISTS ${BLAS_LIB})
-ENDIF (${SUITESPARSE_FOUND})
+ENDIF (SUITESPARSE_FOUND)
-IF (${CXSPARSE_FOUND})
+IF (CXSPARSE_FOUND)
LIST(APPEND CERES_LIBRARY_DEPENDENCIES ${CXSPARSE_LIB})
-ENDIF (${CXSPARSE_FOUND})
+ENDIF (CXSPARSE_FOUND)
-IF (${OPENMP_FOUND})
+IF (OPENMP_FOUND)
IF (NOT MSVC)
LIST(APPEND CERES_LIBRARY_DEPENDENCIES gomp)
ENDIF (NOT MSVC)
-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)
SET(CERES_LIBRARY_SOURCE
${PROTO_SRCS}
@@ -206,7 +206,7 @@
# Don't build a DLL on MSVC. Supporting Ceres as a DLL on Windows involves
# nontrivial changes that we haven't made yet.
-IF (NOT MSVC AND NOT ${BUILD_ANDROID})
+IF (NOT MSVC AND NOT BUILD_ANDROID)
ADD_LIBRARY(ceres_shared SHARED ${CERES_LIBRARY_SOURCE})
TARGET_LINK_LIBRARIES(ceres_shared ${CERES_LIBRARY_DEPENDENCIES})
SET_TARGET_PROPERTIES(ceres_shared PROPERTIES
@@ -219,9 +219,9 @@
LIBRARY DESTINATION lib${LIB_SUFFIX}
ARCHIVE DESTINATION lib${LIB_SUFFIX})
-ENDIF (NOT MSVC AND NOT ${BUILD_ANDROID})
+ENDIF (NOT MSVC AND NOT BUILD_ANDROID)
-IF (${BUILD_TESTING} AND ${GFLAGS})
+IF (BUILD_TESTING AND GFLAGS)
ADD_LIBRARY(gtest gmock_gtest_all.cc gmock_main.cc)
ADD_LIBRARY(test_util
evaluator_test_utils.cc
@@ -287,9 +287,9 @@
# TODO(sameeragarwal): This test should ultimately be made
# independent of SuiteSparse.
- IF (${SUITESPARSE_FOUND})
+ IF (SUITESPARSE_FOUND)
CERES_TEST(compressed_col_sparse_matrix_utils)
- ENDIF (${SUITESPARSE_FOUND})
+ ENDIF (SUITESPARSE_FOUND)
CERES_TEST(symmetric_linear_solver)
CERES_TEST(triplet_sparse_matrix)
@@ -300,4 +300,4 @@
# Put the large end to end test last.
CERES_TEST(system)
-ENDIF (${BUILD_TESTING} AND ${GFLAGS})
+ENDIF (BUILD_TESTING AND GFLAGS)