Merge pull request #462 from borglab/feature/cmake-even-print
Consistent width printing of CMake flagsrelease/4.3a0
						commit
						2f0e76fab3
					
				
							
								
								
									
										104
									
								
								CMakeLists.txt
								
								
								
								
							
							
						
						
									
										104
									
								
								CMakeLists.txt
								
								
								
								
							|  | @ -509,104 +509,104 @@ set(CPACK_DEBIAN_PACKAGE_DEPENDS "libboost-dev (>= 1.43)") #Example: "libc6 (>= | |||
| # Print configuration variables | ||||
| message(STATUS "===============================================================") | ||||
| message(STATUS "================  Configuration Options  ======================") | ||||
| message(STATUS "  CMAKE_CXX_COMPILER_ID type     : ${CMAKE_CXX_COMPILER_ID}") | ||||
| message(STATUS "  CMAKE_CXX_COMPILER_VERSION     : ${CMAKE_CXX_COMPILER_VERSION}") | ||||
| message(STATUS "  CMake version                  : ${CMAKE_VERSION}") | ||||
| message(STATUS "  CMake generator                : ${CMAKE_GENERATOR}") | ||||
| message(STATUS "  CMake build tool               : ${CMAKE_BUILD_TOOL}") | ||||
| print_config("CMAKE_CXX_COMPILER_ID type" "${CMAKE_CXX_COMPILER_ID}") | ||||
| print_config("CMAKE_CXX_COMPILER_VERSION" "${CMAKE_CXX_COMPILER_VERSION}") | ||||
| print_config("CMake version"    "${CMAKE_VERSION}") | ||||
| print_config("CMake generator"  "${CMAKE_GENERATOR}") | ||||
| print_config("CMake build tool" "${CMAKE_BUILD_TOOL}") | ||||
| message(STATUS "Build flags                                               ") | ||||
| print_config_flag(${GTSAM_BUILD_TESTS}                 "Build Tests                    ") | ||||
| print_config_flag(${GTSAM_BUILD_EXAMPLES_ALWAYS}       "Build examples with 'make all' ") | ||||
| print_config_flag(${GTSAM_BUILD_TIMING_ALWAYS}         "Build timing scripts with 'make all'") | ||||
| print_enabled_config(${GTSAM_BUILD_TESTS}                 "Build Tests") | ||||
| print_enabled_config(${GTSAM_BUILD_EXAMPLES_ALWAYS}       "Build examples with 'make all'") | ||||
| print_enabled_config(${GTSAM_BUILD_TIMING_ALWAYS}         "Build timing scripts with 'make all'") | ||||
| if (DOXYGEN_FOUND) | ||||
|     print_config_flag(${GTSAM_BUILD_DOCS}              "Build Docs                     ") | ||||
|     print_enabled_config(${GTSAM_BUILD_DOCS}              "Build Docs") | ||||
| endif() | ||||
| print_config_flag(${BUILD_SHARED_LIBS}                 "Build shared GTSAM libraries   ") | ||||
| print_config_flag(${GTSAM_BUILD_TYPE_POSTFIXES}        "Put build type in library name ") | ||||
| print_enabled_config(${BUILD_SHARED_LIBS}                 "Build shared GTSAM libraries") | ||||
| print_enabled_config(${GTSAM_BUILD_TYPE_POSTFIXES}        "Put build type in library name") | ||||
| if(GTSAM_UNSTABLE_AVAILABLE) | ||||
|     print_config_flag(${GTSAM_BUILD_UNSTABLE}          "Build libgtsam_unstable        ") | ||||
|     print_enabled_config(${GTSAM_BUILD_UNSTABLE}          "Build libgtsam_unstable") | ||||
| endif() | ||||
| 
 | ||||
| if(NOT MSVC AND NOT XCODE_VERSION) | ||||
|     print_config_flag(${GTSAM_BUILD_WITH_MARCH_NATIVE}     "Build for native architecture  ") | ||||
|     message(STATUS "  Build type                     : ${CMAKE_BUILD_TYPE}") | ||||
|     message(STATUS "  C compilation flags            : ${CMAKE_C_FLAGS} ${CMAKE_C_FLAGS_${CMAKE_BUILD_TYPE_UPPER}}") | ||||
|     message(STATUS "  C++ compilation flags          : ${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_${CMAKE_BUILD_TYPE_UPPER}}") | ||||
|     print_enabled_config(${GTSAM_BUILD_WITH_MARCH_NATIVE}     "Build for native architecture  ") | ||||
|     print_config("Build type" "${CMAKE_BUILD_TYPE}") | ||||
|     print_config("C compilation flags" "${CMAKE_C_FLAGS} ${CMAKE_C_FLAGS_${CMAKE_BUILD_TYPE_UPPER}}") | ||||
|     print_config("C++ compilation flags" "${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_${CMAKE_BUILD_TYPE_UPPER}}") | ||||
| endif() | ||||
| 
 | ||||
| print_build_options_for_target(gtsam) | ||||
| 
 | ||||
| message(STATUS "  Use System Eigen                : ${GTSAM_USE_SYSTEM_EIGEN} (Using version: ${GTSAM_EIGEN_VERSION})") | ||||
| print_config("Use System Eigen" "${GTSAM_USE_SYSTEM_EIGEN} (Using version: ${GTSAM_EIGEN_VERSION})") | ||||
| 
 | ||||
| if(GTSAM_USE_TBB) | ||||
| 	message(STATUS "  Use Intel TBB                   : Yes") | ||||
|     print_config("Use Intel TBB" "Yes") | ||||
| elseif(TBB_FOUND) | ||||
| 	message(STATUS "  Use Intel TBB                   : TBB found but GTSAM_WITH_TBB is disabled") | ||||
|     print_config("Use Intel TBB" "TBB found but GTSAM_WITH_TBB is disabled") | ||||
| else() | ||||
| 	message(STATUS "  Use Intel TBB                   : TBB not found") | ||||
|     print_config("Use Intel TBB" "TBB not found") | ||||
| endif() | ||||
| if(GTSAM_USE_EIGEN_MKL) | ||||
| 	message(STATUS "  Eigen will use MKL              : Yes") | ||||
|     print_config("Eigen will use MKL" "Yes") | ||||
| elseif(MKL_FOUND) | ||||
| 	message(STATUS "  Eigen will use MKL              : MKL found but GTSAM_WITH_EIGEN_MKL is disabled") | ||||
|     print_config("Eigen will use MKL" "MKL found but GTSAM_WITH_EIGEN_MKL is disabled") | ||||
| else() | ||||
| 	message(STATUS "  Eigen will use MKL              : MKL not found") | ||||
|     print_config("Eigen will use MKL" "MKL not found") | ||||
| endif() | ||||
| if(GTSAM_USE_EIGEN_MKL_OPENMP) | ||||
| 	message(STATUS "  Eigen will use MKL and OpenMP   : Yes") | ||||
|     print_config("Eigen will use MKL and OpenMP" "Yes") | ||||
| elseif(OPENMP_FOUND AND NOT GTSAM_WITH_EIGEN_MKL) | ||||
| 	message(STATUS "  Eigen will use MKL and OpenMP   : OpenMP found but GTSAM_WITH_EIGEN_MKL is disabled") | ||||
|     print_config("Eigen will use MKL and OpenMP" "OpenMP found but GTSAM_WITH_EIGEN_MKL is disabled") | ||||
| elseif(OPENMP_FOUND AND NOT MKL_FOUND) | ||||
| 	message(STATUS "  Eigen will use MKL and OpenMP   : OpenMP found but MKL not found") | ||||
|     print_config("Eigen will use MKL and OpenMP" "OpenMP found but MKL not found") | ||||
| elseif(OPENMP_FOUND) | ||||
| 	message(STATUS "  Eigen will use MKL and OpenMP   : OpenMP found but GTSAM_WITH_EIGEN_MKL_OPENMP is disabled") | ||||
|     print_config("Eigen will use MKL and OpenMP" "OpenMP found but GTSAM_WITH_EIGEN_MKL_OPENMP is disabled") | ||||
| else() | ||||
| 	message(STATUS "  Eigen will use MKL and OpenMP   : OpenMP not found") | ||||
|     print_config("Eigen will use MKL and OpenMP" "OpenMP not found") | ||||
| endif() | ||||
| message(STATUS "  Default allocator               : ${GTSAM_DEFAULT_ALLOCATOR}") | ||||
| print_config("Default allocator" "${GTSAM_DEFAULT_ALLOCATOR}") | ||||
| 
 | ||||
| if(GTSAM_THROW_CHEIRALITY_EXCEPTION) | ||||
| 	message(STATUS "  Cheirality exceptions enabled   : YES") | ||||
|     print_config("Cheirality exceptions enabled" "YES") | ||||
| else() | ||||
| 	message(STATUS "  Cheirality exceptions enabled   : NO") | ||||
|     print_config("Cheirality exceptions enabled" "NO") | ||||
| endif() | ||||
| 
 | ||||
| if(NOT MSVC AND NOT XCODE_VERSION) | ||||
| 	if(CCACHE_FOUND AND GTSAM_BUILD_WITH_CCACHE) | ||||
| 		message(STATUS "  Build with ccache               : Yes") | ||||
|         print_config("Build with ccache" "Yes") | ||||
| 	elseif(CCACHE_FOUND) | ||||
| 		message(STATUS "  Build with ccache               : ccache found but GTSAM_BUILD_WITH_CCACHE is disabled") | ||||
|         print_config("Build with ccache" "ccache found but GTSAM_BUILD_WITH_CCACHE is disabled") | ||||
| 	else() | ||||
| 		message(STATUS "  Build with ccache               : No") | ||||
|         print_config("Build with ccache" "No") | ||||
| 	endif() | ||||
| endif() | ||||
| 
 | ||||
| message(STATUS "Packaging flags                                               ") | ||||
| message(STATUS "  CPack Source Generator          : ${CPACK_SOURCE_GENERATOR}") | ||||
| message(STATUS "  CPack Generator                 : ${CPACK_GENERATOR}") | ||||
| message(STATUS "Packaging flags") | ||||
| print_config("CPack Source Generator" "${CPACK_SOURCE_GENERATOR}") | ||||
| print_config("CPack Generator" "${CPACK_GENERATOR}") | ||||
| 
 | ||||
| message(STATUS "GTSAM flags                                               ") | ||||
| print_config_flag(${GTSAM_USE_QUATERNIONS}             "Quaternions as default Rot3     ") | ||||
| print_config_flag(${GTSAM_ENABLE_CONSISTENCY_CHECKS}   "Runtime consistency checking    ") | ||||
| print_config_flag(${GTSAM_ROT3_EXPMAP}                 "Rot3 retract is full ExpMap     ") | ||||
| print_config_flag(${GTSAM_POSE3_EXPMAP}                "Pose3 retract is full ExpMap    ") | ||||
| print_config_flag(${GTSAM_ALLOW_DEPRECATED_SINCE_V41}  "Allow features deprecated in GTSAM 4.1") | ||||
| print_config_flag(${GTSAM_TYPEDEF_POINTS_TO_VECTORS}   "Point3 is typedef to Vector3    ") | ||||
| print_config_flag(${GTSAM_SUPPORT_NESTED_DISSECTION}   "Metis-based Nested Dissection   ") | ||||
| print_config_flag(${GTSAM_TANGENT_PREINTEGRATION}      "Use tangent-space preintegration") | ||||
| print_config_flag(${GTSAM_BUILD_WRAP}                  "Build Wrap                      ") | ||||
| print_enabled_config(${GTSAM_USE_QUATERNIONS}             "Quaternions as default Rot3     ") | ||||
| print_enabled_config(${GTSAM_ENABLE_CONSISTENCY_CHECKS}   "Runtime consistency checking    ") | ||||
| print_enabled_config(${GTSAM_ROT3_EXPMAP}                 "Rot3 retract is full ExpMap     ") | ||||
| print_enabled_config(${GTSAM_POSE3_EXPMAP}                "Pose3 retract is full ExpMap    ") | ||||
| print_enabled_config(${GTSAM_ALLOW_DEPRECATED_SINCE_V41}  "Allow features deprecated in GTSAM 4.1") | ||||
| print_enabled_config(${GTSAM_TYPEDEF_POINTS_TO_VECTORS}   "Point3 is typedef to Vector3    ") | ||||
| print_enabled_config(${GTSAM_SUPPORT_NESTED_DISSECTION}   "Metis-based Nested Dissection   ") | ||||
| print_enabled_config(${GTSAM_TANGENT_PREINTEGRATION}      "Use tangent-space preintegration") | ||||
| print_enabled_config(${GTSAM_BUILD_WRAP}                  "Build Wrap                      ") | ||||
| 
 | ||||
| message(STATUS "MATLAB toolbox flags                                      ") | ||||
| print_config_flag(${GTSAM_INSTALL_MATLAB_TOOLBOX}      "Install MATLAB toolbox          ") | ||||
| message(STATUS "MATLAB toolbox flags") | ||||
| print_enabled_config(${GTSAM_INSTALL_MATLAB_TOOLBOX}      "Install MATLAB toolbox          ") | ||||
| if (${GTSAM_INSTALL_MATLAB_TOOLBOX}) | ||||
|     message(STATUS "  MATLAB root                     : ${MATLAB_ROOT}") | ||||
|     message(STATUS "  MEX binary                      : ${MEX_COMMAND}") | ||||
|     print_config("MATLAB root" "${MATLAB_ROOT}") | ||||
|     print_config("MEX binary" "${MEX_COMMAND}") | ||||
| endif() | ||||
| 
 | ||||
| message(STATUS "Cython toolbox flags                                      ") | ||||
| print_config_flag(${GTSAM_INSTALL_CYTHON_TOOLBOX}      "Install Cython toolbox          ") | ||||
| print_enabled_config(${GTSAM_INSTALL_CYTHON_TOOLBOX}      "Install Cython toolbox          ") | ||||
| if(GTSAM_INSTALL_CYTHON_TOOLBOX) | ||||
| 	message(STATUS "  Python version                  : ${GTSAM_PYTHON_VERSION}") | ||||
|     print_config("Python version" "${GTSAM_PYTHON_VERSION}") | ||||
| endif() | ||||
| message(STATUS "===============================================================") | ||||
| 
 | ||||
|  |  | |||
|  | @ -1,14 +1,3 @@ | |||
| # print configuration variables | ||||
| # Usage: | ||||
| #print_config_flag(${GTSAM_BUILD_TESTS} "Build Tests                ") | ||||
| function(print_config_flag flag msg) | ||||
|     if (flag) | ||||
|         message(STATUS "  ${msg}: Enabled") | ||||
|     else () | ||||
|         message(STATUS "  ${msg}: Disabled") | ||||
|     endif () | ||||
| endfunction() | ||||
| 
 | ||||
| # Based on https://github.com/jimbraun/XCDF/blob/master/cmake/CMakePadString.cmake | ||||
| function(string_pad RESULT_NAME DESIRED_LENGTH VALUE) | ||||
|     string(LENGTH "${VALUE}" VALUE_LENGTH) | ||||
|  | @ -26,6 +15,27 @@ endfunction() | |||
| set(GTSAM_PRINT_SUMMARY_PADDING_LENGTH 50 CACHE STRING "Padding of cmake summary report lines after configuring.") | ||||
| mark_as_advanced(GTSAM_PRINT_SUMMARY_PADDING_LENGTH) | ||||
| 
 | ||||
| # print configuration variables with automatic padding | ||||
| # Usage: | ||||
| #   print_config(${GTSAM_BUILD_TESTS} "Build Tests") | ||||
| function(print_config config msg) | ||||
|   string_pad(padded_config ${GTSAM_PRINT_SUMMARY_PADDING_LENGTH} " ${config}") | ||||
|   message(STATUS "${padded_config}: ${msg}") | ||||
| endfunction() | ||||
| 
 | ||||
| # print configuration variable with enabled/disabled value | ||||
| # Usage: | ||||
| #   print_enabled_config(${GTSAM_BUILD_TESTS} "Build Tests                ") | ||||
| function(print_enabled_config config msg) | ||||
|     string_pad(padded_msg ${GTSAM_PRINT_SUMMARY_PADDING_LENGTH} " ${msg}") | ||||
|     if (config) | ||||
|         message(STATUS "${padded_msg}: Enabled") | ||||
|     else () | ||||
|         message(STATUS "${padded_msg}: Disabled") | ||||
|     endif () | ||||
| endfunction() | ||||
| 
 | ||||
| 
 | ||||
| # Print "  var: ${var}" padding with spaces as needed | ||||
| function(print_padded variable_name) | ||||
|   string_pad(padded_prop ${GTSAM_PRINT_SUMMARY_PADDING_LENGTH} " ${variable_name}") | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue