あなたはそれに慣れている場合、あなたはおそらく、絶対パスを使用して同じコマンドを使用することができます。
configure_file(${CMAKE_BINARY_DIR}/<path>/<input> ${CMAKE_SOURCE_DIR}/<path>/<output> COPYONLY)
CMAKE_BINARY_DIR
は次のとおりです。
[...]トップへのフルパス現在のCMakeビルドツリーのレベル。
CMAKE_SOURCE_DIR
はあるが:
[...]現在CMakeのソースツリーの最上位レベルへのフルパス。
それ以外の場合は、それらを直接使用して、彼らは相対パスがあるだけのカスタム方法<input>
と<output>
でdocumentation、configure_file
扱いによります。他の点で
:
あなたが使用できる別の可能なアプローチはfile
コマンドとその(私は言わせて)COPY
バージョンに依存することです。ドキュメントから:
COPY署名は、ファイル、ディレクトリ、およびシンボリックリンクをコピー先のフォルダにコピーします。相対入力パスは現在のソースディレクトリに対して評価され、相対的な出力先は現在のビルドディレクトリに対して評価されます。コピーすると、入力ファイルのタイムスタンプが保存され、同じタイムスタンプの出力先にファイルが存在する場合、そのファイルが最適化されます。明示的なアクセス許可またはNO_SOURCE_PERMISSIONSが指定されていない限り、コピーは入力許可を保持します(デフォルトはUSE_SOURCE_PERMISSIONS)。
絶対パスはconfigure_file
と同じように直接使用できますが、それらはそのままです。相対パスは、通常cmake
で発生するのとは異なる方法で扱われます。
ありがとうございました。それは絶対pathesと動作します。見つからない唯一のことは、qtcreatorがファイルを今リストしていないことです。 BTW:同時に2つの 'configure_file'ステートメントを両方向(source-> buildとbuild-> source)でコピーするのは悪い考えです。 – Sadik
なぜそれは悪い考えですか?とにかく私はあなたが使用できるもう一つの可能な解決法を答えに加えています。 – skypjack
申し訳ありませんが、私は間違っていました。 QtCreatorがクラッシュしましたが、別の理由があったと思います。 2回目の 'configure_file'文でもう一度試してみましたが、今度はファイルが更新され、qtcreatorにリストされています。 – Sadik