platformio / platform-atmelsam

Atmel SAM: development platform for PlatformIO
https://registry.platformio.org/platforms/platformio/atmelsam
Apache License 2.0
82 stars 108 forks source link

fatal error: variant.h: No such file or directory #6

Open jwillemsen opened 7 years ago

jwillemsen commented 7 years ago

I am trying to enable travis-ci for an arduino related effort. Created a travis-ci yml file at https://github.com/jwillemsen/RN2483-Arduino-Library/blob/master/.travis.yml and enabled it on travis-ci. This now results in

Setting up build cache

$ export CASHER_DIR=$HOME/.casher

0.03s$ Installing caching utilities

0.00s

1.71sattempting to download cache archive

fetching master/cache-linux-precise-8b38933858bcbc861bcd2286a72dd89c26b411e0527c0350b7ca7ca4748667b7--python-2.7.tgz

found cache

0.00s

5.79sadding /home/travis/.platformio to cache

creating directory /home/travis/.platformio

$ python --version

Python 2.7.9

$ pip --version

pip 6.0.7 from /home/travis/virtualenv/python2.7.9/lib/python2.7/site-packages (python 2.7)
install

3.06s$ pip install -U platformio

Collecting platformio

  Downloading platformio-3.2.1-py27-none-any.whl (120kB)

    100% |################################| 122kB 3.5MB/s 

Collecting bottle<0.13 (from platformio)

  Downloading bottle-0.12.13.tar.gz (70kB)

    100% |################################| 73kB 5.5MB/s 

Collecting requests<3,>=2.4.0 (from platformio)

  Downloading requests-2.13.0-py2.py3-none-any.whl (584kB)

    100% |################################| 585kB 886kB/s 

Collecting pyserial<4,>=3 (from platformio)

  Downloading pyserial-3.2.1-py2.py3-none-any.whl (189kB)

    15% |####          100% |################################| 192kB 2.7MB/s 

Collecting semantic-version>=2.5.0 (from platformio)

  Downloading semantic_version-2.6.0.tar.gz

Collecting colorama (from platformio)

  Downloading colorama-0.3.7-py2.py3-none-any.whl

Collecting click<6,>=5 (from platformio)

  Downloading click-5.1-py2.py3-none-any.whl (65kB)

    100% |################################| 65kB 6.3MB/s 

Collecting lockfile<0.13,>=0.9.1 (from platformio)

  Downloading lockfile-0.12.2-py2.py3-none-any.whl

Installing collected packages: lockfile, click, colorama, semantic-version, pyserial, requests, bottle, platformio

  Running setup.py install for semantic-version

  Running setup.py install for bottle

    changing mode of build/scripts-2.7/bottle.py from 644 to 755

    changing mode of /home/travis/virtualenv/python2.7.9/bin/bottle.py to 755

Successfully installed bottle-0.12.13 click-5.1 colorama-0.3.7 lockfile-0.12.2 platformio-3.2.1 pyserial-3.2.1 requests-2.13.0 semantic-version-2.6.0

2.82s$ platformio ci $PLATFORMIO_CI_EXTRA_ARGS

The next files/directories have been created in /tmp/tmp2GHx1h

platformio.ini - Project Configuration File

src - Put your source files here

lib - Put here project specific (private) libraries

Project has been successfully initialized!

Useful commands:

`platformio run` - process/build project from the current directory

`platformio run --target upload` or `platformio run -t upload` - upload firmware to embedded board

`platformio run --target clean` - clean project (remove compiled files)

`platformio run --help` - additional information

[Wed Feb  1 12:15:11 2017] Processing sodaq_one (platform: atmelsam, board: sodaq_one, framework: arduino)

--------------------------------------------------------------------------------

Verbose mode can be enabled via `-v, --verbose` option

Converting SodaqOne-TTN-Mapper-ascii.ino

Collected 6 compatible libraries

Looking for dependencies...

Library Dependency Graph

|-- <Wire> v1.0

Compiling .pioenvs/sodaq_one/src/SodaqOne-TTN-Mapper-ascii.ino.o

Archiving .pioenvs/sodaq_one/libFrameworkArduinoVariant.a

Compiling .pioenvs/sodaq_one/src/Sodaq_UBlox_GPS.o

In file included from /home/travis/.platformio/packages/framework-arduinosam/cores/arduino_samd/Arduino.h:81:0,

from /tmp/tmpf1IhZw:1:

/home/travis/.platformio/packages/framework-arduinosam/cores/arduino_samd/delay.h:27:21: fatal error: variant.h: No such file or directory

#include "variant.h"

^

compilation terminated.
jwillemsen commented 7 years ago

Reported it here as suggested by https://community.platformio.org/t/missing-variant-h-and-sodaq-board/1325

jwillemsen commented 7 years ago

Thanks!

michaelarfreed commented 7 years ago

I'm having the same issue (using the Adafruit Feather M0 board). @ivankravets can you clarify how to solve this?

The compilation message reads:

Arduino: 1.6.13 (Windows 10), Board: "Adafruit Feather M0"

C:\Program Files (x86)\Arduino1613\arduino-builder -dump-prefs -logger=machine -hardware C:\Program Files (x86)\Arduino1613\hardware -hardware C:\Users\Michaela\AppData\Local\Arduino15\packages -tools C:\Program Files (x86)\Arduino1613\tools-builder -tools C:\Program Files (x86)\Arduino1613\hardware\tools\avr -tools C:\Users\Michaela\AppData\Local\Arduino15\packages -built-in-libraries C:\Program Files (x86)\Arduino1613\libraries -libraries C:\Users\Michaela\Documents\Arduino\libraries -fqbn=adafruit:samd:adafruit_feather_m0 -ide-version=10613 -build-path C:\Users\Michaela\AppData\Local\Temp\arduino_build_888056 -warnings=none -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.arm-none-eabi-gcc.path=C:\Users\Michaela\AppData\Local\Arduino15\packages\arduino\tools\arm-none-eabi-gcc\4.8.3-2014q1 -prefs=runtime.tools.openocd.path=C:\Users\Michaela\AppData\Local\Arduino15\packages\arduino\tools\openocd\0.9.0-arduino -prefs=runtime.tools.CMSIS.path=C:\Users\Michaela\AppData\Local\Arduino15\packages\arduino\tools\CMSIS\4.0.0-atmel -prefs=runtime.tools.bossac.path=C:\Users\Michaela\AppData\Local\Arduino15\packages\arduino\tools\bossac\1.6.1-arduino -verbose C:\Users\Michaela\Documents\Arduino\softwareDesign\Datalogger_RTC_Trial_03\Datalogger_RTC_Trial_03.ino
Using board 'adafruit_feather_m0' from platform in folder: C:\Users\Michaela\AppData\Local\Arduino15\packages\adafruit\hardware\samd\1.0.15
Using core 'arduino' from platform in folder: C:\Users\Michaela\AppData\Local\Arduino15\packages\adafruit\hardware\samd\1.0.15
Detecting libraries used...
"C:\Users\Michaela\AppData\Local\Arduino15\packages\arduino\tools\arm-none-eabi-gcc\4.8.3-2014q1/bin/arm-none-eabi-g++" -mcpu=cortex-m0plus -mthumb -c -g -Os -w -std=gnu++11 -ffunction-sections -fdata-sections -fno-threadsafe-statics -nostdlib --param max-inline-insns-single=500 -fno-rtti -fno-exceptions  -w -x c++ -E -CC -DF_CPU=48000000L -DARDUINO=10613 -DARDUINO_SAMD_FEATHER_M0 -DARDUINO_ARCH_SAMD  -DARDUINO_SAMD_ZERO -D__SAMD21G18A__ -DUSB_VID=0x239A -DUSB_PID=0x800B -DUSBCON '-DUSB_MANUFACTURER="Adafruit"' '-DUSB_PRODUCT="Feather M0"' "-IC:\Users\Michaela\AppData\Local\Arduino15\packages\arduino\tools\CMSIS\4.5.0/CMSIS/Include/" "-IC:\Users\Michaela\AppData\Local\Arduino15\packages\arduino\tools\CMSIS-Atmel\1.1.0/CMSIS/Device/ATMEL/" "-IC:\Users\Michaela\AppData\Local\Arduino15\packages\adafruit\hardware\samd\1.0.15\cores\arduino" "-IC:\Users\Michaela\AppData\Local\Arduino15\packages\adafruit\hardware\samd\1.0.15\variants\arduino_zero" "C:\Users\Michaela\AppData\Local\Temp\arduino_build_888056\sketch\Datalogger_RTC_Trial_03.ino.cpp" -o "nul"
"C:\Users\Michaela\AppData\Local\Arduino15\packages\arduino\tools\arm-none-eabi-gcc\4.8.3-2014q1/bin/arm-none-eabi-g++" -mcpu=cortex-m0plus -mthumb -c -g -Os -w -std=gnu++11 -ffunction-sections -fdata-sections -fno-threadsafe-statics -nostdlib --param max-inline-insns-single=500 -fno-rtti -fno-exceptions  -w -x c++ -E -CC -DF_CPU=48000000L -DARDUINO=10613 -DARDUINO_SAMD_FEATHER_M0 -DARDUINO_ARCH_SAMD  -DARDUINO_SAMD_ZERO -D__SAMD21G18A__ -DUSB_VID=0x239A -DUSB_PID=0x800B -DUSBCON '-DUSB_MANUFACTURER="Adafruit"' '-DUSB_PRODUCT="Feather M0"' "-IC:\Users\Michaela\AppData\Local\Arduino15\packages\arduino\tools\CMSIS\4.5.0/CMSIS/Include/" "-IC:\Users\Michaela\AppData\Local\Arduino15\packages\arduino\tools\CMSIS-Atmel\1.1.0/CMSIS/Device/ATMEL/" "-IC:\Users\Michaela\AppData\Local\Arduino15\packages\adafruit\hardware\samd\1.0.15\cores\arduino" "-IC:\Users\Michaela\AppData\Local\Arduino15\packages\adafruit\hardware\samd\1.0.15\variants\arduino_zero" "C:\Users\Michaela\AppData\Local\Temp\arduino_build_888056\sketch\Datalogger_RTC_Trial_03.ino.cpp" -o "C:\Users\Michaela\AppData\Local\Temp\arduino_build_888056\preproc\ctags_target_for_gcc_minus_e.cpp"
In file included from C:\Users\Michaela\AppData\Local\Arduino15\packages\adafruit\hardware\samd\1.0.15\cores\arduino/Arduino.h:81:0,

                 from C:\Users\Michaela\AppData\Local\Temp\arduino_build_888056\sketch\Datalogger_RTC_Trial_03.ino.cpp:1:

C:\Users\Michaela\AppData\Local\Arduino15\packages\adafruit\hardware\samd\1.0.15\cores\arduino/delay.h:27:21: fatal error: variant.h: No such file or directory

 #include "variant.h"

                     ^

compilation terminated.

exit status 1
Error compiling for board Adafruit Feather M0.
C:\Program Files (x86)\Arduino1613\arduino-builder -compile -logger=machine -hardware C:\Program Files (x86)\Arduino1613\hardware -hardware C:\Users\Michaela\AppData\Local\Arduino15\packages -tools C:\Program Files (x86)\Arduino1613\tools-builder -tools C:\Program Files (x86)\Arduino1613\hardware\tools\avr -tools C:\Users\Michaela\AppData\Local\Arduino15\packages -built-in-libraries C:\Program Files (x86)\Arduino1613\libraries -libraries C:\Users\Michaela\Documents\Arduino\libraries -fqbn=adafruit:samd:adafruit_feather_m0 -ide-version=10613 -build-path C:\Users\Michaela\AppData\Local\Temp\arduino_build_888056 -warnings=none -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.arm-none-eabi-gcc.path=C:\Users\Michaela\AppData\Local\Arduino15\packages\arduino\tools\arm-none-eabi-gcc\4.8.3-2014q1 -prefs=runtime.tools.openocd.path=C:\Users\Michaela\AppData\Local\Arduino15\packages\arduino\tools\openocd\0.9.0-arduino -prefs=runtime.tools.CMSIS.path=C:\Users\Michaela\AppData\Local\Arduino15\packages\arduino\tools\CMSIS\4.0.0-atmel -prefs=runtime.tools.bossac.path=C:\Users\Michaela\AppData\Local\Arduino15\packages\arduino\tools\bossac\1.6.1-arduino -verbose C:\Users\Michaela\Documents\Arduino\softwareDesign\Datalogger_RTC_Trial_03\Datalogger_RTC_Trial_03.ino
Using board 'adafruit_feather_m0' from platform in folder: C:\Users\Michaela\AppData\Local\Arduino15\packages\adafruit\hardware\samd\1.0.15
Using core 'arduino' from platform in folder: C:\Users\Michaela\AppData\Local\Arduino15\packages\adafruit\hardware\samd\1.0.15
Detecting libraries used...
"C:\Users\Michaela\AppData\Local\Arduino15\packages\arduino\tools\arm-none-eabi-gcc\4.8.3-2014q1/bin/arm-none-eabi-g++" -mcpu=cortex-m0plus -mthumb -c -g -Os -w -std=gnu++11 -ffunction-sections -fdata-sections -fno-threadsafe-statics -nostdlib --param max-inline-insns-single=500 -fno-rtti -fno-exceptions  -w -x c++ -E -CC -DF_CPU=48000000L -DARDUINO=10613 -DARDUINO_SAMD_FEATHER_M0 -DARDUINO_ARCH_SAMD  -DARDUINO_SAMD_ZERO -D__SAMD21G18A__ -DUSB_VID=0x239A -DUSB_PID=0x800B -DUSBCON '-DUSB_MANUFACTURER="Adafruit"' '-DUSB_PRODUCT="Feather M0"' "-IC:\Users\Michaela\AppData\Local\Arduino15\packages\arduino\tools\CMSIS\4.5.0/CMSIS/Include/" "-IC:\Users\Michaela\AppData\Local\Arduino15\packages\arduino\tools\CMSIS-Atmel\1.1.0/CMSIS/Device/ATMEL/" "-IC:\Users\Michaela\AppData\Local\Arduino15\packages\adafruit\hardware\samd\1.0.15\cores\arduino" "-IC:\Users\Michaela\AppData\Local\Arduino15\packages\adafruit\hardware\samd\1.0.15\variants\arduino_zero" "C:\Users\Michaela\AppData\Local\Temp\arduino_build_888056\sketch\Datalogger_RTC_Trial_03.ino.cpp" -o "nul"
"C:\Users\Michaela\AppData\Local\Arduino15\packages\arduino\tools\arm-none-eabi-gcc\4.8.3-2014q1/bin/arm-none-eabi-g++" -mcpu=cortex-m0plus -mthumb -c -g -Os -w -std=gnu++11 -ffunction-sections -fdata-sections -fno-threadsafe-statics -nostdlib --param max-inline-insns-single=500 -fno-rtti -fno-exceptions  -w -x c++ -E -CC -DF_CPU=48000000L -DARDUINO=10613 -DARDUINO_SAMD_FEATHER_M0 -DARDUINO_ARCH_SAMD  -DARDUINO_SAMD_ZERO -D__SAMD21G18A__ -DUSB_VID=0x239A -DUSB_PID=0x800B -DUSBCON '-DUSB_MANUFACTURER="Adafruit"' '-DUSB_PRODUCT="Feather M0"' "-IC:\Users\Michaela\AppData\Local\Arduino15\packages\arduino\tools\CMSIS\4.5.0/CMSIS/Include/" "-IC:\Users\Michaela\AppData\Local\Arduino15\packages\arduino\tools\CMSIS-Atmel\1.1.0/CMSIS/Device/ATMEL/" "-IC:\Users\Michaela\AppData\Local\Arduino15\packages\adafruit\hardware\samd\1.0.15\cores\arduino" "-IC:\Users\Michaela\AppData\Local\Arduino15\packages\adafruit\hardware\samd\1.0.15\variants\arduino_zero" "C:\Users\Michaela\AppData\Local\Temp\arduino_build_888056\sketch\Datalogger_RTC_Trial_03.ino.cpp" -o "C:\Users\Michaela\AppData\Local\Temp\arduino_build_888056\preproc\ctags_target_for_gcc_minus_e.cpp"
In file included from C:\Users\Michaela\AppData\Local\Arduino15\packages\adafruit\hardware\samd\1.0.15\cores\arduino/Arduino.h:81:0,

                 from C:\Users\Michaela\AppData\Local\Temp\arduino_build_888056\sketch\Datalogger_RTC_Trial_03.ino.cpp:1:

C:\Users\Michaela\AppData\Local\Arduino15\packages\adafruit\hardware\samd\1.0.15\cores\arduino/delay.h:27:21: fatal error: variant.h: No such file or directory

 #include "variant.h"

                     ^

compilation terminated.

exit status 1
Error compiling for board Adafruit Feather M0.
DavidAntliff commented 4 years ago

I also see this with a Sparkfun M0 board (Razor M0, based on the SparkFun SAMD21 Mini Breakout board definition .json):

Compiling .pio/build/sparkfun_9dof_razor_imu_m0/src/Compass.cpp.o
In file included from /home/david/.platformio/packages/framework-arduinosam/cores/samd/Arduino.h:81:0,
                 from src/Compass.cpp:3:
/home/david/.platformio/packages/framework-arduinosam/cores/samd/delay.h:23:10: fatal error: variant.h: No such file or directory

The original project (before I renamed the .ino files and added #include <Arduino.h> to them) compiles fine in the Arduino IDE, so I'd really like to know how to get this working with PlatformIO.

Solution: I had set the project to use a custom boards/myboard.json definition, and in that file I had set a variant, but that variant didn't exist in ~/.platformio/packages/framework-arduinosam/variants. I copied ~/.platformio/packages/framework-arduinosam/variants/SparkFun_SAMD_Mini/variant.h to my project's include directory (so I can make a few tweaks) and it was able to compile.

EDIT: looks like the correct way to do this (so that libraries see the custom variant too) is to use this method.