summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2012-04-09 19:57:02 (GMT)
committerBrad King <brad.king@kitware.com>2012-04-09 19:57:02 (GMT)
commit5adb6b7a34fc67ed49d8f70c1b5b57ca808ef2c4 (patch)
tree713c5622dbcfb961178605c049fbd309c0e2a1b6
parent44d007b6593eeea2c2c47a4431603ed08bc22280 (diff)
downloadCMake-5adb6b7a34fc67ed49d8f70c1b5b57ca808ef2c4.zip
CMake-5adb6b7a34fc67ed49d8f70c1b5b57ca808ef2c4.tar.gz
CMake-5adb6b7a34fc67ed49d8f70c1b5b57ca808ef2c4.tar.bz2
CheckIncludeFiles: Shorten check description message
Since commit 44d007b6 (CheckIncludeFiles: fix status output, 2012-02-01) check_include_files reports the list of files tested instead of the name of the variable storing the result. Some projects incrementally test and concatenate very long lists leading to long messages that do not provide much information. Users report confusion especially when the lines wrap. For lists of more than two files produce messages of the format Looing for N include files first.h, ..., last.h where N is the list length and "..." is literal. Leave the log file entries and cache entry description unchanged as they should have the full detail of the check performed.
-rw-r--r--Modules/CheckIncludeFiles.cmake18
1 files changed, 14 insertions, 4 deletions
diff --git a/Modules/CheckIncludeFiles.cmake b/Modules/CheckIncludeFiles.cmake
index 642d962..a94644e 100644
--- a/Modules/CheckIncludeFiles.cmake
+++ b/Modules/CheckIncludeFiles.cmake
@@ -13,7 +13,7 @@
# CMAKE_REQUIRED_INCLUDES = list of include directories
#=============================================================================
-# Copyright 2003-2009 Kitware, Inc.
+# Copyright 2003-2012 Kitware, Inc.
#
# Distributed under the OSI-approved BSD License (the "License");
# see accompanying file Copyright.txt for details.
@@ -44,7 +44,17 @@ MACRO(CHECK_INCLUDE_FILES INCLUDE VARIABLE)
CONFIGURE_FILE("${CMAKE_ROOT}/Modules/CMakeConfigurableFile.in"
"${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/CheckIncludeFiles.c" @ONLY IMMEDIATE)
- MESSAGE(STATUS "Looking for include files ${INCLUDE}")
+ SET(_INCLUDE ${INCLUDE}) # remove empty elements
+ IF("${_INCLUDE}" MATCHES "^([^;]+);.+;([^;]+)$")
+ LIST(LENGTH _INCLUDE _INCLUDE_LEN)
+ SET(_description "${_INCLUDE_LEN} include files ${CMAKE_MATCH_1}, ..., ${CMAKE_MATCH_2}")
+ ELSEIF("${_INCLUDE}" MATCHES "^([^;]+);([^;]+)$")
+ SET(_description "include files ${CMAKE_MATCH_1}, ${CMAKE_MATCH_2}")
+ ELSE()
+ SET(_description "include file ${_INCLUDE}")
+ ENDIF()
+
+ MESSAGE(STATUS "Looking for ${_description}")
TRY_COMPILE(${VARIABLE}
${CMAKE_BINARY_DIR}
${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/CheckIncludeFiles.c
@@ -54,14 +64,14 @@ MACRO(CHECK_INCLUDE_FILES INCLUDE VARIABLE)
"${CHECK_INCLUDE_FILES_INCLUDE_DIRS}"
OUTPUT_VARIABLE OUTPUT)
IF(${VARIABLE})
- MESSAGE(STATUS "Looking for include files ${INCLUDE} - found")
+ MESSAGE(STATUS "Looking for ${_description} - found")
SET(${VARIABLE} 1 CACHE INTERNAL "Have include ${INCLUDE}")
FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
"Determining if files ${INCLUDE} "
"exist passed with the following output:\n"
"${OUTPUT}\n\n")
ELSE(${VARIABLE})
- MESSAGE(STATUS "Looking for include files ${INCLUDE} - not found.")
+ MESSAGE(STATUS "Looking for ${_description} - not found.")
SET(${VARIABLE} "" CACHE INTERNAL "Have includes ${INCLUDE}")
FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
"Determining if files ${INCLUDE} "