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:
parent
671514fc59
commit
c6f367d251
2 changed files with 28 additions and 0 deletions
|
@ -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.
|
||||
#
|
||||
|
|
16
scripts/check_host_is_ok.py
Normal file
16
scripts/check_host_is_ok.py
Normal 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()
|
Loading…
Add table
Add a link
Reference in a new issue