如何在CMake(CMakeLists.txt)中使用Windows命令?

时间:2019-03-08 09:02:27

标签: linux windows cmake

由于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中使用?

0 个答案:

没有答案