Поскольку CMake не предоставляет такую команду, как 'cmake clean'.Таким образом, мы должны написать свой собственный способ пользовательской команды для clean.
У меня есть следующая команда ('cmake distclean') для платформы linux.
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
)
Есть ли альтернативы, чтобы сделать?А как использовать команду Windows в CMake или как мы можем использовать в CMakeLists.txt
, как в Linux?