我正在使用 scons 为一个较大的软件项目实现构建系统。有一个目录结构将各个库和程序的代码分离到它们自己的目录中。使用我们现有的 make 系统,我可以在单个程序目录中执行“make clean”,它只会清除与该目录中的源关联的文件。但是,如果我执行“scons -c”,它会识别出该程序依赖于同级(或堂兄弟)目录中的大量库,并且也会清除这些库的所有文件。这不是我想要的,因为我必须重建所有这些库,这可能需要几分钟时间。
我试过使用“NoClean()”命令,但没有让它按照我需要的方式工作。考虑到代码库的大小和目录结构的复杂性,我不可能为每个库中的每个文件都设置一个 NoClean() 行。
有什么方法可以告诉 scons 在执行清理时忽略当前目录之上的任何依赖项(即 scons -c)?
最佳答案
我很想自己对此有一个好的答案。
目前我能提供的唯一解决方案是让 Noclean 正常工作。 所以在你的图书馆里,你应该有这样的东西
lib_objs = SharedObject(source_list)
mylib = SharedLibrary('libname', lib_objs)
为此,我们希望保护库和源不被清理。
NoClean([mylib, lib_objs])
请注意,我必须将目标文件的构建与库分开,因为我也希望能够将它们传递给 NoClean。
关于scons - 如何防止 scons 清理父目录和同级目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19573166/