CMake/Tests/AliasTarget
Brad King bc30f8b5e6 Fix lookup of an ALIAS target outside aliased target's directory (#16044)
Refactoring in commit v3.5.0-rc1~272^2~11 (cmTarget: Implement ALIAS in
terms of name mapping, 2015-10-25) accidentally introduced logic that
assumes ALIAS targets always reference targets in their own directory.
Fix this and add a test case.

The configure-step fix is that `cmMakefile::FindTarget` should not consider
aliases.  The purpose of this method is just to look up targets local to
a directory.  Since ALIAS and normal targets share a namespace we know a
locally defined target will never collide with an ALIAS target anyway.
The method has 3 call sites, and this change is safe for all of them:

* `cmInstallCommand::HandleTargetsMode`: Rejects aliases before the call.
* `cmFLTKWrapUICommand::FinalPass`: Should never have considered aliases.
* `cmMakefile::FindTargetToUse`: Falls back to a global lookup anyway.

The generate-step fix is that `cmLocalGenerator::FindGeneratorTarget`
should not consider aliases.  This method is the generate-step
equivalent to the above.  The method has 2 call sites, and this change
is safe for both of them:

* `cmInstallTargetGenerator::Compute`: Never uses an alias target name.
* `cmLocalGenerator::FindGeneratorTargetToUse`: Falls back to global lookup.

Reported-by: Matteo Settenvini <matteo@member.fsf.org>
2016-04-01 15:44:16 -04:00
..
subdir Fix lookup of an ALIAS target outside aliased target's directory (#16044) 2016-04-01 15:44:16 -04:00
CMakeLists.txt Alias: Fix access at generate-time (#15832) 2015-11-08 13:54:49 +01:00
bat.cpp Add the ALIAS target concept for libraries and executables. 2013-08-02 15:21:00 +02:00
commandgenerator.cpp Add the ALIAS target concept for libraries and executables. 2013-08-02 15:21:00 +02:00
empty.cpp Add the ALIAS target concept for libraries and executables. 2013-08-02 15:21:00 +02:00
object.cpp Add the ALIAS target concept for libraries and executables. 2013-08-02 15:21:00 +02:00
object.h Add the ALIAS target concept for libraries and executables. 2013-08-02 15:21:00 +02:00
targetgenerator.cpp Add the ALIAS target concept for libraries and executables. 2013-08-02 15:21:00 +02:00