向我的CMake脚本提供库路径等外部信息(即BOOST_ROOT)的最佳方法是什么,所以我不必在脚本文件中对它们进行硬编码或者使用环境变量使我的系统混乱? / p>
我只能想到一个用户配置文件,其中所有路径和附加变量都存储为CMake变量,然后由CMake包含。还有什么比这更好的还是这样的方式?
答案 0 :(得分:1)
您列出了几乎所有选项。
我个人喜欢为用户提供两种机制来提供查找脚本的路径,一种是通过环境变量,一种是通过CMake变量:
find_library(FOO_LIB foo PATHS $ENV{FOO_PATH} ${FOO_PATH})
现在用户可以决定:如果他们更喜欢环境变量,他们会在环境中设置FOO_PATH
。如果他们更喜欢配置文件,他们可以在那里存储路径并通过命令行将其传递给CMake:
cmake -DFOO_PATH=/path/to/foo ../path/to/source
如果他们更喜欢使用CMake GUI,他们可以在那里创建FOO_PATH
变量。
这是一种为用户提供最大灵活性的简单机制。