fatal error: variant.h: No such file or directory
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.
Reported it here as suggested by https://community.platformio.org/t/missing-variant-h-and-sodaq-board/1325
Thanks!
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.
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.