由于CMake不提供“ cmake clean”之类的命令。因此,我们必须编写自己的自定义命令方式以进行清理。
我在Linux平台上有以下命令('cmake distclean')。
add_custom_command(
COMMENT "distribution clean"
COMMAND make
ARGS -C ${CMAKE_CURRENT_BINARY_DIR} clean
COMMAND find
ARGS ${CMAKE_CURRENT_BINARY_DIR} -name "CMakeCache.txt" | xargs rm -rf
COMMAND find
ARGS ${CMAKE_CURRENT_BINARY_DIR} -name "CMakeFiles" | xargs rm -rf
COMMAND find
ARGS ${CMAKE_CURRENT_BINARY_DIR} -name "Makefile" | xargs rm -rf
TARGET distclean
)
我试图在Windows上做的同样的事情,但没有成功。
add_custom_command(
COMMENT "distribution clean"
COMMAND nmake
ARGS -C ${CMAKE_CURRENT_BINARY_DIR} clean
FOR /F %k in
'COMMAND dir ARGS ${CMAKE_CURRENT_BINARY_DIR} /s /b "CMakeCache.txt"' DO rmdir /s /q %k
FOR /F %k in
'COMMAND dir ARGS ${CMAKE_CURRENT_BINARY_DIR} /s /b "CMakeFiles"' DO rmdir /s /q %k
FOR /F %k in
'COMMAND dir ARGS ${CMAKE_CURRENT_BINARY_DIR} /s /b "Makefile"' DO rmdir /s /q %k
TARGET distclean
)
还有其他选择吗?以及如何在CMake中使用Windows命令,或者像在Linux中一样如何在CMakeLists.txt
中使用?