CMake Nightly Date Stamp
CMake Nightly Date Stamp
CMake Nightly Date Stamp
CMake Nightly Date Stamp
CMake Nightly Date Stamp
CMake Nightly Date Stamp
CMake Nightly Date Stamp
Windows: Search '/' prefix only when cross compiling (#10994)

Commit dac78148 (...makes the mingw cross compiler work out of the
box..., 2007-08-02) added to CMAKE_SYSTEM_PROGRAM_PATH and
CMAKE_SYSTEM_LIBRARY_PATH paths like "/bin" and "/lib" with no Windows
drive letter so that cross-compiling to Windows from Linux would search
these paths under CMAKE_FIND_ROOT_PATH.  Later commit 2a782880 (...use
CMAKE_SYSTEM_PREFIX_PATH when possible, 2008-01-16) generalized this
approach by instead adding "/" to CMAKE_SYSTEM_PREFIX_PATH.

Both commits assumed that the paths would never match anything on
Windows hosts without a drive letter.  However, Windows evaluates these
paths relative to the current working drive letter so find_* commands
may report paths like "/lib/..." when paths like "c:/lib/..." exist on
what happens to be current drive.  Such drive-less paths are not
reliable when the working drive changes, so we should not use them.

Fix WindowsPaths.cmake to add '/' to CMAKE_SYSTEM_PREFIX_PATH only when
cross-compiling to Windows from a non-Windows host.  This will avoid
searching and finding local paths without a drive letter on Windows.
Merge topic 'WindowsPaths-MinGW-cross-compile-only' into next

f9eee7f Windows: Search '/' prefix only when cross compiling (#10994)
90bd164 CMake Nightly Date Stamp
2baf851 CMake Nightly Date Stamp
e55b8ce CMake Nightly Date Stamp
d37fe5b CMake Nightly Date Stamp
50e9680 CMake Nightly Date Stamp
e6c3595 CMake Nightly Date Stamp
Fix include dir propagation from conditionally linked targets

Code like

 target_link_libraries(B debug A)

generates usage requirement references such as "$<$<CONFIG:DEBUG>:A>".
When cmTarget::GetIncludeDirectories uses such references it generates
expressions like:

 $<TARGET_PROPERTY:$<$<CONFIG:DEBUG>:A>,INTERFACE_INCLUDE_DIRECTORIES>

When the conditions are false such references evaluate as an empty
string and the expression fails with an error such as:

 $<TARGET_PROPERTY:tgt,prop> expression requires a non-empty target name.

Fix this by teaching cmTarget::GetIncludeDirectories to wrap the above
expression inside a conditional:

 $<$<BOOL:$<$<CONFIG:DEBUG>:A>>:...>

so that $<TARGET_PROPERTY:...> will not be evaluated with an empty
target.
Merge topic 'fix-per-config-tll-include-dirs' into next

de9d4a6 Fix include dir propagation from conditionally linked targets
78185f5 CMake Nightly Date Stamp