テクノロジー · 実用ガイド
CMake の generator が一致しない?cache を消す前に build tree の所有者を証明する
失敗した source/build の組を固定し、cached generator と frontend 設定を読み、隔離 configure・native build・test が通ってから旧 tree を退役します。

CMake の generator mismatch は、既存 build tree が現在の configure request と異なる generator を記憶している状態です。CMakeLists.txt を改名または削除する理由ではありません。
command と cache を保存し、CLI、environment、preset、kit、IDE のどれが新 generator を選んだかを特定します。再現すべき設定を記録した後だけ別 tree または --fresh を使います。
衝突した source/build の組を固定する
正確な command、cwd、environment、preset、IDE log を保存し、source directory と build directory を分けて解決します。CMakeLists.txt は変更しません。
CMakeCache.txt をコピーまたは hash 化し、GENERATOR、PLATFORM、TOOLSET、HOME_DIRECTORY、compiler、意図した -D 値を記録します。
generator の所有者を特定する
明示的 -G、CMAKE_GENERATOR、active preset、kit、CMake Tools settings、toolset、platform を比較し、一つの authority だけが意図した configure を所有するようにします。
別 machine、container、checkout、IDE version から来た旧 tree は証拠として扱い、異なる generator の native build file を混ぜません。
可逆的な recovery boundary を選ぶ
-S、-B と意図した generator で新 build directory を作り、確認済み cache option だけを戻します。旧 tree は比較と rollback のため残します。
新 tree が無理で設定を保存済みの場合だけ --fresh または CMakeCache.txt/CMakeFiles 削除を使います。--fresh は CMake 3.24 以上で、source tree は削除しません。
configure、build、test を証明する
configure transcript を保存し、新 cache の source、generator、platform、toolset、compiler を確認してから cmake --build を実行します。
project test を行い binary、library、package、compile database を確認します。旧 cache の重要 option と比較し、configure の exit だけで承認しません。
汚染された tree を意図的に退役する
replacement が合格してから旧 build tree を archive または削除し、CI、preset、IDE を同じ境界と generator authority に揃えます。
input を変えず再 configure し、generator が維持され不明な full rebuild がないことを確認し ownership ledger を保存します。
