Cache context-independent includes on evaluation.

Generator expressions whose output depends on the configuration
now record that fact. The GetIncludeDirectories method can use
that result to cache the include directories for later calls.

GetIncludeDirectories is called multiple times for a target
for each configuration, so this should restore performance for
multi-config generators.
Merge topic 'tll-includes-defines' into next

4b5dd3a Cache context-independent includes on evaluation.
Fix Module.ExternalData test on Cygwin

In ExternalData_URL_TEMPLATES add a leading slash to the path after
file:// only if the path does not already start with one.
VS 6: Create .rule file directory before file

The VS 6 IDE wants .rule files to exist in order to run the rule attached
to it.  When creating the dummy .rule file make sure the directory exists.
Fix Module.ExternalData test on VS 6

Run the test with the ctest --build-noclean option.  The test
CMakeLists.txt file already uses file(REMOVE_RECURSE) to clean out
downloaded data anyway.  Some file removed by "msdev ... /clean" causes
CMake to re-run in the middle of the build step and file(REMOVE_RECURSE)
wipes out already-generated files.
ExternalData: Attach download rules to content links in IDEs

Each data file to be created in the build tree corresponds one-to-one with
a raw file or content link in the source tree.  Use the MAIN_DEPENDENCY of
add_custom_command to attach the build rule to the source tree file.  This
looks much nicer in the IDE project file browser and avoids ".rule" files.
Merge branch 'vs6-rule-files' into add-ExternalData-module
Merge topic 'vs6-rule-files' into next

18a93c8 VS 6: Create .rule file directory before file
Merge topic 'add-ExternalData-module' into next

7f59df9 Merge branch 'vs6-rule-files' into add-ExternalData-module
b4de870 ExternalData: Attach download rules to content links in IDEs
b49760e Fix Module.ExternalData test on VS 6
0642110 Fix Module.ExternalData test on Cygwin
VS 6: Remove $(IntDir) before making directory
VS 6: Create .rule file directory before file

The VS 6 IDE wants .rule files to exist in order to run the rule attached
to it.  When creating the dummy .rule file make sure the directory exists.
Merge topic 'vs6-rule-files' into next

ac953d5 VS 6: Remove $(IntDir) before making directory
Merge topic 'vs6-rule-files' into next

0f24a66 VS 6: Create .rule file directory before file
Merge branch 'vs6-rule-files' into add-ExternalData-module
Merge topic 'add-ExternalData-module' into next

0b0bd18 Merge branch 'vs6-rule-files' into add-ExternalData-module
Initialize the HadContextSensitiveCondition

So there's some reasonable chance of using the optimization.
Avoid invoking IsOff and ConvertToUnixPaths for cached includes

They seem to contribute a surprising amount to the cost of the
function.
Merge topic 'tll-includes-defines' into next

c6289d9 Avoid invoking IsOff and ConvertToUnixPaths for cached includes
4085273 Initialize the HadContextSensitiveCondition
Cache context-independent includes on evaluation.

Generator expressions whose output depends on the configuration
now record that fact. The GetIncludeDirectories method can use
that result to cache the include directories for later calls.

GetIncludeDirectories is called multiple times for a target
for each configuration, so this should restore performance for
multi-config generators.
Merge topic 'tll-includes-defines' into next

e48d842 Cache context-independent includes on evaluation.