Unverified Commit f0245bc2 authored by Cristian Maglie's avatar Cristian Maglie Committed by GitHub

[skip-changelog] Fixed initialization of profile libraries (#1739)

* Fixed initializaion of profile libraries

* Apply suggestions from code review

The library must be installed globally in order to provide coverage of the bug.
Co-authored-by: default avatarper1234 <accounts@perglass.com>
Co-authored-by: default avatarper1234 <accounts@perglass.com>
parent 7e9e4cac
......@@ -124,7 +124,7 @@ func Compile(ctx context.Context, req *rpc.CompileRequest, outStream, errStream
builderCtx.OtherLibrariesDirs = paths.NewPathList(req.GetLibraries()...)
builderCtx.OtherLibrariesDirs.Add(configuration.LibrariesDir(configuration.Settings))
builderCtx.LibraryDirs = paths.NewPathList(req.Library...)
if len(builderCtx.OtherLibrariesDirs) > 0 || len(builderCtx.LibraryDirs) > 0 {
if len(req.GetLibraries()) > 0 || len(req.GetLibrary()) > 0 {
builderCtx.LibrariesManager = nil // let the builder rebuild the library manager
}
if req.GetBuildPath() == "" {
......
# This file is part of arduino-cli.
#
# Copyright 2020 ARDUINO SA (http://www.arduino.cc/)
#
# This software is released under the GNU General Public License version 3,
# which covers the main part of arduino-cli.
# The terms of this license can be found at:
# https://www.gnu.org/licenses/gpl-3.0.en.html
#
# You can be released from the requirements of the above licenses by purchasing
# a commercial license. Buying such a license is mandatory if you want to modify or
# otherwise use the software for commercial activities involving the Arduino
# software without disclosing the source code of your own applications. To purchase
# a commercial license, send an email to license@arduino.cc.
def test_compile_with_profiles(run_command, copy_sketch):
# Init the environment explicitly
run_command(["core", "update-index"])
sketch_path = copy_sketch("sketch_with_profile")
# use profile without a required library -> should fail
assert run_command(["lib", "install", "Arduino_JSON"])
result = run_command(["compile", "-m", "avr1", sketch_path])
assert result.failed
# use profile with the required library -> should succeed
result = run_command(["compile", "-m", "avr2", sketch_path])
assert result.ok
profiles:
avr1:
fqbn: arduino:avr:uno
platforms:
- platform: arduino:avr (1.8.5)
avr2:
fqbn: arduino:avr:uno
platforms:
- platform: arduino:avr (1.8.5)
libraries:
- Arduino_JSON (0.1.0)
#include <Arduino_JSON.h>
void setup() {}
void loop() {}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment