Stephen Kelly b1c3ae33ea cmTarget: Short-circuit language computation if context independent.
Computing the language involves computing the source files, which
is an expensive operation.  It requires calling
cmMakefile::GetOrCreateSource many times, which involves creating
and matching on many cmSourceFileLocation objects.

Source files of a target may depend on the head-target and the
config as of commit e6971df6 (cmTarget: Make the source files depend
on the config., 2014-02-13).  The results are cached for each context
as of commit c5b26f3b (cmTarget: Cache the cmSourceFiles in
GetSourceFiles., 2014-04-05).

Each target in the build graph causes language computation of all
of its dependents with itself as the head-target.  This means that
for 'core' libraries on which everything depends, the source files
are computed once for every transitive target-level-dependee and
the result is not cached because the head-target is different. This
was observed in the VTK buildsystem.

Short circuit the computation for targets which have a source-list
that is independent of the head-target.  If the source-list has
already been computed and the generator expression evaluation
reports that it was context-independent, return the only source-list
already cached for the target.  Reset the short-circuit logic when
sources are added and when the link libraries are re-computed.
2014-04-09 10:37:00 +02:00
..
2014-04-01 11:06:15 -04:00
2014-03-08 13:05:39 -05:00
2014-03-08 13:05:39 -05:00
2014-04-03 21:53:14 +02:00
2014-04-08 00:01:05 -04:00
2014-03-08 13:05:39 -05:00
2014-03-11 15:03:50 +01:00
2014-03-08 13:05:39 -05:00
2014-03-08 13:05:39 -05:00
2014-03-08 13:05:35 -05:00
2014-03-11 15:03:50 +01:00
2014-03-11 15:03:50 +01:00
2014-03-08 13:05:39 -05:00
2014-03-08 13:05:39 -05:00
2014-03-08 13:05:39 -05:00
2014-03-08 13:05:39 -05:00
2014-03-08 13:05:39 -05:00
2014-03-08 13:05:39 -05:00
2014-03-08 13:05:39 -05:00
2012-09-28 17:00:52 -04:00
2012-09-28 17:00:52 -04:00
2014-03-08 13:05:39 -05:00
2014-03-11 15:03:50 +01:00
2014-03-11 15:03:50 +01:00
2014-03-08 13:05:39 -05:00
2014-03-08 13:05:39 -05:00
2014-03-08 13:05:39 -05:00
2014-03-08 13:05:39 -05:00
2014-03-08 13:05:39 -05:00
2014-03-11 15:03:50 +01:00
2014-03-08 13:05:39 -05:00
2014-03-08 13:05:39 -05:00
2014-03-11 15:03:50 +01:00
2014-03-08 13:05:39 -05:00
2014-03-11 15:03:50 +01:00
2014-03-08 13:05:39 -05:00
2014-03-08 13:05:39 -05:00
2014-03-11 15:03:50 +01:00
2014-03-11 15:03:50 +01:00
2014-03-08 13:05:39 -05:00
2014-03-08 13:05:39 -05:00
2012-02-02 23:40:21 +00:00
2014-03-11 15:03:50 +01:00
2014-03-08 13:05:39 -05:00
2014-03-08 13:05:39 -05:00
2014-03-08 13:05:39 -05:00
2014-03-08 13:05:39 -05:00
2014-03-08 13:05:39 -05:00
2014-03-08 13:05:39 -05:00
2014-03-08 13:05:35 -05:00
2014-03-11 15:03:50 +01:00
2014-03-08 13:05:39 -05:00
2014-03-08 13:05:39 -05:00
2014-03-11 15:03:50 +01:00
2014-03-08 13:05:39 -05:00
2014-04-03 12:51:45 -04:00
2014-03-11 15:03:50 +01:00
2014-03-08 13:05:39 -05:00
2014-03-11 15:03:50 +01:00
2014-03-08 13:05:39 -05:00
2014-03-08 13:05:39 -05:00
2014-03-08 13:05:39 -05:00
2014-03-08 13:05:39 -05:00