diff --git a/cmake/app/boilerplate.cmake b/cmake/app/boilerplate.cmake index 0bc1a3f499..160648d6d0 100644 --- a/cmake/app/boilerplate.cmake +++ b/cmake/app/boilerplate.cmake @@ -105,6 +105,18 @@ add_custom_target( # Equivalent to rm -rf build/* ) +# Must be run before kconfig.cmake +if(MSYS) + execute_process( + COMMAND + ${PYTHON_EXECUTABLE} $ENV{ZEPHYR_BASE}/scripts/check_host_is_ok.py + RESULT_VARIABLE ret + ) + if(NOT "${ret}" STREQUAL "0") + message(FATAL_ERROR "command failed with return code: ${ret}") + endif() +endif() + # The BOARD can be set by 3 sources. Through environment variables, # through the cmake CLI, and through CMakeLists.txt. # diff --git a/scripts/check_host_is_ok.py b/scripts/check_host_is_ok.py new file mode 100644 index 0000000000..89dc48f42f --- /dev/null +++ b/scripts/check_host_is_ok.py @@ -0,0 +1,16 @@ +import os + + +def crash_if_zephyr_was_cloned_with_wrong_line_endings(): + f = open('{}/Kconfig'.format(os.environ["ZEPHYR_BASE"]), 'U') + f.readline() + + error_msg = "Re-clone with autocrlf false. $ git config --global core.autocrlf false" + + assert f.newlines == '\n', error_msg + +def main(): + crash_if_zephyr_was_cloned_with_wrong_line_endings() + +if __name__ == "__main__": + main()