Skip to main content
added 666 characters in body
Source Link
netskink
  • 4.6k
  • 3
  • 40
  • 51

I did it a little differently. Here is my setup.

Visually this is the directory layout

~/Arduino/Testy_app/  <- sketch dir
                   /Testy_app.ino <- has a #include "foo.h"
                   /foo           <- a git repo
                   /foo/foo.h
                   /foo/foo.cpp

Here is how I build:

~/Arduino/Testy_App/$ arduino-cli compile --library "/home/davis/Arduino/Testy_app/foo/" --fqbn arduino:samd:mkrwan1310  Testy_app

If you wish to be more elaborate and specify libs and src dirs, this also works

~/Arduino/Testy_app/  <- sketch dir
                   /Testy_app.ino <- has a #include "foo.h"
                   /lib           <- a git repo
                   /lib/foo/src/foo.h
                   /lib/foo/src/foo.cpp

and the build method is:

~/Arduino/Testy_App/$ arduino-cli compile --library "/home/davis/Arduino/Testy_app/lib/foo/src" --fqbn arduino:samd:mkrwan1310  Testy_app

One more bit of tweaking needs to be done to include files from the lib dirs to main dir. If you need to do that, this is the work around:

~/Arduino/Testy_app/  <- sketch dir
    |               /Testy_app.ino <- has a #include 
"foo.h"
                   /inc/Testy_app.h
                   /foo           <- a git repo
                   /foo/foo.h
                   /foo/foo.cpp   < has a "include testy_app.h"

Then do the compile like this

~/Arduino/Testy_App/$ arduino-cli compile \
--library "/home/davis/Arduino/Testy_app/inc" \ 
--library "/home/davis/Arduino/Testy_app/foo/src" \ 
--fqbn arduino:samd:mkrwan1310  Testy_app

I did it a little differently. Here is my setup.

Visually this is the directory layout

~/Arduino/Testy_app/  <- sketch dir
                   /Testy_app.ino <- has a #include "foo.h"
                   /foo           <- a git repo
                   /foo/foo.h
                   /foo/foo.cpp

Here is how I build:

~/Arduino/Testy_App/$ arduino-cli compile --library "/home/davis/Arduino/Testy_app/foo/" --fqbn arduino:samd:mkrwan1310  Testy_app

If you wish to be more elaborate and specify libs and src dirs, this also works

~/Arduino/Testy_app/  <- sketch dir
                   /Testy_app.ino <- has a #include "foo.h"
                   /lib           <- a git repo
                   /lib/foo/src/foo.h
                   /lib/foo/src/foo.cpp

and the build method is:

~/Arduino/Testy_App/$ arduino-cli compile --library "/home/davis/Arduino/Testy_app/lib/foo/src" --fqbn arduino:samd:mkrwan1310  Testy_app
      |  
      

I did it a little differently. Here is my setup.

Visually this is the directory layout

~/Arduino/Testy_app/  <- sketch dir
                   /Testy_app.ino <- has a #include "foo.h"
                   /foo           <- a git repo
                   /foo/foo.h
                   /foo/foo.cpp

Here is how I build:

~/Arduino/Testy_App/$ arduino-cli compile --library "/home/davis/Arduino/Testy_app/foo/" --fqbn arduino:samd:mkrwan1310  Testy_app

If you wish to be more elaborate and specify libs and src dirs, this also works

~/Arduino/Testy_app/  <- sketch dir
                   /Testy_app.ino <- has a #include "foo.h"
                   /lib           <- a git repo
                   /lib/foo/src/foo.h
                   /lib/foo/src/foo.cpp

and the build method is:

~/Arduino/Testy_App/$ arduino-cli compile --library "/home/davis/Arduino/Testy_app/lib/foo/src" --fqbn arduino:samd:mkrwan1310  Testy_app

One more bit of tweaking needs to be done to include files from the lib dirs to main dir. If you need to do that, this is the work around:

~/Arduino/Testy_app/  <- sketch dir
                   /Testy_app.ino <- has a #include 
"foo.h"
                   /inc/Testy_app.h
                   /foo           <- a git repo
                   /foo/foo.h
                   /foo/foo.cpp   < has a "include testy_app.h"

Then do the compile like this

~/Arduino/Testy_App/$ arduino-cli compile \
--library "/home/davis/Arduino/Testy_app/inc" \ 
--library "/home/davis/Arduino/Testy_app/foo/src" \ 
--fqbn arduino:samd:mkrwan1310  Testy_app
Source Link
netskink
  • 4.6k
  • 3
  • 40
  • 51

I did it a little differently. Here is my setup.

Visually this is the directory layout

~/Arduino/Testy_app/  <- sketch dir
                   /Testy_app.ino <- has a #include "foo.h"
                   /foo           <- a git repo
                   /foo/foo.h
                   /foo/foo.cpp

Here is how I build:

~/Arduino/Testy_App/$ arduino-cli compile --library "/home/davis/Arduino/Testy_app/foo/" --fqbn arduino:samd:mkrwan1310  Testy_app

If you wish to be more elaborate and specify libs and src dirs, this also works

~/Arduino/Testy_app/  <- sketch dir
                   /Testy_app.ino <- has a #include "foo.h"
                   /lib           <- a git repo
                   /lib/foo/src/foo.h
                   /lib/foo/src/foo.cpp

and the build method is:

~/Arduino/Testy_App/$ arduino-cli compile --library "/home/davis/Arduino/Testy_app/lib/foo/src" --fqbn arduino:samd:mkrwan1310  Testy_app
      |