Merge topic 'fix-CMP0052'
3b673586
CMP0052: Make the warning message more informative.5baa8159
CMP0052: Test that include dirs in install locations cause no warnings.9e0b3153
CMP0052: Do not warn when include dir is not in source or build tree
This commit is contained in:
commit
2fca2b2310
|
@ -277,6 +277,8 @@ static bool checkInterfaceDirs(const std::string &prepro,
|
|||
" \"" << *li << "\"";
|
||||
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))
|
||||
{
|
||||
// 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
|
||||
// also inside the source tree or build tree.
|
||||
bool shouldContinue =
|
||||
isSubDirectory(installDir, topBinaryDir)
|
||||
|| isSubDirectory(installDir, topSourceDir);
|
||||
(!inBinary || isSubDirectory(installDir, topBinaryDir)) &&
|
||||
(!inSource || isSubDirectory(installDir, topSourceDir));
|
||||
|
||||
if (!shouldContinue)
|
||||
{
|
||||
|
@ -299,7 +301,10 @@ static bool checkInterfaceDirs(const std::string &prepro,
|
|||
s << "Directory:\n \"" << *li << "\"\nin "
|
||||
"INTERFACE_INCLUDE_DIRECTORIES of target \""
|
||||
<< target->GetName() << "\" is a subdirectory of the install "
|
||||
"directory:\n \"" << installDir << "\"";
|
||||
"directory:\n \"" << installDir << "\"\nhowever it is also "
|
||||
"a subdirectory of the " << (inBinary ? "build" : "source")
|
||||
<< " tree:\n \"" << (inBinary ? topBinaryDir : topSourceDir)
|
||||
<< "\"" << std::endl;
|
||||
target->GetMakefile()->IssueMessage(cmake::AUTHOR_WARNING,
|
||||
s.str());
|
||||
}
|
||||
|
@ -317,7 +322,7 @@ static bool checkInterfaceDirs(const std::string &prepro,
|
|||
continue;
|
||||
}
|
||||
}
|
||||
if (isSubDirectory(li->c_str(), topBinaryDir))
|
||||
if (inBinary)
|
||||
{
|
||||
e << "Target \"" << target->GetName() << "\" "
|
||||
"INTERFACE_INCLUDE_DIRECTORIES property contains path:\n"
|
||||
|
@ -326,7 +331,7 @@ static bool checkInterfaceDirs(const std::string &prepro,
|
|||
}
|
||||
if (!inSourceBuild)
|
||||
{
|
||||
if (isSubDirectory(li->c_str(), topSourceDir))
|
||||
if (inSource)
|
||||
{
|
||||
e << "Target \"" << target->GetName() << "\" "
|
||||
"INTERFACE_INCLUDE_DIRECTORIES property contains path:\n"
|
||||
|
|
|
@ -12,4 +12,9 @@ CMake Warning \(dev\) in CMakeLists.txt:
|
|||
of the install directory:
|
||||
|
||||
".*Tests/RunCMake/include_directories/prefix"
|
||||
|
||||
however it is also a subdirectory of the build tree:
|
||||
|
||||
".*Tests/RunCMake/include_directories/prefix/BinInInstallPrefix-CMP0052-WARN-build"
|
||||
|
||||
This warning is for project developers. Use -Wno-dev to suppress it.
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
0
|
|
@ -0,0 +1 @@
|
|||
^$
|
|
@ -0,0 +1,9 @@
|
|||
|
||||
add_library(testTarget empty.cpp)
|
||||
target_include_directories(testTarget INTERFACE "${CMAKE_INSTALL_PREFIX}/dir")
|
||||
|
||||
install(TARGETS testTarget EXPORT testTargets
|
||||
DESTINATION lib
|
||||
)
|
||||
|
||||
install(EXPORT testTargets DESTINATION lib/cmake)
|
|
@ -13,6 +13,9 @@ run_cmake(install_config)
|
|||
run_cmake(incomplete-genex)
|
||||
run_cmake(export-NOWARN)
|
||||
|
||||
set(RunCMake_TEST_OPTIONS "-DCMAKE_INSTALL_PREFIX=${RunCMake_BINARY_DIR}/DirInInstallPrefix/prefix")
|
||||
run_cmake(DirInInstallPrefix)
|
||||
|
||||
configure_file(
|
||||
"${RunCMake_SOURCE_DIR}/CMakeLists.txt"
|
||||
"${RunCMake_BINARY_DIR}/copy/CMakeLists.txt"
|
||||
|
|
|
@ -12,4 +12,9 @@ CMake Warning \(dev\) in CMakeLists.txt:
|
|||
of the install directory:
|
||||
|
||||
".*Tests/RunCMake/include_directories/prefix"
|
||||
|
||||
however it is also a subdirectory of the source tree:
|
||||
|
||||
".*Tests/RunCMake/include_directories/prefix/src"
|
||||
|
||||
This warning is for project developers. Use -Wno-dev to suppress it.
|
||||
|
|
Loading…
Reference in New Issue