Skip to content

Commit 5585883

Browse files
committed
libdefs: a way for user to configure libraries
1 parent 126bb02 commit 5585883

File tree

6 files changed

+37
-9
lines changed

6 files changed

+37
-9
lines changed

i18n/data/en.po

+7-7
Original file line numberDiff line numberDiff line change
@@ -395,7 +395,7 @@ msgstr "Compiling core..."
395395
msgid "Compiling libraries..."
396396
msgstr "Compiling libraries..."
397397

398-
#: legacy/builder/phases/libraries_builder.go:135
398+
#: legacy/builder/phases/libraries_builder.go:136
399399
msgid "Compiling library \"{0}\""
400400
msgstr "Compiling library \"{0}\""
401401

@@ -1358,7 +1358,7 @@ msgstr "Library installed"
13581358
msgid "Library name"
13591359
msgstr "Library name"
13601360

1361-
#: legacy/builder/phases/libraries_builder.go:91
1361+
#: legacy/builder/phases/libraries_builder.go:92
13621362
msgid "Library {0} has been declared precompiled:"
13631363
msgstr "Library {0} has been declared precompiled:"
13641364

@@ -1745,8 +1745,8 @@ msgstr "Port closed:"
17451745
msgid "Port monitor error"
17461746
msgstr "Port monitor error"
17471747

1748-
#: legacy/builder/phases/libraries_builder.go:101
1749-
#: legacy/builder/phases/libraries_builder.go:109
1748+
#: legacy/builder/phases/libraries_builder.go:102
1749+
#: legacy/builder/phases/libraries_builder.go:110
17501750
msgid "Precompiled library in \"{0}\" not found"
17511751
msgstr "Precompiled library in \"{0}\" not found"
17521752

@@ -2069,7 +2069,7 @@ msgstr "The key '%[1]v' is not a list of items, can't remove from it.\n"
20692069
msgid "The output format for the logs, can be: %s"
20702070
msgstr "The output format for the logs, can be: %s"
20712071

2072-
#: legacy/builder/phases/libraries_builder.go:151
2072+
#: legacy/builder/phases/libraries_builder.go:152
20732073
msgid "The platform does not support '{0}' for precompiled libraries."
20742074
msgstr "The platform does not support '{0}' for precompiled libraries."
20752075

@@ -2333,8 +2333,8 @@ msgstr "Using library {0} in folder: {1} {2}"
23332333
msgid "Using precompiled core: {0}"
23342334
msgstr "Using precompiled core: {0}"
23352335

2336-
#: legacy/builder/phases/libraries_builder.go:98
2337-
#: legacy/builder/phases/libraries_builder.go:106
2336+
#: legacy/builder/phases/libraries_builder.go:99
2337+
#: legacy/builder/phases/libraries_builder.go:107
23382338
msgid "Using precompiled library in {0}"
23392339
msgstr "Using precompiled library in {0}"
23402340

legacy/builder/phases/libraries_builder.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,8 @@ type LibrariesBuilder struct{}
3737
func (s *LibrariesBuilder) Run(ctx *types.Context) error {
3838
librariesBuildPath := ctx.LibrariesBuildPath
3939
buildProperties := ctx.BuildProperties
40-
includes := utils.Map(ctx.IncludeFolders.AsStrings(), utils.WrapWithHyphenI)
40+
libFolders := append(ctx.IncludeFolders.AsStrings(), ctx.BuildPath.Join("sketch").Join("libdefs").String()) // user definitions for library include files
41+
includes := utils.Map(libFolders, utils.WrapWithHyphenI)
4142
libs := ctx.ImportedLibraries
4243

4344
if err := librariesBuildPath.MkdirAll(); err != nil {

legacy/builder/phases/sketch_builder.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,8 @@ type SketchBuilder struct{}
2727
func (s *SketchBuilder) Run(ctx *types.Context) error {
2828
sketchBuildPath := ctx.SketchBuildPath
2929
buildProperties := ctx.BuildProperties
30-
includes := utils.Map(ctx.IncludeFolders.AsStrings(), utils.WrapWithHyphenI)
30+
libFolders := append(ctx.IncludeFolders.AsStrings(), ctx.BuildPath.Join("sketch").Join("libdefs").String()) // user definitions for library include files
31+
includes := utils.Map(libFolders, utils.WrapWithHyphenI)
3132

3233
if err := sketchBuildPath.MkdirAll(); err != nil {
3334
return errors.WithStack(err)
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
2+
// This user file is in 'sketchDir/libdefs/' so it can be included by libraries.
3+
//
4+
// Its name and what to include is specified by the library documentation.
5+
6+
#pragma once
7+
8+
#define LIB2_SOME_CONFIG 1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
2+
#if defined __has_include
3+
# if __has_include (<lib2_user_config.h>)
4+
# pragma message "Including local project config file <lib2_user_config.h>"
5+
# include <lib2_user_config.h>
6+
# define DEFAULT_VALUES_ARE_GIVEN 1
7+
# endif
8+
#endif
9+
10+
#ifndef LIB2_SOME_CONFIG
11+
#define LIB2_SOME_CONFIG 0
12+
#endif
13+
14+
#define LIB2_SOME_SIZE ((LIB2_SOME_CONFIG) * 42)

test/testdata/sketch_with_multiple_custom_libraries/sketch_with_multiple_custom_libraries.ino

+4
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
#include "lib1.h"
22
#include "lib2.h"
33

4+
#if LIB2_SOME_SIZE == 42
5+
#pragma message "this was expected"
6+
#endif
7+
48
void setup() {
59
}
610

0 commit comments

Comments
 (0)