-
Notifications
You must be signed in to change notification settings - Fork 63
absolute path on windows+cygwin make things complex #776
Comments
@RdaZhongyao |
@BlackstoneEngineering The system CMD tool of Windows is OK. Actually, when tools (python/pip/cmake/ninja/yotta/gcc) are all from Windows platform, there is no problem. Because they use the same path format: "C:\mbed\test". However, at the point of using absolute path everywhere, yotta is not wise. |
When using cygwin you need to use a compiler that understands cygwin paths (installed from the cygwin package manager) |
The issue is actually within yotta, when yotta creates paths is is created based on system defaults. Cygwin uses I reccomend removing instructions on using cygwin from the yotta docs as it is a buggy implementation. |
@BlackstoneEngineering That's incorrect. The paths in question are correctly emitted as /cygdrive/whatever paths by yotta and by CMake running under cygwin (as long as yotta has been installed with cygwin's python, which actually reports itself as a 'unix' platform, hence the / in the output paths), and as long as the compiler that CMake is driving can interpret /cygdrive paths (i.e. the compiler itself has been compiled for cygwin) then things should work. That said, the cygwin installation docs are probably not enough to get things working without other knowledge. |
@autopulated my reccomendations come direclty from using cygwin for the last 4 years and trying to get yotta to run with Cygwin unsuccessfully. |
Based on the previous discussion, we know that yotta doesn't support tools mixture that from different platform. Because they cannot understand the file path eachother. To set up an environment that combines Windows and Cygwin, two ways is given below.
Maybe yotta docs need to upgrade for now. :-) One thing is still confusing me, is it possible that yotta generates relative path to support the mixture of tools that from Windows and Cygwin ? |
Environment: Windows + Cygwin
Tools: python/pip/cmake/ninja on cygwin, arm-none-eabi-gcc.exe on windows.
"yotta build" generates build rules, while most file has absolute path, such as :
build ym/dlmalloc/source/CMakeFiles/dlmalloc.dir/cygdrive/e/mbed/blinky/yotta_modules/dlmalloc/source/dlmalloc.c.o: C_COMPILER__dlmalloc /cygdrive/e/mbed/blinky/yotta_modules/dlmalloc/source/dlmalloc.c | yotta_config.h
When compiling with arm-none-eabi-gcc.exe, these absolute path can not be recognized, only E:/mbed/blinky/... is valid.
Question: For yotta, why not generate relative path to compile? Is absolute path redundant?
The text was updated successfully, but these errors were encountered: