CMP0052: Do not warn when include dir is not in source or build tree
When the policy was added by commit 783bce29
(Export: Disallow exported
interface includes in src/build tree, 2014-03-31) it accidentally left a
code path that would warn when the include dir is in the install tree
but *not* in the source or build tree. Fix that.
This commit is contained in:
parent
fd8bb34278
commit
9e0b3153fa
|
@ -277,6 +277,8 @@ static bool checkInterfaceDirs(const std::string &prepro,
|
||||||
" \"" << *li << "\"";
|
" \"" << *li << "\"";
|
||||||
target->GetMakefile()->IssueMessage(messageType, e.str());
|
target->GetMakefile()->IssueMessage(messageType, e.str());
|
||||||
}
|
}
|
||||||
|
bool inBinary = isSubDirectory(li->c_str(), topBinaryDir);
|
||||||
|
bool inSource = isSubDirectory(li->c_str(), topSourceDir);
|
||||||
if (isSubDirectory(li->c_str(), installDir))
|
if (isSubDirectory(li->c_str(), installDir))
|
||||||
{
|
{
|
||||||
// The include directory is inside the install tree. If the
|
// The include directory is inside the install tree. If the
|
||||||
|
@ -284,8 +286,8 @@ static bool checkInterfaceDirs(const std::string &prepro,
|
||||||
// fall through to the checks below that the include directory is not
|
// fall through to the checks below that the include directory is not
|
||||||
// also inside the source tree or build tree.
|
// also inside the source tree or build tree.
|
||||||
bool shouldContinue =
|
bool shouldContinue =
|
||||||
isSubDirectory(installDir, topBinaryDir)
|
(!inBinary || isSubDirectory(installDir, topBinaryDir)) &&
|
||||||
|| isSubDirectory(installDir, topSourceDir);
|
(!inSource || isSubDirectory(installDir, topSourceDir));
|
||||||
|
|
||||||
if (!shouldContinue)
|
if (!shouldContinue)
|
||||||
{
|
{
|
||||||
|
@ -317,7 +319,7 @@ static bool checkInterfaceDirs(const std::string &prepro,
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (isSubDirectory(li->c_str(), topBinaryDir))
|
if (inBinary)
|
||||||
{
|
{
|
||||||
e << "Target \"" << target->GetName() << "\" "
|
e << "Target \"" << target->GetName() << "\" "
|
||||||
"INTERFACE_INCLUDE_DIRECTORIES property contains path:\n"
|
"INTERFACE_INCLUDE_DIRECTORIES property contains path:\n"
|
||||||
|
@ -326,7 +328,7 @@ static bool checkInterfaceDirs(const std::string &prepro,
|
||||||
}
|
}
|
||||||
if (!inSourceBuild)
|
if (!inSourceBuild)
|
||||||
{
|
{
|
||||||
if (isSubDirectory(li->c_str(), topSourceDir))
|
if (inSource)
|
||||||
{
|
{
|
||||||
e << "Target \"" << target->GetName() << "\" "
|
e << "Target \"" << target->GetName() << "\" "
|
||||||
"INTERFACE_INCLUDE_DIRECTORIES property contains path:\n"
|
"INTERFACE_INCLUDE_DIRECTORIES property contains path:\n"
|
||||||
|
|
Loading…
Reference in New Issue