From d98934d56bdd3f6d8e80bf59bc1a32577cebb13d Mon Sep 17 00:00:00 2001 From: Angus Gratton Date: Mon, 9 Oct 2017 12:48:29 +1100 Subject: [PATCH] doc: Fix mentions of Cygwin-style paths to Unix-style Cygwin-style is really only /cygpath/xxx and IDF doesn't support these. Closes https://github.com/espressif/esp-idf/pull/1033 --- docs/get-started/eclipse-setup-windows.rst | 2 +- make/project.mk | 4 ++-- tools/windows/eclipse_make.py | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/get-started/eclipse-setup-windows.rst b/docs/get-started/eclipse-setup-windows.rst index 94ee30d342..a924d2dc7a 100644 --- a/docs/get-started/eclipse-setup-windows.rst +++ b/docs/get-started/eclipse-setup-windows.rst @@ -73,6 +73,6 @@ Technical Details Explanations of the technical reasons for some of these steps. You don't need to know this to use esp-idf with Eclipse on Windows, but it may be helpful background knowledge if you plan to do dig into the Eclipse support: -* The xtensa-esp32-elf-gcc cross-compiler is *not* a Cygwin toolchain, even though we tell Eclipse that it is one. This is because msys2 uses Cygwin and supports Cygwin paths (of the type ``/c/blah`` instead of ``c:/blah`` or ``c:\\blah``). In particular, xtensa-esp32-elf-gcc reports to the Eclipse "built-in compiler settings" function that its built-in include directories are all under ``/usr/``, which is a Unix/Cygwin-style path that Eclipse otherwise can't resolve. By telling Eclipse the compiler is Cygwin, it resolves these paths internally using the ``cygpath`` utility. +* The xtensa-esp32-elf-gcc cross-compiler is *not* a Cygwin toolchain, even though we tell Eclipse that it is one. This is because msys2 uses Cygwin and supports Unix-style paths (of the type ``/c/blah`` instead of ``c:/blah`` or ``c:\\blah``). In particular, xtensa-esp32-elf-gcc reports to the Eclipse "built-in compiler settings" function that its built-in include directories are all under ``/usr/``, which is a Unix/Cygwin-style path that Eclipse otherwise can't resolve. By telling Eclipse the compiler is Cygwin, it resolves these paths internally using the ``cygpath`` utility. * The same problem occurs when parsing make output from esp-idf. Eclipse parses this output to find header directories, but it can't resolve include directories of the form ``/c/blah`` without using ``cygpath``. There is a heuristic that Eclipse Build Output Parser uses to determine whether it should call ``cygpath``, but for currently unknown reasons the esp-idf configuration doesn't trigger it. For this reason, the ``eclipse_make.py`` wrapper script is used to call ``make`` and then use ``cygpath`` to process the output for Eclipse. diff --git a/make/project.mk b/make/project.mk index a12132c9fc..11d1c977de 100644 --- a/make/project.mk +++ b/make/project.mk @@ -60,7 +60,7 @@ OS ?= # make IDF_PATH a "real" absolute path # * works around the case where a shell character is embedded in the environment variable value. -# * changes Windows-style C:/blah/ paths to MSYS/Cygwin style /c/blah +# * changes Windows-style C:/blah/ paths to MSYS style /c/blah ifeq ("$(OS)","Windows_NT") # On Windows MSYS2, make wildcard function returns empty string for paths of form /xyz # where /xyz is a directory inside the MSYS root - so we don't use it. @@ -85,7 +85,7 @@ $(error If IDF_PATH is overriden on command line, it must be an absolute path wi endif ifneq ("$(IDF_PATH)","$(subst :,,$(IDF_PATH))") -$(error IDF_PATH cannot contain colons. If overriding IDF_PATH on Windows, use Cygwin-style /c/dir instead of C:/dir) +$(error IDF_PATH cannot contain colons. If overriding IDF_PATH on Windows, use MSYS Unix-style /c/dir instead of C:/dir) endif # disable built-in make rules, makes debugging saner diff --git a/tools/windows/eclipse_make.py b/tools/windows/eclipse_make.py index e65cfc9cc3..c0b037d66f 100644 --- a/tools/windows/eclipse_make.py +++ b/tools/windows/eclipse_make.py @@ -1,6 +1,6 @@ #!/usr/bin/env python # -# Wrapper to run make and preprocess any paths in the output from MSYS/Cygwin paths +# Wrapper to run make and preprocess any paths in the output from MSYS Unix-style paths # to Windows paths, for Eclipse from __future__ import print_function, division import sys, subprocess, os.path, re