mirror of
https://github.com/Kitware/CMake.git
synced 2026-03-11 03:50:43 -05:00
Linting: Fix empty evaluated genex
Update logic added by commit099934e313(Add generator expression support to static code analysis hooks, 2023-03-24, v3.27.0-rc1~261^2), and preserved by commit993dde925f(TargetGenerator: Factor out generation of code check rules, 2023-05-12, v3.27.0-rc1~84^2~2), to handle a generator expression that evaluates to the empty string. If `<LANG>_CPPCHECK`, `<LANG>_CPPLINT`, `<LANG>_CLANG_TIDY`, or `<LANG>_INCLUDE_WHAT_YOU_USE` are empty after evaluating generator expressions, do not run their lints. Fixes: #25265
This commit is contained in:
committed by
Brad King
parent
51b34a5483
commit
80df7b1745
@@ -335,10 +335,7 @@ std::string cmCommonTargetGenerator::GenerateCodeCheckRules(
|
|||||||
auto evaluatedProp = cmGeneratorExpression::Evaluate(
|
auto evaluatedProp = cmGeneratorExpression::Evaluate(
|
||||||
*value, this->GeneratorTarget->GetLocalGenerator(), config,
|
*value, this->GeneratorTarget->GetLocalGenerator(), config,
|
||||||
this->GeneratorTarget, nullptr, this->GeneratorTarget, lang);
|
this->GeneratorTarget, nullptr, this->GeneratorTarget, lang);
|
||||||
if (!evaluatedProp.empty()) {
|
return evaluatedProp;
|
||||||
return evaluatedProp;
|
|
||||||
}
|
|
||||||
return *value;
|
|
||||||
};
|
};
|
||||||
std::string const tidy_prop = cmStrCat(lang, "_CLANG_TIDY");
|
std::string const tidy_prop = cmStrCat(lang, "_CLANG_TIDY");
|
||||||
tidy = evaluateProp(tidy_prop);
|
tidy = evaluateProp(tidy_prop);
|
||||||
|
|||||||
@@ -24,6 +24,7 @@ run_multilint(CXX)
|
|||||||
if(NOT RunCMake_GENERATOR STREQUAL "Watcom WMake")
|
if(NOT RunCMake_GENERATOR STREQUAL "Watcom WMake")
|
||||||
run_multilint(C-launch)
|
run_multilint(C-launch)
|
||||||
run_multilint(CXX-launch)
|
run_multilint(CXX-launch)
|
||||||
|
run_multilint(genex)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
function(run_skip_linting test_name)
|
function(run_skip_linting test_name)
|
||||||
|
|||||||
6
Tests/RunCMake/MultiLint/genex.cmake
Normal file
6
Tests/RunCMake/MultiLint/genex.cmake
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
enable_language(CXX)
|
||||||
|
set(CMAKE_CXX_INCLUDE_WHAT_YOU_USE "$<IF:$<BOOL:FALSE>,${PSEUDO_IWYU},>")
|
||||||
|
set(CMAKE_CXX_CLANG_TIDY "$<IF:$<BOOL:FALSE>,${PSEUDO_TIDY} --error,>")
|
||||||
|
set(CMAKE_CXX_CPPLINT "$<IF:$<BOOL:FALSE>,${PSEUDO_CPPLINT} --error,>")
|
||||||
|
set(CMAKE_CXX_CPPCHECK "$<IF:$<BOOL:FALSE>,${PSEUDO_CPPCHECK} -bad,>")
|
||||||
|
add_executable(main main.cxx)
|
||||||
Reference in New Issue
Block a user