告诉CMake在非默认位置找到(n)诅咒的正确方法吗?

时间:2015-06-23 14:24:30

标签: macos cmake

我有一个使用FindCurses.cmake的CMake项目。我在操作系统X上,操作系统附带了旧版本的ncurses(并且似乎不包含C ++绑定),而我尝试构建的代码需要ncurses 5.9。我使用自制软件来安装5.9,但是像一个好邻居一样,自制软件不会覆盖操作系统附带的curses / ncurses资源(我也不想这样做。)

我的直觉是,这是我应该能够在不编辑CMake文件的情况下做的事情,对吧? (因为行为的这种变化特定于我的构建环境,并且不会改变项目本身,对吧?)对于autoconf项目,我可能会在运行之前添加CFLAGSLDFLAGS个环境变量./configure,但CMake似乎还有很多事情要发生。

在CMake中执行此操作的惯用方法是什么?

2 个答案:

答案 0 :(得分:1)

您可以通过CMAKE_PREFIX_PATH提供其他搜索路径。 首先搜索CMAKE_PREFIX_PATH内的路径。

您可以在CMakeLists.txt文件中指定CMAKE_PREFIX_PATH硬编码,或者最好通过以下方式指定:

cmake -D CMAKE_PREFIX_PATH=/path/where/brew/installed/curses .

答案 1 :(得分:1)

您可以添加指向ncurses版本的CMakeLists.txt include_directories和link_directories。

另外我会尝试查找ncurses 5.9是否有pkg-config模块。请参阅pkg-config --list-all。