Skip to content

Build path inside sketch folder breaks #89

Closed
@sej7278

Description

@sej7278

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.

full build output

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions