Commit Graph

29 Commits

Author SHA1 Message Date
Brad King 4f2fcce4b9 Check*: Allow result variables to contain regex special characters (#14923)
Prior to the existence of the if(DEFINED) condition, many of our Check
modules implemented the condition with a hack that takes advantage of
the auto-dereference behavior of the if() command to detect if a
variable is defined.  The hack has the form:

 if("${VAR} MATCHES "^${VAR}$")

where "${VAR}" is a macro argument reference.  However, this does not
work when the variable named in the macro argument contains characters
that have special meaning in regular expressions, such as '+'.  Run the
command

 git grep -E 'if\("\$\{.*\}" MATCHES "\^\$\{.*\}\$"\)' -- Modules/Check*

to identify lines with this problem.  Use if(NOT DEFINED) instead.
2014-07-31 09:48:41 -04:00
Clinton Stimpson 4c0cc9ab91 Check*.cmake : Add CMAKE_REQUIRED_QUIET flag.
Setting this flag can silence messages from the Check*.cmake modules.
This can be used by Find*.cmake modules when they are in silent mode.
2014-03-29 20:14:23 -06:00
Kitware Robot f051814ed0 Convert builtin help to reStructuredText source files
Run the convert-help.bash script to convert documentation:

 ./convert-help.bash "/path/to/CMake-build/bin"

Then remove it.
2013-10-15 14:12:03 -04:00
Stephen Kelly 236133e79e Handle targets in the LINK_LIBRARIES of try_compile.
Imported targets are re-exported so that they can be used by the
try_compile generated code with target_link_libraries.

This makes the use of the cmake_expand_imported_targets macro
obsolete. The macro is not able to expand the generator expressions
which may appear in the IMPORTED_LINK_INTERFACE_LIBRARIES content.
Instead it just sees them as 'not a target'.
2013-02-22 08:35:39 -05:00
Kitware Robot 9db3116226 Remove CMake-language block-end command arguments
Ancient versions of CMake required else(), endif(), and similar block
termination commands to have arguments matching the command starting the
block.  This is no longer the preferred style.

Run the following shell code:

for c in else endif endforeach endfunction endmacro endwhile; do
    echo 's/\b'"$c"'\(\s*\)(.\+)/'"$c"'\1()/'
done >convert.sed &&
git ls-files -z -- bootstrap '*.cmake' '*.cmake.in' '*CMakeLists.txt' |
egrep -z -v '^(Utilities/cm|Source/kwsys/)' |
egrep -z -v 'Tests/CMakeTests/While-Endwhile-' |
xargs -0 sed -i -f convert.sed &&
rm convert.sed
2012-08-13 14:19:16 -04:00
Kitware Robot 77543bde41 Convert CMake-language commands to lower case
Ancient CMake versions required upper-case commands.  Later command
names became case-insensitive.  Now the preferred style is lower-case.

Run the following shell code:

cmake --help-command-list |
grep -v "cmake version" |
while read c; do
    echo 's/\b'"$(echo $c | tr '[:lower:]' '[:upper:]')"'\(\s*\)(/'"$c"'\1(/g'
done >convert.sed &&
git ls-files -z -- bootstrap '*.cmake' '*.cmake.in' '*CMakeLists.txt' |
egrep -z -v '^(Utilities/cm|Source/kwsys/)' |
xargs -0 sed -i -f convert.sed &&
rm convert.sed
2012-08-13 14:19:16 -04:00
Alex Neundorf 35c48e1270 Check*.cmake: Expand imported targets in CMAKE_REQUIRED_LIBRARIES
Add the function cmake_expand_imported_targets() to expand imported
targets in a list of libraries into their on-disk file names for a
particular configuration.  Adapt the implementation from KDE's
HANDLE_IMPORTED_TARGETS_IN_CMAKE_REQUIRED_LIBRARIES which has been in
use for over 2 years.  Call the function from all the Check*.cmake
macros to handle imported targets named in CMAKE_REQUIRED_LIBRARIES.

Alex
2012-02-21 15:38:15 -05:00
Brad King cabb6cd00e Document Check(C|CXX)SourceCompiles behavior more clearly (#11688)
Explicitly state up front that the macros try to link an executable and
that the source provided must define 'main'.
2011-01-14 07:36:59 -05:00
Todd Gamblin 2cde67a781 Modules: Fix spelling 'To distributed' -> 'To distribute' 2010-08-09 08:48:31 -04:00
Brad King 3a666595c9 Convert CMake non-find modules to BSD License
This adds copyright/license notification blocks CMake's non-find
modules.  Most of the modules had no notices at all.  Some had notices
referring to the BSD license already.  This commit normalizes existing
notices and adds missing notices.
2009-09-28 11:46:51 -04:00
Brad King ca76645ab7 Add FAIL_REGEX to CHECK_(C|CXX)_SOURCE_COMPILES
This teaches the CHECK_C_SOURCE_COMPILES and CHECK_CXX_SOURCE_COMPILES
macros to recognize a FAIL_REGEX option.  If they see the regular
expression in the output of the test compilation, the check fails.
2009-09-17 15:29:01 -04:00
Brad King 80af3ae35d Cleanup generic compiler check macro documentation
This commit improves formatting and style of the documentation for the
general-purpose compiler check macros:

  CHECK_C_COMPILER_FLAG
  CHECK_C_SOURCE_COMPILES
  CHECK_C_SOURCE_RUNS
  CHECK_CXX_COMPILER_FLAG
  CHECK_CXX_SOURCE_COMPILES
  CHECK_CXX_SOURCE_RUNS

This sytle is more consistent with CMake command documentation.
It also looks nicer in the generated documentation text files.
2009-09-17 15:28:51 -04:00
Alexander Neundorf 8d5b090188 STYLE: fix documentation: the second short description discarded the first
one, but the first one was the correct one (i.e. the one which mentioned
that CheckC[XX]SourceRuns.cmake also tries to run the executable)

Alex
2009-03-11 18:13:53 -04:00
Andy Cedilnik 4668f03484 BUG: Revert "Fix kwstyleSource/CTest/cmCTestBuildHandler.cxx" 2007-04-04 15:59:22 -04:00
Andy Cedilnik 71fc9f9321 COMP: Fix kwstyleSource/CTest/cmCTestBuildHandler.cxx 2007-04-04 13:06:13 -04:00
Alexander Neundorf d454231a0a STYLE: fix #3519 (incorrect comment)
Alex
2006-08-27 11:19:25 -04:00
Bill Hoffman 8b9d44d512 ENH: fixs for check compile stuff from Oswald B. 2006-08-21 10:10:28 -04:00
Bill Hoffman 61aa4afd1e ENH: add a crun macro and fix the output log for compile c 2006-08-03 13:41:21 -04:00
Bill Hoffman 612d2f667b ENH: fix for location of error log 2006-08-01 15:24:46 -04:00
Brad King ba539d9605 BUG: Make sure try-compile source ends in a newline. 2006-06-28 17:00:31 -04:00
Ken Martin 8e9a6beccc ENH: centralized locaiton of CMakeFiles setting 2006-06-14 12:28:32 -04:00
Andy Cedilnik f0e2563cc6 BUG: Use the extra definicions 2006-04-27 10:55:52 -04:00
Bill Hoffman 013f6d6b5f ENH: append to log files 2006-04-19 17:23:23 -04:00
Andy Cedilnik 36e2728431 ENH: Cleanup bootstrap even more 2006-03-22 11:15:35 -05:00
Brad King f0a1da00c1 ENH: Made Check* modules more consistent and well documented. Added CMAKE_REQUIRED_DEFINITIONS option. 2006-02-09 19:23:18 -05:00
Brad King c90b8d0537 ENH: Patch from Alexander Neundorf to improve behavior. 2006-02-09 13:14:57 -05:00
Ken Martin 4bdca3b404 ENH: put CmakeTmp into CMakeFiles 2006-01-12 13:49:32 -05:00
Bill Hoffman b7fa820118 ENH: add documentation support for modules 2005-12-14 13:51:08 -05:00
Andy Cedilnik e898324778 ENH: Add a test for C source file like AC_TRY_COMPILE 2005-07-31 23:02:22 -04:00