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 如何在运行find_包之前定义依赖项以设置包_Cmake_Cpack - Fatal编程技术网

Cmake 如何在运行find_包之前定义依赖项以设置包

Cmake 如何在运行find_包之前定义依赖项以设置包,cmake,cpack,Cmake,Cpack,这对于一个基本的CMake来说是不寻常的,但对于包含多个单独组件的大型项目可能很有用。假设有人使用CPack创建了一个二进制blob,并附带适当的Find*.cmake规则。现在,我们希望在调用相应的find\u包之前自动扩展此存档。如果包没有过时,则无需解压缩归档文件。鉴于find\u package是配置时间,而任何自定义目标都是构建时间,我们如何实现这样的场景?不确定您是否理解这个问题。您可以使用execute\u process在配置时立即运行命令。将execute\u process放

这对于一个基本的CMake来说是不寻常的,但对于包含多个单独组件的大型项目可能很有用。假设有人使用CPack创建了一个二进制blob,并附带适当的
Find*.cmake
规则。现在,我们希望在调用相应的
find\u包之前自动扩展此存档。如果包没有过时,则无需解压缩归档文件。鉴于
find\u package
是配置时间,而任何自定义目标都是构建时间,我们如何实现这样的场景?

不确定您是否理解这个问题。您可以使用
execute\u process
在配置时立即运行命令。将
execute\u process
放在
find\u package
之前,您可以确保在处理
find\u package
之前完成这些命令。您是对的,但这将始终执行,不仅是在存档过期时?是,每次配置项目时,都会执行
execute\u process
中的命令。您当前形式的问题帖子没有声明您希望有条件地提取存档。您能否更新问题以反映您的实际需求?好的,更新的问题。在配置时,CMake不使用依赖项检查来确定是否需要执行某些操作。因此,您需要手动执行此类检查。它可能是,那将是有用的。或者,您可以创建额外的CMake项目,这将指导更新文件,并在
execute\u process
中构建此项目。