diff options
author | Stanislaw Halik <sthalik@misaki.pl> | 2016-09-11 08:32:15 +0200 |
---|---|---|
committer | Stanislaw Halik <sthalik@misaki.pl> | 2016-09-11 08:32:15 +0200 |
commit | 2805768229898fa3802ceb6ef5585c2c0b973759 (patch) | |
tree | 13358009d9947d2b0daf23ce2f9a506a0d78a3ec /cmake | |
parent | f6d0fa8ad07739b5c2994e51e3d26a51c874f13f (diff) |
cmake: add mrproper target
Diffstat (limited to 'cmake')
-rw-r--r-- | cmake/opentrack-clean-build-directory.cmake | 48 |
1 files changed, 48 insertions, 0 deletions
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()
|