arduino / arduino-cli

Arduino command line tool
https://arduino.github.io/arduino-cli/latest/
GNU General Public License v3.0
4.31k stars 373 forks source link

Build output path customization #197

Closed dilin-MS closed 4 years ago

dilin-MS commented 5 years ago

Hi, I was wondering whether arduino-cli support customization of build path?

Currently I can only set sketchbook_path and arduino_data through arduino-cli.yaml file. I am using arduino-cli within docker container.

In order to realize incremental build, I need to preserve intermediate files in a specific folder, so next time these files can be found by the arduino-cli comiler and thus reduce the compilation time. However, the sketchbook_path only store the XX.ino, XX.elf and XX.bin file. Other files needed to reduce the next compilation time is stored automatically in /tmp/ directory. Is there any way that I can change the default intermediate files output path /tmp to some customized path, like /root/Arduino/MyFirstSketch/.build? Where should I configure this value? When I talk about intermediate files, I mean something like:

Not found: /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/NTPClient/NTPClient.cpp.o
Not found: /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/wiring_analog.cpp.o
Not found: /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/httpclient/http_parsed_url.cpp.o
Not found: /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/system/SystemWiFi.cpp.o
Not found: /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/httpclient/http_c_response.cpp.o
Not found: /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/Telemetry/Telemetry.cpp.o
Not found: /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/cli/console_cli.cpp.o
...

Reproduce the scenario

When I ran arduino-cli compile --fqbn AZ3166:stm32f4:MXCHIP_AZ3166 /root/Arduino/devkit/devkit.ino --debug command, I got:

################################ Compile Application #################################
INFO[0000] Checking for config file in: /root/.arduino15/arduino-cli.yaml
INFO[0000] Reading configuration from /root/.arduino15/arduino-cli.yaml
INFO[0000] Checking if CLI is Bundled into the IDE
INFO[0000] Candidate IDE Directory: /usr/bin
INFO[0000] CLI is not bundled into the IDE
INFO[0000] Checking for config in: /arduino-cli.yaml
INFO[0000] error loading                                 error="open /arduino-cli.yaml: no such file or directory"
INFO[0000] Checking for config in: /work/arduino-cli.yaml
INFO[0000] Configuration set
INFO[0000] arduino-cli-0.3.6-alpha.preview
INFO[0000] Starting root command preparation (`arduino`)
INFO[0000] Formatter set
INFO[0000] Executing `arduino compile`
INFO[0000] Initializing package manager
INFO[0000] Loading hardware from: /root/.arduino15/packages
INFO[0000] Loading package AZ3166 from: /root/.arduino15/packages/AZ3166/hardware
INFO[0000] Loaded platform                               platform="AZ3166:stm32f4@1.6.2"
INFO[0000] Checking existence of 'tools' path: /root/.arduino15/packages/AZ3166/tools
INFO[0000] Loading tools from dir: /root/.arduino15/packages/AZ3166/tools
INFO[0000] Loaded tool                                   tool="AZ3166:arm-none-eabi-gcc@5_4-2016q3"
INFO[0000] Loaded tool                                   tool="AZ3166:openocd@0.10.0"
INFO[0000] Loading package builtin from: /root/.arduino15/packages/builtin
INFO[0000] Checking existence of 'tools' path: /root/.arduino15/packages/builtin/tools
INFO[0000] Loading tools from dir: /root/.arduino15/packages/builtin/tools
INFO[0000] Loaded tool                                   tool="builtin:ctags@5.8-arduino11"
Ts: 1555324955 - Running: GenerateBuildPathIfMissing
Setting build path to /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128
Ts: 1555324955 - Running: EnsureBuildPathExists
Ts: 1555324955 - Running: ContainerSetupHardwareToolsLibsSketchAndProps
Ts: 1555324955 - Running: AddAdditionalEntriesToContext
Ts: 1555324955 - Running: FailIfBuildPathEqualsSketchPath
Ts: 1555324955 - Running: HardwareLoader
Ts: 1555324955 - Running: PlatformKeysRewriteLoader
Ts: 1555324955 - Running: RewriteHardwareKeys
Ts: 1555324955 - Running: TargetBoardResolver
Ts: 1555324955 - Running: ToolsLoader
INFO[0000] Searching tools required for board AZ3166:stm32f4:MXCHIP_AZ3166
INFO[0000] Required tool                                 tool="AZ3166:arm-none-eabi-gcc@5_4-2016q3"
INFO[0000] Required tool                                 tool="AZ3166:openocd@0.10.0"
Ts: 1555324955 - Running: AddBuildBoardPropertyIfMissing
Ts: 1555324955 - Running: LibrariesLoader
INFO[0000] Adding libraries dir                          dir=/root/.arduino15/packages/AZ3166/hardware/stm32f4/1.6.2/libraries location=platform
INFO[0000] Adding libraries dir                          dir=/root/Arduino/libraries location=sketchbook
Ts: 1555324955 - Running: SketchLoader
Ts: 1555324955 - Running: SetupBuildProperties
Ts: 1555324955 - Running: LoadVIDPIDSpecificProperties
Ts: 1555324955 - Running: SetCustomBuildProperties
Ts: 1555324955 - Running: AddMissingBuildPropertiesFromParentPlatformTxtFiles
Ts: 1555324955 - Running: ContainerBuildOptions
Ts: 1555324955 - Running: CreateBuildOptionsMap
Ts: 1555324955 - Running: LoadPreviousBuildOptionsMap
Ts: 1555324955 - Running: WipeoutBuildPathIfBuildOptionsChanged
Ts: 1555324955 - Running: StoreBuildOptionsMap
Ts: 1555324955 - Running: WarnAboutPlatformRewrites
Ts: 1555324955 - Running: RecipeByPrefixSuffixRunner
Looking for recipes like recipe.hooks.prebuild*.pattern
Ts: 1555324955 - Running: ContainerMergeCopySketchFiles
Ts: 1555324955 - Running: SketchSourceMerger
Ts: 1555324955 - Running: SketchSaver
Ts: 1555324955 - Running: AdditionalSketchFilesCopier
Ts: 1555324955 - Running: loggerAction
Ts: 1555324955 - Running: ContainerFindIncludes
Checking previous results for /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/sketch/devkit.ino.cpp (result = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/sketch/devkit.ino.cpp.o, dep = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/sketch/devkit.ino.cpp.d)
Not found: /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/sketch/devkit.ino.cpp.o
Ts: 1555324957 - Running: FailIfImportedLibraryIsWrong
Ts: 1555324957 - Running: WarnAboutArchIncompatibleLibraries
Ts: 1555324957 - Running: loggerAction
Ts: 1555324957 - Running: PreprocessSketch
Ts: 1555324957 - Running: ContainerAddPrototypes
Ts: 1555324960 - Running: ReadFileAndStoreInContext
Ts: 1555324960 - Running: FilterSketchSource
Ts: 1555324960 - Running: CTagsTargetFileSaver
Ts: 1555324960 - Running: CTagsRunner
Ts: 1555324960 - Running: PrototypesAdder
Ts: 1555324960 - Running: SketchSaver
Ts: 1555324960 - Running: loggerAction
Ts: 1555324960 - Running: RecipeByPrefixSuffixRunner
Looking for recipes like recipe.hooks.sketch.prebuild*.pattern
Ts: 1555324960 - Running: SketchBuilder
Checking previous results for /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/sketch/devkit.ino.cpp (result = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/sketch/devkit.ino.cpp.o, dep = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/sketch/devkit.ino.cpp.d)
Not found: /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/sketch/devkit.ino.cpp.o
Ts: 1555324962 - Running: RecipeByPrefixSuffixRunner
Looking for recipes like recipe.hooks.sketch.postbuild*.pattern
Ts: 1555324962 - Running: loggerAction
Ts: 1555324962 - Running: RecipeByPrefixSuffixRunner
Looking for recipes like recipe.hooks.libraries.prebuild*.pattern
Ts: 1555324962 - Running: UnusedCompiledLibrariesRemover
Ts: 1555324962 - Running: LibrariesBuilder
Ts: 1555324962 - Running: RecipeByPrefixSuffixRunner
Looking for recipes like recipe.hooks.libraries.postbuild*.pattern
Ts: 1555324962 - Running: loggerAction
Ts: 1555324962 - Running: RecipeByPrefixSuffixRunner
Looking for recipes like recipe.hooks.core.prebuild*.pattern
Ts: 1555324962 - Running: CoreBuilder
Checking previous results for /root/.arduino15/packages/AZ3166/hardware/stm32f4/1.6.2/cores/arduino/floatIO.c (result = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/floatIO.c.o, dep = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/floatIO.c.d)
Not found: /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/floatIO.c.o
Checking previous results for /root/.arduino15/packages/AZ3166/hardware/stm32f4/1.6.2/cores/arduino/httpserver/helper.c (result = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/httpserver/helper.c.o, dep = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/httpserver/helper.c.d)
Not found: /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/httpserver/helper.c.o
Checking previous results for /root/.arduino15/packages/AZ3166/hardware/stm32f4/1.6.2/cores/arduino/httpserver/http-strings.c (result = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/httpserver/http-strings.c.o, dep = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/httpserver/http-strings.c.d) Not found: /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/httpserver/http-strings.c.o
Checking previous results for /root/.arduino15/packages/AZ3166/hardware/stm32f4/1.6.2/cores/arduino/httpserver/httpd.c (result = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/httpserver/httpd.c.o, dep = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/httpserver/httpd.c.d)
Not found: /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/httpserver/httpd.c.o
Checking previous results for /root/.arduino15/packages/AZ3166/hardware/stm32f4/1.6.2/cores/arduino/httpclient/http_parser/http_parser.c (result = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/httpclient/http_parser/http_parser.c.o, dep = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/httpclient/http_parser/http_parser.c.d)
Not found: /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/httpclient/http_parser/http_parser.c.o
Checking previous results for /root/.arduino15/packages/AZ3166/hardware/stm32f4/1.6.2/cores/arduino/httpserver/httpd_wsgi.c (result = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/httpserver/httpd_wsgi.c.o, dep = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/httpserver/httpd_wsgi.c.d)
Not found: /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/httpserver/httpd_wsgi.c.o
Checking previous results for /root/.arduino15/packages/AZ3166/hardware/stm32f4/1.6.2/cores/arduino/httpserver/httpd_handle.c (result = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/httpserver/httpd_handle.c.o, dep = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/httpserver/httpd_handle.c.d) Not found: /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/httpserver/httpd_handle.c.o
Checking previous results for /root/.arduino15/packages/AZ3166/hardware/stm32f4/1.6.2/cores/arduino/httpserver/httpd_sys.c (result = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/httpserver/httpd_sys.c.o, dep = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/httpserver/httpd_sys.c.d)
Not found: /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/httpserver/httpd_sys.c.o
Checking previous results for /root/.arduino15/packages/AZ3166/hardware/stm32f4/1.6.2/cores/arduino/httpserver/http_parse.c (result = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/httpserver/http_parse.c.o, dep = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/httpserver/http_parse.c.d)
Not found: /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/httpserver/http_parse.c.o
Checking previous results for /root/.arduino15/packages/AZ3166/hardware/stm32f4/1.6.2/cores/arduino/RingBuffer.cpp (result = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/RingBuffer.cpp.o, dep = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/RingBuffer.cpp.d)
Not found: /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/RingBuffer.cpp.o
Checking previous results for /root/.arduino15/packages/AZ3166/hardware/stm32f4/1.6.2/cores/arduino/Arduino.cpp (result = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/Arduino.cpp.o, dep = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/Arduino.cpp.d)
Not found: /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/Arduino.cpp.o
Checking previous results for /root/.arduino15/packages/AZ3166/hardware/stm32f4/1.6.2/cores/arduino/AttachInterrupt.cpp (result = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/AttachInterrupt.cpp.o, dep = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/AttachInterrupt.cpp.d)
Not found: /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/AttachInterrupt.cpp.o
Checking previous results for /root/.arduino15/packages/AZ3166/hardware/stm32f4/1.6.2/cores/arduino/BufferedSerial.cpp (result = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/BufferedSerial.cpp.o, dep = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/BufferedSerial.cpp.d)
Not found: /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/BufferedSerial.cpp.o
Checking previous results for /root/.arduino15/packages/AZ3166/hardware/stm32f4/1.6.2/cores/arduino/Print.cpp (result = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/Print.cpp.o, dep = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/Print.cpp.d)
Not found: /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/Print.cpp.o
Checking previous results for /root/.arduino15/packages/AZ3166/hardware/stm32f4/1.6.2/cores/arduino/EEPROMInterface.cpp (result = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/EEPROMInterface.cpp.o, dep = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/EEPROMInterface.cpp.d)
Not found: /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/EEPROMInterface.cpp.o
Checking previous results for /root/.arduino15/packages/AZ3166/hardware/stm32f4/1.6.2/cores/arduino/IPAddress.cpp (result = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/IPAddress.cpp.o, dep = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/IPAddress.cpp.d)
Not found: /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/IPAddress.cpp.o
Checking previous results for /root/.arduino15/packages/AZ3166/hardware/stm32f4/1.6.2/cores/arduino/Stream.cpp (result = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/Stream.cpp.o, dep = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/Stream.cpp.d)
Not found: /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/Stream.cpp.o
Checking previous results for /root/.arduino15/packages/AZ3166/hardware/stm32f4/1.6.2/cores/arduino/OledDisplay.cpp (result = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/OledDisplay.cpp.o, dep = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/OledDisplay.cpp.d)
Checking previous results for /root/.arduino15/packages/AZ3166/hardware/stm32f4/1.6.2/cores/arduino/TLSSocket.cpp (result = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/TLSSocket.cpp.o, dep = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/TLSSocket.cpp.d)
Checking previous results for /root/.arduino15/packages/AZ3166/hardware/stm32f4/1.6.2/cores/arduino/UARTClass.cpp (result = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/UARTClass.cpp.o, dep = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/UARTClass.cpp.d)
Checking previous results for /root/.arduino15/packages/AZ3166/hardware/stm32f4/1.6.2/cores/arduino/WCharacter.cpp (result = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/WCharacter.cpp.o, dep = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/WCharacter.cpp.d)
Checking previous results for /root/.arduino15/packages/AZ3166/hardware/stm32f4/1.6.2/cores/arduino/WMath.cpp (result = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/WMath.cpp.o, dep = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/WMath.cpp.d)
Checking previous results for /root/.arduino15/packages/AZ3166/hardware/stm32f4/1.6.2/cores/arduino/WString.cpp (result = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/WString.cpp.o, dep = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/WString.cpp.d)
Checking previous results for /root/.arduino15/packages/AZ3166/hardware/stm32f4/1.6.2/cores/arduino/Watchdog.cpp (result = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/Watchdog.cpp.o, dep = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/Watchdog.cpp.d)
Checking previous results for /root/.arduino15/packages/AZ3166/hardware/stm32f4/1.6.2/cores/arduino/pgmspace.cpp (result = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/pgmspace.cpp.o, dep = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/pgmspace.cpp.d)
Checking previous results for /root/.arduino15/packages/AZ3166/hardware/stm32f4/1.6.2/cores/arduino/wiring.cpp (result = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/wiring.cpp.o, dep = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/wiring.cpp.d)
Checking previous results for /root/.arduino15/packages/AZ3166/hardware/stm32f4/1.6.2/cores/arduino/wiring_analog.cpp (result = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/wiring_analog.cpp.o, dep = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/wiring_analog.cpp.d)
Checking previous results for /root/.arduino15/packages/AZ3166/hardware/stm32f4/1.6.2/cores/arduino/wiring_digital.cpp (result = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/wiring_digital.cpp.o, dep = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/wiring_digital.cpp.d)
Checking previous results for /root/.arduino15/packages/AZ3166/hardware/stm32f4/1.6.2/cores/arduino/NTPClient/NTPClient.cpp (result = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/NTPClient/NTPClient.cpp.o, dep = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/NTPClient/NTPClient.cpp.d)
Checking previous results for /root/.arduino15/packages/AZ3166/hardware/stm32f4/1.6.2/cores/arduino/Telemetry/Telemetry.cpp (result = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/Telemetry/Telemetry.cpp.o, dep = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/Telemetry/Telemetry.cpp.d)
Checking previous results for /root/.arduino15/packages/AZ3166/hardware/stm32f4/1.6.2/cores/arduino/Telemetry/TelemetryClient.cpp (result = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/Telemetry/TelemetryClient.cpp.o, dep = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/Telemetry/TelemetryClient.cpp.d)
Checking previous results for /root/.arduino15/packages/AZ3166/hardware/stm32f4/1.6.2/cores/arduino/cli/console_cli.cpp (result = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/cli/console_cli.cpp.o, dep = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/cli/console_cli.cpp.d)
Checking previous results for /root/.arduino15/packages/AZ3166/hardware/stm32f4/1.6.2/cores/arduino/httpclient/http_c_response.cpp (result = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/httpclient/http_c_response.cpp.o, dep = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/httpclient/http_c_response.cpp.d)
Checking previous results for /root/.arduino15/packages/AZ3166/hardware/stm32f4/1.6.2/cores/arduino/httpclient/http_client.cpp (result = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/httpclient/http_client.cpp.o, dep = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/httpclient/http_client.cpp.d)
Checking previous results for /root/.arduino15/packages/AZ3166/hardware/stm32f4/1.6.2/cores/arduino/httpclient/http_header_builder.cpp (result = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/httpclient/http_header_builder.cpp.o, dep = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/httpclient/http_header_builder.cpp.d)
Checking previous results for /root/.arduino15/packages/AZ3166/hardware/stm32f4/1.6.2/cores/arduino/httpclient/http_parsed_url.cpp (result = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/httpclient/http_parsed_url.cpp.o, dep = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/httpclient/http_parsed_url.cpp.d)
Checking previous results for /root/.arduino15/packages/AZ3166/hardware/stm32f4/1.6.2/cores/arduino/httpclient/http_response_parser.cpp (result = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/httpclient/http_response_parser.cpp.o, dep = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/httpclient/http_response_parser.cpp.d)
Checking previous results for /root/.arduino15/packages/AZ3166/hardware/stm32f4/1.6.2/cores/arduino/httpclient/https_request.cpp (result = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/httpclient/https_request.cpp.o, dep = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/httpclient/https_request.cpp.d)
Checking previous results for /root/.arduino15/packages/AZ3166/hardware/stm32f4/1.6.2/cores/arduino/httpserver/app_httpd.cpp (result = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/httpserver/app_httpd.cpp.o, dep = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/httpserver/app_httpd.cpp.d)
Checking previous results for /root/.arduino15/packages/AZ3166/hardware/stm32f4/1.6.2/cores/arduino/system/OTAFirmwareUpdate.cpp (result = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/system/OTAFirmwareUpdate.cpp.o, dep = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/system/OTAFirmwareUpdate.cpp.d)
Checking previous results for /root/.arduino15/packages/AZ3166/hardware/stm32f4/1.6.2/cores/arduino/system/SerialLog.cpp (result = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/system/SerialLog.cpp.o, dep = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/system/SerialLog.cpp.d)
Checking previous results for /root/.arduino15/packages/AZ3166/hardware/stm32f4/1.6.2/cores/arduino/system/SystemFunc.cpp (result = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/system/SystemFunc.cpp.o, dep = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/system/SystemFunc.cpp.d)
Checking previous results for /root/.arduino15/packages/AZ3166/hardware/stm32f4/1.6.2/cores/arduino/system/SystemTickCounter.cpp (result = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/system/SystemTickCounter.cpp.o, dep = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/system/SystemTickCounter.cpp.d)
Checking previous results for /root/.arduino15/packages/AZ3166/hardware/stm32f4/1.6.2/cores/arduino/system/SystemTime.cpp (result = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/system/SystemTime.cpp.o, dep = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/system/SystemTime.cpp.d)
Checking previous results for /root/.arduino15/packages/AZ3166/hardware/stm32f4/1.6.2/cores/arduino/system/SystemVariables.cpp (result = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/system/SystemVariables.cpp.o, dep = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/system/SystemVariables.cpp.d)
Checking previous results for /root/.arduino15/packages/AZ3166/hardware/stm32f4/1.6.2/cores/arduino/system/SystemVersion.cpp (result = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/system/SystemVersion.cpp.o, dep = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/system/SystemVersion.cpp.d)
Checking previous results for /root/.arduino15/packages/AZ3166/hardware/stm32f4/1.6.2/cores/arduino/system/SystemWeb.cpp (result = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/system/SystemWeb.cpp.o, dep = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/system/SystemWeb.cpp.d)
Checking previous results for /root/.arduino15/packages/AZ3166/hardware/stm32f4/1.6.2/cores/arduino/system/SystemWiFi.cpp (result = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/system/SystemWiFi.cpp.o, dep = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/system/SystemWiFi.cpp.d)
Checking previous results for /root/.arduino15/packages/AZ3166/hardware/stm32f4/1.6.2/cores/arduino/system/_main_arduino.cpp (result = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/system/_main_arduino.cpp.o, dep = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/system/_main_arduino.cpp.d)
Checking previous results for /root/.arduino15/packages/AZ3166/hardware/stm32f4/1.6.2/cores/arduino/system/_main_sys.cpp (result = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/system/_main_sys.cpp.o, dep = /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/system/_main_sys.cpp.d)
Not found: /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/OledDisplay.cpp.o
Not found: /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/TLSSocket.cpp.o
Not found: /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/UARTClass.cpp.o
Not found: /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/WCharacter.cpp.o
Not found: /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/WMath.cpp.o
Not found: /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/WString.cpp.o
Not found: /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/Watchdog.cpp.o
Not found: /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/pgmspace.cpp.o
Not found: /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/wiring.cpp.o
Not found: /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/wiring_analog.cpp.o
Not found: /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/wiring_digital.cpp.o
Not found: /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/NTPClient/NTPClient.cpp.o
Not found: /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/Telemetry/Telemetry.cpp.o
Not found: /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/Telemetry/TelemetryClient.cpp.o
Not found: /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/cli/console_cli.cpp.o
Not found: /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/httpclient/http_c_response.cpp.o
Not found: /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/httpclient/http_client.cpp.o
Not found: /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/httpclient/http_header_builder.cpp.o
Not found: /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/httpclient/http_parsed_url.cpp.o
Not found: /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/httpclient/http_response_parser.cpp.o
Not found: /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/httpclient/https_request.cpp.o
Not found: /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/httpserver/app_httpd.cpp.o
Not found: /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/system/OTAFirmwareUpdate.cpp.o
Not found: /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/system/SerialLog.cpp.o
Not found: /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/system/SystemFunc.cpp.o
Not found: /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/system/SystemTickCounter.cpp.o
Not found: /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/system/SystemTime.cpp.o
Not found: /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/system/SystemVariables.cpp.o
Not found: /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/system/SystemVersion.cpp.o
Not found: /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/system/SystemWeb.cpp.o
Not found: /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/system/SystemWiFi.cpp.o
Not found: /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/system/_main_arduino.cpp.o
Not found: /tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/core/system/_main_sys.cpp.o
Ts: 1555324978 - Running: RecipeByPrefixSuffixRunner
Looking for recipes like recipe.hooks.core.postbuild*.pattern
Ts: 1555324978 - Running: loggerAction
Ts: 1555324978 - Running: RecipeByPrefixSuffixRunner
Looking for recipes like recipe.hooks.linking.prelink*.pattern
Ts: 1555324978 - Running: Linker
Ts: 1555324978 - Running: RecipeByPrefixSuffixRunner
Looking for recipes like recipe.hooks.linking.postlink*.pattern
Ts: 1555324978 - Running: RecipeByPrefixSuffixRunner
Looking for recipes like recipe.hooks.objcopy.preobjcopy*.pattern
Ts: 1555324978 - Running: RecipeByPrefixSuffixRunner
Looking for recipes like recipe.objcopy.*.pattern
Running recipe: recipe.objcopy.bin.pattern
Ts: 1555324978 - Running: RecipeByPrefixSuffixRunner
Looking for recipes like recipe.hooks.objcopy.postobjcopy*.pattern
Ts: 1555324978 - Running: MergeSketchWithBootloader
Ts: 1555324978 - Running: RecipeByPrefixSuffixRunner
Looking for recipes like recipe.hooks.postbuild*.pattern
Ts: 1555324978 - Running: PrintUsedAndNotUsedLibraries
Ts: 1555324978 - Running: PrintUsedLibrariesIfVerbose
Ts: 1555324978 - Running: ExportProjectCMake
Ts: 1555324978 - Running: Sizer
Sketch uses 215260 bytes (20%) of program storage space. Maximum is 1048576 bytes.
Global variables use 43896 bytes (16%) of dynamic memory, leaving 218248 bytes for local variables. Maximum is 262144 bytes.
INFO[0022] copying sketch build output                   from=/tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/devkit.ino.bin to=/root/Arduino/devkit/devkit.AZ3166.stm32f4.MXCHIP_AZ3166.bin
INFO[0022] copying sketch build output                   from=/tmp/arduino-sketch-EE403C8C9656741E279CF77C06E4F128/devkit.ino.elf to=/root/Arduino/devkit/devkit.AZ3166.stm32f4.MXCHIP_AZ3166.elf

Wait for the reply. Thanks a lot!

per1234 commented 5 years ago

Although you can't set it via arduino-cli.yaml, you can accomplish this via arduino-cli compile's --build-path and --build-cache-path options.

dilin-MS commented 5 years ago

Hi, @per1234 , I try the arduino-cli compile's --build-path and --build-cache-path options. The result confuses me. Could you help explain?

Background

I mount the folder /root to a docker volume., which means everytime I run the image, only /root will be preserved. Other folders will be flushed out(for example, /tmp). To preserve last time compilation result, I will set the compiled files to be stored in /root folder.

Command:

project_path=/root/Arduino/device
tmp_path=/root/tmp
  1. arduino-cli compile --fqbn AZ3166:stm32f4:MXCHIP_AZ3166 ${project_path} --debug
  2. arduino-cli compile --fqbn AZ3166:stm32f4:MXCHIP_AZ3166 ${project_path} --build-cache-path ${tmp_path} --build-path ${tmp_path} --debug
  3. arduino-cli compile --fqbn AZ3166:stm32f4:MXCHIP_AZ3166 ${project_path} --build-path ${tmp_path} --debug
  4. arduino-cli compile --fqbn AZ3166:stm32f4:MXCHIP_AZ3166 ${project_path} --build-cache-path ${tmp_path} --debug

I ran the above four commands separately. Only the fourth command achieves incremental build, which means re-compilation takes little time. Other commands' second-time compilation time consumption is as same as the first time. They didn't achieve incremental build. Why? Why the --build-cache-path didn't save the time and even worse the time?

By running the fourth command arduino-cli compile --fqbn AZ3166:stm32f4:MXCHIP_AZ3166 ${project_path} --build-cache-path ${tmp_path} --debug, the recompile action only suggest "devkit.ino.cpp.o" as "Not Found".

Not found: /tmp/arduino-sketch-3E00829D3080742371472E93F1888B0F/sketch/device.ino.cpp.o

Any other best practice?

dilin-MS commented 5 years ago

@per1234 ,Hi, how can I specify the build output file XX.elf and XX.bin to a customized folder, such as a folder named .build/? We do not want to place the file directly in the skech folder. Currently if I set --build-path=.build/, the arduino-cli compile command will first store them in .build folder, and later copy them into my skech folder.

Looking for the solution. Thanks!

per1234 commented 5 years ago

You can use arduino-cli compile's --output option for this purpose:

arduino-cli compile --fqbn AZ3166:stm32f4:MXCHIP_AZ3166 /workspaces/workflow/ --build-path /workspaces/workflow/.build --output /workspaces/workflow/.build/output --debug

will save the output files as /workspaces/workflow/.build/output/output.elf and /workspaces/workflow/.build/output/output.bin.

lhanson commented 4 years ago

It seems like this should really be configurable via arduino-cli.yaml.

diegormsouza commented 1 year ago

Hi everyone! I wonder if the latest IDE version is already supporting the configuration of the output path via arduino-cli.yaml.

I'm using the hex files in a simulator and this would facilitate a lot.

Thanks!