5
我想知道是否有某种方法可以防止cmake中的make clean
重新构建外部依赖关系。我使用ExternalProject
来构建第三方C++库,即使我做了make clean
也不需要重建它们。cmake - 防止`清理`清洗ExternalProject
另一方面,我可能想创建一个新规则,例如make really-clean
,它甚至可以清除依赖关系。有没有一个很好的方法来做到这一点?
谢谢。
我想知道是否有某种方法可以防止cmake中的make clean
重新构建外部依赖关系。我使用ExternalProject
来构建第三方C++库,即使我做了make clean
也不需要重建它们。cmake - 防止`清理`清洗ExternalProject
另一方面,我可能想创建一个新规则,例如make really-clean
,它甚至可以清除依赖关系。有没有一个很好的方法来做到这一点?
谢谢。
我假设您使用ADD_CUSTOM_COMMAND或ADD_LIBRARY或其他ADD_ *来创建依赖文件。
如果您ExternalProject
有它自己的目录,你可以把CMakeLists.txt
在该目录中,你可以很容易把以下在CMakeLists.txt
:
SET_DIRECTORY_PROPERTIES(PROPERTIES CLEAN_NO_CUSTOM 1)
因此,那些依赖文件将不会得到清理。
如果不是,您可能需要避免将外部依赖项作为输出文件。 例如,如果您使用
ADD_CUSTOM_COMMAND(OUTPUT libdep
COMMAND dep_gen_cmd
....
)
ADD_CUSTOM_COMMAND(OUTPUT prj
....
DEPENDS libdep
)
,那么你需要将其更改为:
ADD_CUSTOM_TARGET(libdep_gen
COMMAND dep_gen_cmd
...
)
ADD_CUSTOM_COMMAND(OUTPUT prj
COMMAND test -e libdep || make libdep_gen
...
)