我正在尝试execute_process
cmake
中的execute_process(COMMAND ${CMAKE_COMMAND} -P myScript.cmake
myScript.cmake
仅当文件cmake
位于同一工作目录中时才有效。
三个相关问题:
.cmake
是否有标准位置来查找cmake
脚本? cmake
变量来告诉-P ${PATH_VAR}/myScript.cmake
在哪里看?或答案 0 :(得分:5)
cmake
是否有标准位置来查找.cmake
脚本?
对于execute_process
,没有。 find_XXX
命令(例如find_file
)和include
可以做到。
我是否可以定义
cmake
变量来告诉cmake
在哪里查看?
同样,对于execute_process
,没有。对于find_xxx
或include
,您可以设置变量CMAKE_MODULE_PATH
。
我是否应该始终提供脚本的完整路径(即
-P ${PATH_VAR}/myScript.cmake
)?
这是一个不错的选择;通过一条完整的道路没有留下不确定的余地。但是,你也可以逃避相对路径。 execute_process
的默认工作目录是CMAKE_BINARY_DIR
,因此您可以将路径传递给相对于该脚本的脚本。
或者,您可以将WORKING_DIRECTORY
调用中的execute_process
指定为完整路径或相对于CMAKE_BINARY_DIR
。
如果您觉得您的脚本位于标准位置,您可以考虑先使用find_file
调用“查找”它。如果找到,这将产生脚本的完整路径,并且该变量可以在execute_process
调用中使用。