Merge topic 'suppress-unused-cli-with-value-in-cache'
273ecab
CLI: Suppress the unused warning if the key value pair is cached.
This commit is contained in:
commit
21b1026541
|
@ -750,6 +750,10 @@ void cmCacheManager::AddCacheEntry(const char* key,
|
|||
}
|
||||
e.SetProperty("HELPSTRING", helpString? helpString :
|
||||
"(This variable does not exist and should not be used)");
|
||||
if (this->Cache[key].Value == e.Value)
|
||||
{
|
||||
this->CMakeInstance->UnwatchUnusedCli(key);
|
||||
}
|
||||
this->Cache[key] = e;
|
||||
}
|
||||
|
||||
|
|
|
@ -383,11 +383,22 @@ bool cmake::SetCacheArgs(const std::vector<std::string>& args)
|
|||
cmCacheManager::CacheEntryType type = cmCacheManager::UNINITIALIZED;
|
||||
if(cmCacheManager::ParseEntry(entry.c_str(), var, value, type))
|
||||
{
|
||||
// The value is transformed if it is a filepath for example, so
|
||||
// we can't compare whether the value is already in the cache until
|
||||
// after we call AddCacheEntry.
|
||||
const char *cachedValue =
|
||||
this->CacheManager->GetCacheValue(var.c_str());
|
||||
|
||||
this->CacheManager->AddCacheEntry(var.c_str(), value.c_str(),
|
||||
"No help, variable specified on the command line.", type);
|
||||
if(this->WarnUnusedCli)
|
||||
{
|
||||
this->WatchUnusedCli(var.c_str());
|
||||
if (!cachedValue
|
||||
|| strcmp(this->CacheManager->GetCacheValue(var.c_str()),
|
||||
cachedValue) != 0)
|
||||
{
|
||||
this->WatchUnusedCli(var.c_str());
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
|
|
|
@ -1640,17 +1640,23 @@ ${CMake_BINARY_DIR}/bin/cmake -DVERSION=master -P ${CMake_SOURCE_DIR}/Utilities/
|
|||
FAIL_REGULAR_EXPRESSION "CMake Warning .*VariableUnusedViaUnset.CMakeLists.txt:5 \\(set\\):")
|
||||
list(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/WarnUnusedUnusedViaUnset")
|
||||
|
||||
add_test(WarnUnusedCliUnused ${CMAKE_CTEST_COMMAND}
|
||||
--build-and-test
|
||||
"${CMake_SOURCE_DIR}/Tests/VariableUsage"
|
||||
"${CMake_BINARY_DIR}/Tests/WarnUnusedCliUnused"
|
||||
${build_generator_args}
|
||||
--build-noclean
|
||||
--build-project WarnUnusedCliUnused
|
||||
--build-options "-DUNUSED_CLI_VARIABLE=Unused")
|
||||
set_tests_properties(WarnUnusedCliUnused PROPERTIES
|
||||
PASS_REGULAR_EXPRESSION "CMake Warning:.*Manually-specified variables were not used by the project:.* UNUSED_CLI_VARIABLE")
|
||||
list(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/WarnUnusedCliUnused")
|
||||
if("${CMAKE_TEST_GENERATOR}" MATCHES "Makefile")
|
||||
# Ninja does not support ADDITIONAL_MAKE_CLEAN_FILES and therefore fails
|
||||
# this test. (See #13371)
|
||||
# Apparently Visual Studio does not support it either. As the MakeClean
|
||||
# test above is only run with the Makefiles generator, only run this
|
||||
# test with the Makefiles generator also.
|
||||
add_test(WarnUnusedCliUnused ${CMAKE_CTEST_COMMAND}
|
||||
--build-and-test
|
||||
"${CMake_SOURCE_DIR}/Tests/WarnUnusedCliUnused"
|
||||
"${CMake_BINARY_DIR}/Tests/WarnUnusedCliUnused"
|
||||
${build_generator_args}
|
||||
--build-project WarnUnusedCliUnused
|
||||
--build-options "-DUNUSED_CLI_VARIABLE=Unused")
|
||||
set_tests_properties(WarnUnusedCliUnused PROPERTIES
|
||||
PASS_REGULAR_EXPRESSION "CMake Warning:.*Manually-specified variables were not used by the project:.* UNUSED_CLI_VARIABLE")
|
||||
list(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/WarnUnusedCliUnused")
|
||||
endif()
|
||||
|
||||
add_test(WarnUnusedCliUsed ${CMAKE_CTEST_COMMAND}
|
||||
--build-and-test
|
||||
|
|
|
@ -0,0 +1,9 @@
|
|||
cmake_minimum_required(VERSION 2.8)
|
||||
|
||||
project(WarnUnusedCliUnused)
|
||||
|
||||
set_directory_properties(PROPERTIES
|
||||
ADDITIONAL_MAKE_CLEAN_FILES "${CMAKE_BINARY_DIR}/CMakeCache.txt"
|
||||
)
|
||||
|
||||
add_library(dummy empty.cpp)
|
|
@ -0,0 +1,7 @@
|
|||
#ifdef _WIN32
|
||||
__declspec(dllexport)
|
||||
#endif
|
||||
int empty(void)
|
||||
{
|
||||
return 0;
|
||||
}
|
Loading…
Reference in New Issue