如何将路径变量提供给 CMake?
How to feed path variables into CMake?
向我的 CMake 脚本提供库路径(即 BOOST_ROOT)等外部信息的最佳方式是什么,这样我就不必在我的脚本文件中对它们进行硬编码或使我的系统因环境变量而混乱?
我只能想到一个用户配置文件,其中所有路径和附加变量都存储为 CMake 变量,然后由 CMake 包含。还有什么比这更好的吗?或者这是要走的路吗?
您几乎列出了所有选项。
我个人喜欢提供两种机制让用户提供脚本查找路径,一种是通过环境变量,一种是通过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
变量。
这是一种简单的机制,可为用户提供最大的灵活性。
向我的 CMake 脚本提供库路径(即 BOOST_ROOT)等外部信息的最佳方式是什么,这样我就不必在我的脚本文件中对它们进行硬编码或使我的系统因环境变量而混乱?
我只能想到一个用户配置文件,其中所有路径和附加变量都存储为 CMake 变量,然后由 CMake 包含。还有什么比这更好的吗?或者这是要走的路吗?
您几乎列出了所有选项。
我个人喜欢提供两种机制让用户提供脚本查找路径,一种是通过环境变量,一种是通过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
变量。
这是一种简单的机制,可为用户提供最大的灵活性。