CMake& “路径”变量

时间:2013-05-11 12:30:27

标签: cmake

在CMake中,如何定义一个PATH类型的缓存变量(在Windows cmake-gui.exe中)给我一个小的“...”按钮来获取弹出对话框?现在,我使用的语法如下:

SET(LIBRARY_INCLUDE_DIR "something" CACHE PATH "Location of libraries")

但它似乎把它当作一个字符串。

更新:

这是一个明确的例子:

IF(EIGEN_DIR)
    SET(EIGEN_INCLUDE_DIRS ${EIGEN_DIR} CACHE PATH "Location of the Eigen include files")
ELSE()
    SET(EIGEN_INCLUDE_DIRS "" CACHE path "Location of the Eigen include files")
ENDIF(EIGEN_DIR)

EIGEN_INCLUDE_DIRS即使在新的首次运行cmake时也会成为一个字符串。

1 个答案:

答案 0 :(得分:2)

你的命令是正确的。

但是,看来要更改变量的类型,需要关闭cmake-gui.exe,从CMakeCache.txt中删除变量(或删除整个文件),然后重新打开cmake-gui.exe

另一种可能性是set STRING类型之前的SET(LIBRARY_INCLUDE_DIR "something" CACHE STRING "Location of libraries") SET(LIBRARY_INCLUDE_DIR "something" CACHE PATH "Location of libraries") 值相同(在这种情况下保留第一种类型):

unset

或者您set稍后使用相同的值,SET(LIBRARY_INCLUDE_DIR "something" CACHE PATH "Location of libraries") UNSET(LIBRARY_INCLUDE_DIR CACHE) SET(LIBRARY_INCLUDE_DIR "something" CACHE STRING "Location of libraries") 将其更改为其他类型:

{{1}}