The test "complex" sets the variable CMAKE_BACKWARDS_COMPATIBILITY
to 1.4. When that variable is set, configure_file does not default
to IMMEDIATE mode processing. And so, the output file likely does
not exist yet by the time the next line in the CMakeLists.txt file
is processed. When that next line is "try_compile" on that file,
this is a problem.
Fix the problem by explicitly using IMMEDIATE in the configure_file
call.
This problem was quite mysterious, as it only showed up on the
"complex" test, when the previous commit introduced a CheckSymbolExists
call into the FindThreads module. Which is not even explicitly included
in the "complex" test... FindThreads gets included indirectly only
as a side effect of setting CMAKE_BACKWARDS_COMPATIBILITY to 1.4 and
even then it's included indirectly by auto-inclusion of
CMakeBackwardCompatibilityC.cmake...
Wow. Just wow.
The check works for macros, functions, and variables, but not for types
or enumeration values. Clearly describe the behavior of the check with
respect to each symbol type.
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.
For example:
CHECK_HEADER_EXISTS("type.h" HAVE_TYPE_H)
is:
CHECK_SYMBOL_EXISTS(main "type.h" HAVE_TYPE_H)
CHECK_LIBRARY_EXISTS("nsl" gethostname HAVE_LIBNSL)
would be
SET(CMAKE_REQUIRED_LIBRARIES "nsl")
CHECK_SYMBOL_EXISTS(gethostname "netdb.h" HAVE_LIBNSL)
...