From 1cd989213d7a4fc368251a36163806323aad1c78 Mon Sep 17 00:00:00 2001 From: Robert Wessels <robertinant@yahoo.com> Date: Tue, 23 Feb 2016 11:00:04 -0800 Subject: [PATCH 1/2] Add build.project_path to global properties This patch adds the build.project_path to the global properties. --- src/arduino.cc/builder/constants/constants.go | 1 + src/arduino.cc/builder/setup_build_properties.go | 1 + 2 files changed, 2 insertions(+) diff --git a/src/arduino.cc/builder/constants/constants.go b/src/arduino.cc/builder/constants/constants.go index deb57fcf..db5cc557 100644 --- a/src/arduino.cc/builder/constants/constants.go +++ b/src/arduino.cc/builder/constants/constants.go @@ -44,6 +44,7 @@ const BUILD_PROPERTIES_BUILD_CORE_PATH = "build.core.path" const BUILD_PROPERTIES_BUILD_MCU = "build.mcu" const BUILD_PROPERTIES_BUILD_PATH = "build.path" const BUILD_PROPERTIES_BUILD_PROJECT_NAME = "build.project_name" +const BUILD_PROPERTIES_BUILD_PROJECT_PATH = "build.project_path" const BUILD_PROPERTIES_BUILD_SYSTEM_PATH = "build.system.path" const BUILD_PROPERTIES_BUILD_VARIANT = "build.variant" const BUILD_PROPERTIES_BUILD_VARIANT_PATH = "build.variant.path" diff --git a/src/arduino.cc/builder/setup_build_properties.go b/src/arduino.cc/builder/setup_build_properties.go index 7e9332f7..553bbcb4 100644 --- a/src/arduino.cc/builder/setup_build_properties.go +++ b/src/arduino.cc/builder/setup_build_properties.go @@ -59,6 +59,7 @@ func (s *SetupBuildProperties) Run(context map[string]interface{}) error { } if utils.MapHas(context, constants.CTX_SKETCH) { buildProperties[constants.BUILD_PROPERTIES_BUILD_PROJECT_NAME] = filepath.Base(context[constants.CTX_SKETCH].(*types.Sketch).MainFile.Name) + buildProperties[constants.BUILD_PROPERTIES_BUILD_PROJECT_PATH] = filepath.Dir(context[constants.CTX_SKETCH].(*types.Sketch).MainFile.Name) } buildProperties[constants.BUILD_PROPERTIES_BUILD_ARCH] = strings.ToUpper(targetPlatform.PlatformId) From 95ebd3c15ac0924693f8739a92ccb946b5978fbe Mon Sep 17 00:00:00 2001 From: Robert Wessels <robertinant@yahoo.com> Date: Mon, 17 Jul 2017 14:37:48 -0700 Subject: [PATCH 2/2] Crash work-around for EMT targets --- src/arduino.cc/builder/container_find_includes.go | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/arduino.cc/builder/container_find_includes.go b/src/arduino.cc/builder/container_find_includes.go index cc14a4f2..514bebb8 100644 --- a/src/arduino.cc/builder/container_find_includes.go +++ b/src/arduino.cc/builder/container_find_includes.go @@ -376,7 +376,16 @@ func queueSourceFilesFromFolder(ctx *types.Context, queue *types.UniqueSourceFil if err != nil { return i18n.WrapError(err) } - queue.Push(sourceFile) + /* + * hack: This is for Energia EMT targets to skip main.cpp + * When the cache file is build the first time, main.cpp is not there yet + * in the <build folder>/sketch. + * On a second run it is there and the cache mismatches that of what is on disk + * resulting in a pointer outside the cache array. + */ + if sourceFile.RelativePath != "main.cpp" { + queue.Push(sourceFile) + } } return nil