私は、複数のサブディレクトリを持つ大きなプロジェクトを持っています。親ディレクトリには、同じ親ディレクトリにある他のcmakeファイルで定義されている関数を呼び出すCMakeLists.txtファイルがあります。私はいくつかのターゲット "実行"を含むサブディレクトリの1つにカスタムのMakefileを持っています。私がcmakeを親ディレクトリから呼び出すとき、makefileのサブディレクトリにある "run"ターゲットを実行します。私はこれをどのようにするべきですか? add_custom_targetとadd_custom_commandの使用を提案している人もいると思いますが、これらのコマンドをどのように適用してこのタスクを達成するかについてはまだ混乱しています。cmakeファイルの既存のmakeコマンドを呼び出す
1
A
答えて
3
サブディレクトリにあるMakefileによって生成され、これらのファイルに依存したい、add_custom_command
を使用しているファイル(複数可)、あなたが知っている場合:
add_custom_command(OUTPUT <output-file>
COMMAND make run
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/<subdir>
)
これはあなたのCMakeLists.txt
が依存ターゲットを、持っていることを前提としていまたは与えられたファイルを使用します。それ以外の場合は
、あなたがメイクファイルによって生成されたファイルは気にしない場合は、add_custom_target
を使用します。
add_custom_target(<target_name> COMMAND make run
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/<subdir>
)
両方のケースでWORKING_DIRECTORYが実行したコマンドのため現在あるべきディレクトリを指定します。
あなたは(第2の場合)、ターゲットがデフォルトで実行したい場合は
、 COMMAND前 ALLオプションを追加します。関連する問題
- 1. symfonyコンソールで既存のapacheコマンドを呼び出す
- 2. 既存のスクリプトからスクリプトを呼び出すShebangコマンド - Python
- 3. 既存のアクティビティを呼び出す
- 4. Makeからperlスクリプトを呼び出す
- 5. スクリプトからmakeを呼び出す
- 6. はcmakeの既存のソース
- 7. OLE - delphiを使用して既存のExcelファイルを呼び出す
- 8. electronjsの既存のC++コードを呼び出す
- 9. 角2:別のコンポーネントから既存のコンポーネントを呼び出す
- 10. cmakeでasmファイル生成後にシェルコマンドを呼び出す
- 11. アンドロイドで既存のレルムデータベースを呼び出していますか?
- 12. Entity Frameworkコアから既存のストアドプロシージャを呼び出す
- 13. C#フォームから既存のクラスを呼び出す
- 14. 既存のodoo 9 posポップアップを呼び出す
- 15. cmake "make run"
- 16. elisp:現在のファイルのコマンドを呼び出す
- 17. 他のテンプレートを呼び出して既存のコードを保存するテキストテンプレート
- 18. symfony2コントローラのmysqlコマンドを呼び出す
- 19. 別のコマンドを呼び出す
- 20. Pythonの外部コマンドを呼び出す
- 21. 変数付きのCファイル内でbashコマンドを呼び出す
- 22. CMake、makeおよびGCCの役割を理解する
- 23. Makefile(s)debug:コマンドに対するファイル/回線の呼び出し?
- 24. Nodejsで呼び出されたコマンドの出力を保存します。
- 25. コマンドでcmake 'make'を実行しても動作しません
- 26. 別のモジュールをインポートするか、既存の呼び出しを実装する
- 27. データベースwenの既存のレコードを確認するweb apiを呼び出す
- 28. Rコマンドでファイルに値を追加シェルコマンドを呼び出す
- 29. CMakeの呼び出しをうまく実行する
- 30. 既存のJSFunctionを呼び出すときのWKWebViewからのWKErrorDomainエラー4