Greetings,
I have inherited PlatformIO for a Teensy32 Arduino project. It takes about 15 seconds on a fast computer to scan the dependencies and begin compilation.
How can I reduce the time spent on this Scanning Dependencies step?
I see that there is an option to turn lib_ldf_mode = off which would rely on “manifests (library.json, module.json
) or using lib_deps option.”
Ref: Library Dependency Finder (LDF) — PlatformIO latest documentation
library.json
looks like something that might be a nice output to get from the dependency scanner. module.json seems similar. lib_deps
appears unused in this project (pio lib list
is empty).
This seems like natural complication to make the build process easy and flexible.
I am ignorant of the underlying PlatformIO technology. I would like to have a more efficient build process. For one, rescanning dependencies every time is unnecessary. It only needs to be rescanned when I want to generate the new build scripts (e.g. Makefiles
).
Second, how can I generate this library.json
or other manifest file? Perhaps using the scanner somehow?
Cheers,
Joe Gorse
Edit: the platformio.ini file.
;PlatformIO Project Configuration File
;
; Build options: build flags, source filter
; Upload options: custom upload port, speed and extra flags
; Library options: dependencies, extra library storages
; Advanced options: extra scripting
;
; Please visit documentation for the other options and examples
; https://docs.platformio.org/page/projectconf.html
; [env:debug]
; platform = teensy
; board = teensy31
; framework = arduino
; build_flags =
; -I$PROJECT_DIR/src -I$PROJECT_DIR/lib
; -Wall
; -Werror
; -std=c++17
; -D DEBUG=1
; -Wl,-Map=mapfile.map
; monitor_speed = 115200
; board_build.f_cpu = 72000000
[platformio]
default_envs = release
[env:release]
platform = teensy
board = teensy31
framework = arduino
;-I$PROJECT_DIR/lib//src -I$PROJECT_DIR/lib//src -I$PROJECT_DIR/lib//src -I$PROJECT_DIR/lib//src
build_flags =
-I$PROJECT_DIR/src -I$PROJECT_DIR/lib
-Wall
-Werror
-std=c++17
-D DEBUG=1
lib_ldf_mode = off
; monitor_port = COM6
monitor_speed = 115200
board_build.f_cpu = 72000000
extra_scripts =
; pre:build_versioning.py
test_ignore = test_desktop
[env:native]
; not yet working
platform = native
test_ignore = test_embedded
src_filter = +<*> -<.git/> -<.svn/> -<example/> -<examples/> -<test/> -<tests/> -<lib/RealTimeClock>
build_flags =
-I$PROJECT_DIR/src -I$PROJECT_DIR/lib
-I$PROJECT_DIR/lib/i2c_t3
-I$PROJECT_DIR/lib/U8g2_ID942/src
-I$PROJECT_DIR/lib/RealTimeClock/src
-Wall
-Werror
-std=c++17
-D RELEASE=1
lib_ldf_mode = chain+