システムに関する構成情報を収集するために、実行時にいくつかの XML ファイルを開く必要がある C++ プログラムがあります。私は CMake を使用してビルドと展開 (RPM) を管理しており、これらの XML ファイルのインストールを処理し、実行時にプログラムがそれらを見つけられるようにする最も洗練された方法を見つけようとしています。
理想的には、このソリューションは次のことを行います。
1) XML ファイルがソース ディレクトリに存在するビルド場所 (テスト/デバッグ モード用) からプログラムを実行できるようにします。
2) プログラムが /usr または /usr/local (またはその他) にインストールされると、XML ファイルは /usr/share/somePath/ConfigFiles/ にインストールされ、プログラムはそこでそれらを探すことを認識します。
私の現在の解決策は、XML ファイルのソース パスとインストール パス (/usr/share/...) を定義する config.h.in ファイルを作成することです。プログラムが実行されると、1 つのディレクトリがチェックされ、次に別のディレクトリがチェックされます。プログラムが「make install」が実行されたかどうかを認識し、両方の場所をチェックすることなく、それらを見つける場所を正確に知ることができるように、これを処理するより良い方法はありますか?