Skip to content

Troubleshooting

June Rhodes edited this page Jun 28, 2024 · 1 revision

UnrealBuildTool does not detect my new .clang-rules file

When building under UnrealBuildTool, changes to .clang-rules files will trigger expected re-compilations in the following scenarios:

  • Adding a .clang-rules file underneath a directory that UnrealBuildTool scans for new files, such as Source.
  • Modifying an existing .clang-rules file that has previously been used in a build.
  • Deleting an existing .clang-rules file that has previously been used in a build.

UnrealBuildTool will not recompile files in the following scenario:

  • Adding a .clang-rules file somewhere outside the hierarchy of folders it scans, such as above the Unreal Engine project or engine, or in external header directories.

The "dependency file" that Clang produces, and which UnrealBuildTool reads, does not support listing files that "do not exist but would influence the build if they did". Therefore, we can't notify UnrealBuildTool of .clang-rules files that could influence the build if they were created. Listing non-existent files in the "dependency file" produced from Clang causes UnrealBuildTool to assume a dependency was deleted since the last build, so emitting non-existent .clang-rules would cause all translation units to always require recompilation even if nothing changed.