私はCMakeを使ってテスト実行ファイルを構築しています。ビルドプロセス中に、実行可能ファイルを実行して、テストが合格したかどうかを返します。そうでない場合は、ビルドが失敗するようにします。ただし、add_custom_command(... POST_BUILD ...)
を使用してMakefile
ジェネレータを使用すると、テスト実行ファイルが削除されます(この質問の説明:Why does GNU make delete a file)。cmake add_custom_command失敗、ターゲットが削除される
CMakeが実行可能ファイルを.PRECIOUS
として扱う方法がありますか?あるいは、テストが失敗した場合に実行ファイルが削除されないようにCMakeLists.txtを変更しますか?参考のため
、私CMakeList.txtが(実際から簡体字)、次のようになります。私はをほのめかした
add_executable(UnitTest unittest.cpp)
add_custom_command(TARGET UnitTest POST_BUILD COMMAND $<TARGET_FILE:UnitTest>)
実行可能ファイルをCMakeが削除しない場所にコピーできます。 – AndyG
以前に成功したか、実行可能ファイルであっても依存関係が変わっていなくても、ビルドするたびにテストが実行されるかどうかは問題ありませんか? –
@Florian:与えられた質問は明示的に「私はビルドが失敗したい」と言っているので、エラーを無視するだけでは質問者のニーズには適していません。また、重複として参照する質問は、構成( 'cmake')段階で動作します。質問はbuild(' make')段階で動作します。 – Tsyvarev