# SPDX-License-Identifier: Apache-2.0 # NB: This could be dangerous to execute. macro(print_usage) message(" usage: cmake -DBINARY_DIR= -DSOURCE_DIR= -P ${CMAKE_SCRIPT_MODE_FILE} mandatory arguments: -DBINARY_DIR=: Absolute path to the build directory to pristine -DSOURCE_DIR=: Absolute path to the source directory used when creating ") # Making the usage itself a fatal error messes up the formatting when printing. message(FATAL_ERROR "") endmacro() if(NOT DEFINED BINARY_DIR OR NOT DEFINED SOURCE_DIR) print_usage() endif() if(NOT IS_ABSOLUTE ${BINARY_DIR} OR NOT IS_ABSOLUTE ${SOURCE_DIR}) print_usage() endif() get_filename_component(BINARY_DIR ${BINARY_DIR} REALPATH) get_filename_component(SOURCE_DIR ${SOURCE_DIR} REALPATH) string(FIND ${SOURCE_DIR} ${BINARY_DIR} INDEX) if(NOT INDEX EQUAL -1) message(FATAL_ERROR "Refusing to run pristine in in-source build folder.") endif() file(GLOB build_dir_contents ${BINARY_DIR}/*) foreach(file ${build_dir_contents}) if (EXISTS ${file}) file(REMOVE_RECURSE ${file}) endif() endforeach(file)