CMake & "PATH" Variables



在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的第一次运行。

您的命令是正确的。

然而,似乎要改变变量的类型,您需要关闭cmake-gui.exe,从CMakeCache.txt中删除变量(或删除整个文件),然后重新打开cmake-gui.exe

另一种可能性是您在STRING类型之前设置与CC_4类型相同的值(在这种情况下保留第一个类型):

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")

最新更新