CMakeでは、失敗する可能性add_custom_command(... POST_BUILD ...)
のある aで使用したいと考えています。COMMAND
観察
- の終了コードが ではないため、最初の実行
make
は失敗します。--> これは私が期待するものです。add_custom_command( ... COMMAND exit 1)
0
make
で指定されたコマンドは再度実行されないため、2 回目の実行はパスしadd_custom_command
ます。--> これは私が望んでいるものではありません。make
カスタムコマンドが機能するまで失敗したいと思います。
最小限の失敗の例
project(Foo)
cmake_minimum_required(VERSION 3.2)
# Create main.cc
##include <iostream>
#
#int main() {
# std::cout << "Hello, World!" << std::endl;
#}
add_executable(main main.cc)
add_custom_command(TARGET main POST_BUILD
COMMAND exit 1 # In the real example, I am changing capabilities of the resulting binary with /sbin/setcap, which might fail.
COMMENT "Doing stuff."
)
質問
- この問題を解決するにはどうすればよいですか?
- これは CMake の意図した動作ですか?
1 つのソリューション
ではなく、成功時POST_BUILD
にファイルを出力するカスタムコマンドを作成できることを認識しています。TARGET.passed
ただし、これは避けたいと思います。ここでは POST_BUILD が最も適切な使用法と思われるためです。(結果のファイルの機能を変更しています。)