CMake Nightly Date Stamp
CMake Nightly Date Stamp
CMake Nightly Date Stamp
CMake Nightly Date Stamp
CMake Nightly Date Stamp
Recognize ld with toolchain prefix (#13960)

Teach CMAKE_PARSE_IMPLICIT_LINK_INFO to recognize linker invocations
of the form "<toolchain-prefix>-ld" e.g. "x86_64-pc-linux-gnu-ld".
Merge topic 'implicit-linker-detection' into next

a2bc47d Recognize ld with toolchain prefix (#13960)
Centralize maintenance of usage requirement include directories

Maintain a target's internal list of usage requirement include
directories whenever the LINK_LIBRARIES property is set by either
target_link_libraries or set_property.
Fix include dir propagation from conditionally linked targets

Generator expressions, including configuration-specific expressions may
be used as link libraries of targets.  The old-style keywords of
target_link_libraries are handled in terms of new generator expressions.
However, the generator expressions expect target names to be valid
against a regular expression, whereas target_link_libraries does not
require validation.  In generator expression constructed without any
action from the user we need to ensure that only valid expressions are
generated.  Ensure that strings which are not valid target names are not
used in generator expressions which validate the argument.

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.
Memoize usage requirement include directories in a config-specific map

Commit 42ebb188 (Memoize includes and defines from interface libraries.,
2013-02-22) introduced caching of the includes.  Fix the memoization to
be configuration-specific so that we do not accumulate entries across
multiple evaluations in a multi-config generator.
Merge topic 'fix-per-config-tll-include-dirs' into next

dea1df4 Memoize usage requirement include directories in a config-specific map
26dba6a Fix include dir propagation from conditionally linked targets
b8259c3 Centralize maintenance of usage requirement include directories
Merge topic 'fix-per-config-tll-include-dirs'

dea1df4 Memoize usage requirement include directories in a config-specific map
26dba6a Fix include dir propagation from conditionally linked targets
b8259c3 Centralize maintenance of usage requirement include directories
Merge branch 'master' into next
Merge topic 'doc-tll-usage-requirements'

2618e02 target_link_libraries: Update usage requirements documentation
Test transitive includes from setting the LINK_LIBRARIES property.

Commit b8259c3d (Centralize maintenance of usage requirement include
directories, 2013-04-29) changed the handling of the property.
Previously setting the property directly instead of via
target_link_libraries would not result in transitive include
directory handling.
Test that linking using the debug keyword to tll works.
Merge topic 'fix-per-config-tll-include-dirs' into next

e9a2a67 Test that linking using the debug keyword to tll works.
20104ab Test transitive includes from setting the LINK_LIBRARIES property.
ExternalProject: Allow blank SVN_USERNAME/SVN_PASSWORD (#14128)

With

  SVN_USERNAME ""
  SVN_PASSWORD ""

in an ExternalProject_Add() call, the blank username and password
will be passed to the svn checkout/update step commands.
Merge topic 'ExternalProject-svn-auth-blank' into next

ecd11a2 ExternalProject: Allow blank SVN_USERNAME/SVN_PASSWORD (#14128)