https://github.com/Kitware/CMake
Revision bc30f8b5e66cb9c15fd224f5e51454c0bc66c67e authored by Brad King on 01 April 2016, 13:13:16 UTC, committed by Brad King on 01 April 2016, 19:44:16 UTC
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>
1 parent 64130a7
History
Tip revision: bc30f8b5e66cb9c15fd224f5e51454c0bc66c67e authored by Brad King on 01 April 2016, 13:13:16 UTC
Fix lookup of an ALIAS target outside aliased target's directory (#16044)
Tip revision: bc30f8b
File Mode Size
Auxiliary
Help
Licenses
Modules
Packaging
Source
Templates
Tests
Utilities
.gitattributes -rw-r--r-- 613 bytes
.hooks-config.bash -rw-r--r-- 866 bytes
CMakeCPack.cmake -rw-r--r-- 8.8 KB
CMakeCPackOptions.cmake.in -rw-r--r-- 11.0 KB
CMakeGraphVizOptions.cmake -rw-r--r-- 153 bytes
CMakeLists.txt -rw-r--r-- 26.2 KB
CMakeLogo.gif -rw-r--r-- 4.4 KB
CONTRIBUTING.rst -rw-r--r-- 1005 bytes
CTestConfig.cmake -rw-r--r-- 870 bytes
CTestCustom.cmake.in -rw-r--r-- 5.1 KB
CompileFlags.cmake -rw-r--r-- 3.1 KB
Copyright.txt -rw-r--r-- 2.6 KB
DartConfig.cmake -rw-r--r-- 804 bytes
README.rst -rw-r--r-- 2.9 KB
bootstrap -rwxr-xr-x 45.5 KB
cmake_uninstall.cmake.in -rw-r--r-- 790 bytes
configure -rwxr-xr-x 99 bytes
doxygen.config -rw-r--r-- 27.4 KB

README.rst

back to top