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
...
)