mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-12 01:09:47 -06:00
Autogen: Fix header detection for paths with symbolic links
When Autogen searches the header for a source files in a target, the expanded real path is used and not the (possibly symbolic) original path of the source file. If the source file path contains symbolic links, then the correct `cmSourceFile` instance of the header won't be found, but a new one will be generated. This way all header source file properties get lost, which is problematic especially for the `SKIP_AUTOMOC/UIC/GEN` properties. This patch changes the header detection in Autogen to use the original source file path instead of the expanded real source file path. Fixes: #19346
This commit is contained in:
committed by
Brad King
parent
a423194311
commit
00e6b67e0c
@@ -721,9 +721,9 @@ bool cmQtAutoGenInitializer::InitScanFiles()
|
||||
MUFile const& muf = *pair.second;
|
||||
if (muf.MocIt || muf.UicIt) {
|
||||
// Search for the default header file and a private header
|
||||
std::string const& realPath = muf.RealPath;
|
||||
std::string basePath = cmQtAutoGen::SubDirPrefix(realPath);
|
||||
basePath += cmSystemTools::GetFilenameWithoutLastExtension(realPath);
|
||||
std::string const& srcPath = muf.SF->GetFullPath();
|
||||
std::string basePath = cmQtAutoGen::SubDirPrefix(srcPath);
|
||||
basePath += cmSystemTools::GetFilenameWithoutLastExtension(srcPath);
|
||||
for (auto const& suffix : suffixes) {
|
||||
std::string const suffixedPath = basePath + suffix;
|
||||
for (auto const& ext : exts) {
|
||||
|
||||
Reference in New Issue
Block a user