From ccc0959e61831fa85d33d69bc9d34190c0deb1c9 Mon Sep 17 00:00:00 2001 From: Amine Khaldi Date: Sun, 1 Apr 2012 11:43:24 +0000 Subject: [PATCH] [CMAKE] * Implement the _clean targets for the ninja generator. svn path=/trunk/; revision=56299 --- reactos/cmake/CMakeMacros.cmake | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/reactos/cmake/CMakeMacros.cmake b/reactos/cmake/CMakeMacros.cmake index c87ea42dc91..24940a0cb44 100644 --- a/reactos/cmake/CMakeMacros.cmake +++ b/reactos/cmake/CMakeMacros.cmake @@ -222,16 +222,20 @@ function(add_cd_file) endfunction() # Create module_clean targets -function(add_clean_target target) - if(CMAKE_GENERATOR MATCHES "Unix Makefiles" OR CMAKE_GENERATOR MATCHES "MinGW Makefiles") - set(CLEAN_COMMAND make clean) - elseif(CMAKE_GENERATOR MATCHES "NMake Makefiles") - set(CLEAN_COMMAND nmake /nologo clean) +function(add_clean_target _target) + set(_clean_working_directory ${CMAKE_CURRENT_BINARY_DIR}) + if(CMAKE_GENERATOR STREQUAL "Unix Makefiles" OR CMAKE_GENERATOR STREQUAL "MinGW Makefiles") + set(_clean_command make clean) + elseif(CMAKE_GENERATOR STREQUAL "NMake Makefiles") + set(_clean_command nmake /nologo clean) + elseif(CMAKE_GENERATOR STREQUAL "Ninja") + set(_clean_command ninja -t clean ${_target}) + set(_clean_working_directory ${REACTOS_BINARY_DIR}) endif() - add_custom_target(${target}_clean - COMMAND ${CLEAN_COMMAND} - WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} - COMMENT "Cleaning ${target}") + add_custom_target(${_target}_clean + COMMAND ${_clean_command} + WORKING_DIRECTORY ${_clean_working_directory} + COMMENT "Cleaning ${_target}") endfunction() if(NOT MSVC_IDE)