[解決済み】CMakeでソースディレクトリからバイナリディレクトリにファイルをコピーする
2022-02-07 22:40:27
質問
CLionで簡単なプロジェクトを作ろうとしています。これは、プロジェクト(またはそれのいくつかの並べ替え)を構築するためにMakefileを生成するためにCMake(私はここで新しいです)を使用します。
私が必要とするのは、私のコードを実行するたびに、プロジェクト以外のファイル(リソースファイルのようなもの)をバイナリディレクトリに転送することだけです。
そのファイルにはテストデータが入っていて、アプリケーションはそれを開いて読みます。いくつかの方法を試してみました。
-
Via
file(COPY ...
file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/input.txt DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/input.txt
良い感じですが、一度だけ動作して、次回実行時にファイルを再コピーしないようにしてください。
-
経由
add_custom_command
-
OUTPUT
バージョンadd_custom_command( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/input.txt COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/input.txt ${CMAKE_CURRENT_BINARY_DIR}/input.txt)
-
TARGET
バージョンadd_custom_target(foo) add_custom_command( TARGET foo COMMAND ${CMAKE_COMMAND} copy ${CMAKE_CURRENT_BINARY_DIR}/test/input.txt ${CMAKE_SOURCE_DIR})
しかし、どれもうまくいきません。
-
私は何を間違えているのでしょうか?
どうすればいいですか?
を使用することを検討してください。
configure_file
と一緒に
COPYONLY
オプションで指定します。
configure_file(<input> <output> COPYONLY)
とは異なり
file(COPY ...)
は、入力と出力の間にファイルレベルの依存関係を作ってしまう、ということです。
入力ファイルが変更された場合、ビルドシステムは CMake を再実行してファイルを再設定し、ビルドシステムを再度生成します。
関連
-
[解決済み】CMakeでソースディレクトリからバイナリディレクトリにファイルをコピーする
-
[解決済み] CMake の add_definitions が動作しないようです。
-
[解決済み] CMake でモジュールディレクトリが見つからない
-
[解決済み] CMAKE_SOURCE_DIRはどこですか?
-
[解決済み] cmakeのincludeコマンドにおいて、ファイルとモジュールの違いは何ですか?
-
[解決済み] CMakeのオプション()をコマンドラインで設定する方法
-
[解決済み] cmake --verbose=1` は冗長なcmake出力をしますが、`cmake -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON` はそうならないのはなぜですか?
-
[解決済み】CMakeをGNU Makeと一緒に使う:正確なコマンドを見るにはどうすればいい?
-
[解決済み】CMake:スクリプト内のアクセス可能なすべての変数を出力する
-
[解決済み】変数を設定・使用するCMakeの構文とは?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】CMakeでソースディレクトリからバイナリディレクトリにファイルをコピーする
-
[解決済み] CMakeは "make uninstall "をサポートしていますか?
-
[解決済み] プロジェクトでCMAKE_CXX_FLAGSを変更する
-
[解決済み] CMake でモジュールディレクトリが見つからない
-
[解決済み] CMakeでポータブルパラレルビルドを設定するには?
-
[解決済み] cmakeのincludeコマンドにおいて、ファイルとモジュールの違いは何ですか?
-
[解決済み] CMakeのオプション()をコマンドラインで設定する方法
-
[解決済み] cmake --verbose=1` は冗長なcmake出力をしますが、`cmake -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON` はそうならないのはなぜですか?
-
[解決済み】CMake:スクリプト内のアクセス可能なすべての変数を出力する
-
[解決済み】CMakeは具体的にどのように動作するのですか?