From b0773aa4f62fe66f966e7ccd0c5c380d13a71fbb Mon Sep 17 00:00:00 2001 From: ClausKlein Date: Sun, 7 Apr 2024 10:29:26 +0200 Subject: VERIFY_INTERFACE_HEADER_SETS: Add IWYU pragma as C-style comment In commit 6942234bf5 (VERIFY_INTERFACE_HEADER_SETS: Add IWYU pragma: associated to verification file, 2022-10-07, v3.25.0-rc1~22^2) the comment was added as a C++-style comment. The feature works in C too, so use a C-style comment. --- Source/cmGeneratorTarget.cxx | 3 ++- Tests/RunCMake/VerifyHeaderSets/VerifyHeaderSets-check.cmake | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/Source/cmGeneratorTarget.cxx b/Source/cmGeneratorTarget.cxx index b1b38c5..35992f6 100644 --- a/Source/cmGeneratorTarget.cxx +++ b/Source/cmGeneratorTarget.cxx @@ -9194,7 +9194,8 @@ std::string cmGeneratorTarget::GenerateHeaderSetVerificationFile( // consider the headerFile as part of the entire language // unit within include-what-you-use and as a result allows // one to get IWYU advice for headers. - fout << "#include <" << headerFilename << "> // IWYU pragma: associated\n"; + fout << "#include <" << headerFilename + << "> /* IWYU pragma: associated */\n"; fout.close(); return filename; diff --git a/Tests/RunCMake/VerifyHeaderSets/VerifyHeaderSets-check.cmake b/Tests/RunCMake/VerifyHeaderSets/VerifyHeaderSets-check.cmake index 4d5508d..2cfb4bc 100644 --- a/Tests/RunCMake/VerifyHeaderSets/VerifyHeaderSets-check.cmake +++ b/Tests/RunCMake/VerifyHeaderSets/VerifyHeaderSets-check.cmake @@ -9,7 +9,7 @@ function(check_file target filename) if(filename MATCHES "^(.*)(\\.[a-z]+)$") set(header_filename "${CMAKE_MATCH_1}") endif() - set(expected_contents "#include <${header_filename}> // IWYU pragma: associated\n") + set(expected_contents "#include <${header_filename}> /* IWYU pragma: associated */\n") file(READ "${full_filename}" actual_contents) if(NOT actual_contents STREQUAL expected_contents) -- cgit v0.12 From eb66549c7cd680f288e58876e0f566f1cc7f2f20 Mon Sep 17 00:00:00 2001 From: ClausKlein Date: Sun, 7 Apr 2024 10:38:16 +0200 Subject: VERIFY_INTERFACE_HEADER_SETS: Suppress clang-tidy include checks `clang-tidy-17` adds include checks similar to IWYU. Suppress them in generated code. --- Source/cmGeneratorTarget.cxx | 6 ++++-- Tests/RunCMake/VerifyHeaderSets/VerifyHeaderSets-check.cmake | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/Source/cmGeneratorTarget.cxx b/Source/cmGeneratorTarget.cxx index 35992f6..2ec1a29 100644 --- a/Source/cmGeneratorTarget.cxx +++ b/Source/cmGeneratorTarget.cxx @@ -9194,8 +9194,10 @@ std::string cmGeneratorTarget::GenerateHeaderSetVerificationFile( // consider the headerFile as part of the entire language // unit within include-what-you-use and as a result allows // one to get IWYU advice for headers. - fout << "#include <" << headerFilename - << "> /* IWYU pragma: associated */\n"; + // Also suppress clang-tidy include checks in generated code. + fout + << "/* NOLINTNEXTLINE(misc-header-include-cycle,misc-include-cleaner) */\n" + << "#include <" << headerFilename << "> /* IWYU pragma: associated */\n"; fout.close(); return filename; diff --git a/Tests/RunCMake/VerifyHeaderSets/VerifyHeaderSets-check.cmake b/Tests/RunCMake/VerifyHeaderSets/VerifyHeaderSets-check.cmake index 2cfb4bc..081e09a 100644 --- a/Tests/RunCMake/VerifyHeaderSets/VerifyHeaderSets-check.cmake +++ b/Tests/RunCMake/VerifyHeaderSets/VerifyHeaderSets-check.cmake @@ -9,7 +9,7 @@ function(check_file target filename) if(filename MATCHES "^(.*)(\\.[a-z]+)$") set(header_filename "${CMAKE_MATCH_1}") endif() - set(expected_contents "#include <${header_filename}> /* IWYU pragma: associated */\n") + set(expected_contents "/* NOLINTNEXTLINE(misc-header-include-cycle,misc-include-cleaner) */\n#include <${header_filename}> /* IWYU pragma: associated */\n") file(READ "${full_filename}" actual_contents) if(NOT actual_contents STREQUAL expected_contents) -- cgit v0.12 From 773dc0a2970d8ee036f2f7de6da2924ca982497a Mon Sep 17 00:00:00 2001 From: ClausKlein Date: Sun, 7 Apr 2024 10:45:36 +0200 Subject: Unity: Suppress clang-tidy include checks `clang-tidy-17` adds include checks similar to IWYU. Suppress them in generated code. --- Source/cmLocalGenerator.cxx | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Source/cmLocalGenerator.cxx b/Source/cmLocalGenerator.cxx index 684dfda..d8f56d1 100644 --- a/Source/cmLocalGenerator.cxx +++ b/Source/cmLocalGenerator.cxx @@ -3134,7 +3134,10 @@ void cmLocalGenerator::WriteUnitySourceInclude( unity_file << *beforeInclude << "\n"; } - unity_file << "/* NOLINTNEXTLINE(bugprone-suspicious-include) */\n"; + // clang-tidy-17 has new include checks that needs NOLINT too. + unity_file + << "/* NOLINTNEXTLINE(bugprone-suspicious-include,misc-include-cleaner) " + "*/\n"; unity_file << "#include \"" << sf_full_path << "\"\n"; if (afterInclude) { -- cgit v0.12