Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.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_Conan - Fatal编程技术网

Cmake 存储库清理

Cmake 存储库清理,cmake,conan,Cmake,Conan,我正在为我的CMake项目添加柯南支持。我遵循了教程,最终得到了预期的软件包。在浏览本地存储库文件夹时,我发现我的源文件被复制到3个不同的文件夹中(source、build和export\u source),因此即使是小项目,repo也在快速增长 是否有一种方法可以在包创建后清理源重复的存储库文件夹(仅保留“从源生成依赖项”所需的文件夹) 当然,您可以使用conan remove命令从缓存中删除内容。在这种情况下,您可能需要执行以下操作: conan remove "*" -s -b -f

我正在为我的CMake项目添加柯南支持。我遵循了教程,最终得到了预期的软件包。在浏览本地存储库文件夹时,我发现我的源文件被复制到3个不同的文件夹中(
source
build
export\u source
),因此即使是小项目,repo也在快速增长


是否有一种方法可以在包创建后清理源重复的存储库文件夹(仅保留“从源生成依赖项”所需的文件夹)

当然,您可以使用
conan remove
命令从缓存中删除内容。在这种情况下,您可能需要执行以下操作:

conan remove "*" -s -b -f
  • *
    以匹配本地缓存中的所有包
  • -s
    删除源文件夹
  • -b
    删除生成文件夹
  • -f
    不要求确认

无法删除与conanfile.py一起存储在缓存中的源文件,因为它们与conanfile一起存储,以便在
conan安装--build
完成时能够从源文件重建。

谢谢drodri!你知道从conanafile.py中是否还有一种编程方式可以做到这一点吗?不,这是不可能的,即使配方可以访问
self.source\u文件夹
self.build\u文件夹
,等等,它也会违反所有解耦和并发性,例如,如果你并行构建同一个包的多个配置(例如调试/发布),其中一个决定删除源文件夹,那么它将与另一个仍在生成和使用该源文件夹的文件夹发生冲突。即使不进行并行安装,如果需要按顺序生成不同的配置,它们的速度也会慢得多。如果需要,可以使用
no\u copy\u source
避免一个源文件夹的复制。