CMake を使用して C++ プロジェクトをコンパイルおよびテストしています。次のような構造があるとしましょう。
inc/
..
src/
..
data/
dataFile
ファイルdataFile
はコードからアクセスされ、<prefix>/share
または類似の下にインストールされます。私のコードでは、次のようなことを行います。
std::ifstream dataFile(DATAFILE_PATH);
CMake を使用して (ヘッダー テンプレート、コンパイル オプションなどを使用して)構成できることがわかっDATAFILE_PATH
たので、コードにファイル パスを直接ハードコーディングする必要はありません。また、ファイルをインストール ツリーにインストールする方法と、ファイルをコピーしてファイルをビルド ツリーにコピーできることも知っています。たとえば、テストを実行したり、単にビルド ツリーから実行可能ファイルを実行したりできます。
dataFile
私の質問は、プログラムをコンパイルし、ビルド ツリー (ビルドツリー内のコピーにアクセス)およびインストール ツリー (インストールされたdataFile
コピーにアクセス)からプログラムをコンパイルして実行およびテストできるように、CMake または私の C++ コードをどのように構成すればよいかということ<prefix>/share
です。私が見逃している CMake に実装されているパターンやテクニックはありますか?
ありがとう。