我正在使用 CMake 编译和测试 C++ 项目。假设我有这样的结构:
inc/
..
src/
..
data/
dataFile
文件dataFile
是从代码访问的,将安装在<prefix>/share
或类似的目录下。在我的代码中,我执行以下操作:
std::ifstream dataFile(DATAFILE_PATH);
我知道我可以DATAFILE_PATH
使用 CMake 进行配置(使用标头模板,或编译选项,或任何东西),所以我不必直接在我的代码中硬编码文件路径。另外,我知道如何将文件安装到安装树,并且可以复制文件以将文件复制到构建树,例如运行测试或简单地从构建树运行可执行文件。
我的问题是,我应该如何配置 CMake,或者我的 C++ 代码,以便我可以编译我的程序并从构建树(访问构建树dataFile
中的副本)和安装树(访问dataFile
安装的副本<prefix>/share
)运行和测试它?在 CMake 中实现了我缺少的任何模式或技术吗?
谢谢。