次のようなコンストラクターを持つ C++ クラスを作成しています。
MyClass(const std::string& config_file);
つまり、オブジェクトをインスタンス化するときに、構成ファイルをコンストラクターに渡す必要があります。プロジェクトの一環として、おそらく ~ 90% のケースで使用されるデフォルトの構成ファイルを作成し、人々が私のクラスを次のように使用できるようにしたいと考えています。
MyClass myInstance(DEFAULT_CONFIG_FILE);
つまり、「DEFAULT_CONFIG_FILE」というシンボルが、プロジェクトの一部として作成した構成ファイルのパスを指すようにします。しかし、問題は、人々が実際にライブラリをどこにインストールするのか見当がつかないことです。ここに(CMake ??)トリック/ベストプラクティスはありますか?
私は次のようなことができると思います
set( DEFAULT_CONFIG_FILE ${CMAKE_INSTALL_PREFIX}/share/app/default_config.json)
しかし、それでは build ディレクトリでは動作しません?!
ヨアキム