Description
Something in 1.6.7 is breaking continuous integration, as i have to delete the build-path directory every time i re-run arduino-builder, otherwise it seems to try to link to the temp files in build-path.
Seems like recursion gone mad as it creates subdirectories of the new build inside the old build or something:
$ tree -L 5 build-esp8266/
build-esp8266/
├── arduino.ar
├── build.options.json
├── core
│ ├── abi.cpp.d
│ ├── abi.cpp.o
│ ├── blah....
│ ├── WString.cpp.d
│ └── WString.cpp.o
├── gizwits_test.ino.bin
├── libraries
├── preproc
│ └── ctags_target_for_gcc_minus_e.cpp
└── sketch
├── build-esp8266
│ ├── preproc
│ │ ├── ctags_target_for_gcc_minus_e.cpp
│ │ ├── ctags_target_for_gcc_minus_e.cpp.d
│ │ └── ctags_target_for_gcc_minus_e.cpp.o
│ └── sketch
│ ├── gizwits_test.ino.cpp
│ ├── gizwits_test.ino.cpp.d
│ └── gizwits_test.ino.cpp.o
├── gizwits_test.ino.cpp
├── gizwits_test.ino.cpp.d
└── gizwits_test.ino.cpp.o
it then exits with "multiple definition of setup" errors such as:
~/arduino16/gizwits_test/build-esp8266/sketch/build-esp8266/preproc/ctags_target_for_gcc_minus_e.cpp.o: In function `HardwareSerial::begin(unsigned long)':
~/arduino16/hardware/esp8266com/esp8266/cores/esp8266/HardwareSerial.h:77: multiple definition of `setup'
the ide seems to work ok oddly enough and outputs "Using previously compiled file: /tmp/build...." rather than trying to reproduce the whole thing again in a subdirectory (unless it finds the build-path is in the same directory as the sketch, in which case it breaks).
it worked fine in arduino-builder 1.0.5 bundled with ide 1.6.6
doesn't require any special sketch or board to reproduce, just that build-path is in the same directory as the sketch i guess, which seems like an ok requirement to me - its nice to be able to commit builds to git, rather than stashing them in /tmp or deleting them all the time.