cmake: Give descriptive error to user when cloned with core.autocrlf

Windows users have on multiple occasions cloned Zephyr using a Windows
git client. It seems that the windows git client defaults to
converting line endings from LF to CRLF when cloning repo's. This
breaks at least one of Zephyr's tools (Kconfig).

This patch introduces a sanity check of the environment for MSYS
users.

Signed-off-by: Sebastian Bøe <sebastian.boe@nordicsemi.no>
This commit is contained in:
Sebastian Bøe 2018-01-04 17:36:02 +01:00 committed by Anas Nashif
commit c6f367d251
2 changed files with 28 additions and 0 deletions

View file

@ -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.
#

View file

@ -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()