Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
cmake在哪里查找.cmake脚本?_Cmake - Fatal编程技术网

cmake在哪里查找.cmake脚本?

cmake在哪里查找.cmake脚本?,cmake,Cmake,我正试图像这样在cmake中执行\u进程 execute_process(COMMAND ${CMAKE_COMMAND} -P myScript.cmake 只有当文件myScript.cmake位于同一工作目录中时,此选项才有效 三个相关问题: cmake是否有标准位置可查找.cmake脚本 我是否可以定义cmake变量来告诉cmake在哪里查找?或 我是否应该始终提供脚本的完整路径(即,-P${path\u VAR}/myScript.cmake) cmake是否有标准位置可查找.cma

我正试图像这样在
cmake
执行\u进程

execute_process(COMMAND ${CMAKE_COMMAND} -P myScript.cmake
只有当文件
myScript.cmake
位于同一工作目录中时,此选项才有效

三个相关问题:

  • cmake
    是否有标准位置可查找
    .cmake
    脚本
  • 我是否可以定义
    cmake
    变量来告诉
    cmake
    在哪里查找?或
  • 我是否应该始终提供脚本的完整路径(即,
    -P${path\u VAR}/myScript.cmake
  • cmake
    是否有标准位置可查找
    .cmake
    脚本

    对于,否。
    find_XXX
    命令(例如)并执行


    我是否可以定义
    cmake
    变量来告诉
    cmake
    在哪里查找

    同样,对于
    execute\u process
    ,编号。对于
    find\u xxx
    include
    ,您可以设置变量


    我是否应该始终提供脚本的完整路径(即,
    -p${path\u VAR}/myScript.cmake

    这是一个很好的选择;走过一条完整的道路不会留下任何不确定的余地。但是,您也可以使用相对路径。
    execute\u进程
    的默认工作目录是,因此您可以传递相对于该进程的脚本路径

    或者,您可以在
    execute\u进程
    调用中将
    WORKING\u目录
    指定为完整路径或相对于
    CMAKE\u BINARY\u目录


    <>如果你觉得你的脚本在一个标准的位置,你可以考虑首先使用调用<代码> FIDX文件来查找它。如果找到,这将生成脚本的完整路径,该变量可用于
    execute\u进程
    调用。

    CMAKE\u模块\u路径,尽管您仍然需要调用include(myScript)。@StAlphonzo
    include(myScript)
    类似于调用
    execute\u进程,如图所示,但并不相同。使用
    include
    几乎就像将
    myScript.cmake
    的内容粘贴到调用的CMakeLists.txt中一样-此时您可以访问所有环境和变量。调用
    execute\u process
    会启动一个全新的CMake进程,该进程没有设置调用脚本的任何变量。CMake确实有标准的位置可供查找
    。CMake
    脚本:@VictorL-好吧,问题是专门询问
    execute\u process
    ,在这种情况下,我的原始答案是正确的。但是,我可以看到标题留下了一些模棱两可的地方,因此我更新了我的答案,以涵盖
    include
    find_xxx
    命令。