cmake在哪里寻找.cmake脚本?

jlc*_*lin 2 cmake

我想execute_processcmake这样的

execute_process(COMMAND ${CMAKE_COMMAND} -P myScript.cmake
Run Code Online (Sandbox Code Playgroud)

仅当文件myScript.cmake位于同一工作目录中时才有效.

三个相关问题:

  1. 是否cmake有标准位置来查找.cmake脚本?
  2. 有没有cmake我可以定义的变量来告诉cmake哪里看?要么
  3. 我应该总是给出脚本的完整路径(即-P ${PATH_VAR}/myScript.cmake)吗?

Fra*_*ser 6

是否cmake有标准位置来查找.cmake脚本?

execute_process,没有.该find_XXX命令(例如find_file)和include做虽然.


有没有cmake我可以定义的变量来告诉cmake哪里看?

再一次,因为execute_process,没有.对于find_xxxinclude,您可以设置变量CMAKE_MODULE_PATH.


我应该总是给出脚本的完整路径(即-P ${PATH_VAR}/myScript.cmake)吗?

这是一个不错的选择; 通过一条完整的道路没有留下不确定的余地.但是,你也可以逃避相对路径.默认的工作目录execute_processCMAKE_BINARY_DIR,因此您可以将路径传递给相对于该脚本的脚本.

或者,您可以WORKING_DIRECTORYexecute_process呼叫指定为完整路径或相对于CMAKE_BINARY_DIR.

如果您觉得您的脚本位于标准位置,您可以考虑首先使用调用来"查找"它find_file.如果找到,这将产生脚本的完整路径,并且该变量可以在您的execute_process调用中使用.