From 2805768229898fa3802ceb6ef5585c2c0b973759 Mon Sep 17 00:00:00 2001 From: Stanislaw Halik Date: Sun, 11 Sep 2016 08:32:15 +0200 Subject: cmake: add mrproper target --- cmake/opentrack-clean-build-directory.cmake | 48 +++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 cmake/opentrack-clean-build-directory.cmake (limited to 'cmake') diff --git a/cmake/opentrack-clean-build-directory.cmake b/cmake/opentrack-clean-build-directory.cmake new file mode 100644 index 00000000..13c3c282 --- /dev/null +++ b/cmake/opentrack-clean-build-directory.cmake @@ -0,0 +1,48 @@ +function(cleanup_install_dir) + if(NOT $ENV{USERNAME} STREQUAL "sthalik") + message(WARNING "you can't run this potentially destructive function") + message(FATAL_ERROR "if you're sure, remove this line") + endif() + + file(GLOB_RECURSE files LIST_DIRECTORIES TRUE RELATIVE "${CMAKE_BINARY_DIR}" "*") + + set(files_ "") + + set(got-install FALSE) + set(got-install-file FALSE) + set(got-cache FALSE) + + foreach(i ${files}) + if (i STREQUAL "install") + set(got-install TRUE) + continue() + endif() + + string(FIND "${i}" "install/" pos) + + if(pos GREATER -1) + set(got-install-file TRUE) + continue() + endif() + + if(i STREQUAL "CMakeCache.txt") + set(got-cache TRUE) + continue() + endif() + + list(APPEND files_ "${CMAKE_BINARY_DIR}/${i}") + endforeach() + + unset(files) + + if(NOT got-cache OR NOT got-install OR NOT got-install-file) + message(FATAL_ERROR "") + endif() + + # let's hope nothing bad happens + file(REMOVE_RECURSE ${files_}) + + execute_process(COMMAND cmake . WORKING_DIRECTORY "${CMAKE_BINARY_DIR}" OUTPUT_QUIET) +endfunction() + +cleanup_install_dir() -- cgit v1.2.3