You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Apr 17, 2023. It is now read-only.
Copy file name to clipboardExpand all lines: CHANGELOG.md
+64-14Lines changed: 64 additions & 14 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,9 +1,59 @@
1
1
# Change Log
2
2
3
+
## Version 0.6
4
+
5
+
This is a **BIG** version including numerous bug fixes, changes and even some new features.
6
+
It mostly addressed *3rd Party Libraries*.
7
+
8
+
### New Features
9
+
10
+
* 3rd Party Arduino libraries can now be manually added from any path using the `add_arduino_library` function or automatically found using the `find_arduino_library` function.
11
+
To use the *find API*, the `3RD_PARTY` argument option should be passed to the function.
12
+
13
+
* Header-only Arduino libraries are now supported - They can be manually added using the `add_arduino_header_only_library` function or automatically found using the `find_arduino_library` function.
14
+
To use the *find API*, the`HEADER_ONLY` argument option should be pass to the function.
15
+
16
+
* Full Arduino IDE *Sketchbook* support - Libraries, examples and sketches can be optionally searched there as well.
17
+
The framework can also automatically find the *Sketchbook Location*, however, this is disabled by default, what also means that unless set otherwise, the framework ***doesn't search the sketchbook*** - This policy is set due to the unwanted dependency on the Arduino IDE for this feature to fully work.
18
+
Further information can be found in the documentation.
19
+
* Many improvements to the CI platforms **AppVeyor** and **Travis CI**, including:
20
+
* Cached builds - Decreased build time significantly
21
+
* Improved control-flow and readability
22
+
23
+
### Bug Fixes
24
+
25
+
* All functions that were expecting a theoretically "unlimited" list of sources to operate on, such as `add_arduino_executable`, `add_arduino_library` etc. couldn't parse more than one file which also was the first.
26
+
* The `Linux-Dist-Detection` module didn't check whether the required dependencies for the detection are installed.
27
+
* 3rd Party libraries that don't include a **library.properties** file couldn't be used.
28
+
* 3rd Party libraries have been renamed to an "Arduino-Compliant" name when attempting to find them using the `find_arduino_library` function, which renamed them to an invalid name.
29
+
* 3rd Party libraries that have been added using custom CMake logic (Calls to `add_library`) didn't get any of the build flags that every Arduino library has to have.
30
+
* The framework couldn't automatically find the Arduino SDK on OS X images.
31
+
32
+
### Changes
33
+
34
+
* Updated project's workflow model, which mostly modifies the development branch from now on to be the **master** branch, instead of **develop**. More can be read in the **CONTRIBUTING.md** file.
35
+
36
+
* The `Find-SDK` module now searches for the **version.txt** file under a sub-directory named **lib**, which resides directly under SDK's root path. This file's path is common across all OSs, unlike the previously searched **arduino** program.
37
+
38
+
* The `find_arduino_library` function now searches under the following paths:
39
+
40
+
*`ARDUINO_SDK_LIBRARIES_PATH` - Usually the **libraries** directory under the SDK's root directory
*`CMAKE_CURRENT_SOURCE_DIRECTORY` - The directory in which the executed **CMakeLists.txt** file resides, i.e. Project's source directory
43
+
*`PROJECT_SOURCE_DIR` - The directory in which the **CMakeLists.txt** file that sets the `project` resides.
44
+
45
+
Besides, the following sub-directories are searched under every path mentioned above:
46
+
47
+
-**libraries**
48
+
-**dependencies**
49
+
50
+
* 3rd Party Arduino Libraries do not longer have to include the **library.properties** file in their root directory - Their root directory is searched instead.
51
+
Nevertheless including the file is still ***recommended***, because when the file isn't present, the framework can't infer potentially required metadata from it.
52
+
3
53
## Version 0.5.2
4
54
5
-
This version adds case-insensitive support for examples, forgotten in the last version.
6
-
Fixes a bug in Core-Lib target creation on Debian/Ubuntu systems, and adds support for **AppVeyor** CI.
55
+
This version adds case-insensitive support for examples, forgotten in the last version.
56
+
Fixes a bug in Core-Lib target creation on Debian/Ubuntu systems, and adds support for **AppVeyor** CI.
7
57
8
58
But most importantly - It changes the way users should supply a custom SDK location.
9
59
@@ -23,7 +73,7 @@ But most importantly - It changes the way users should supply a custom SDK locat
23
73
24
74
## Version 0.5.1
25
75
26
-
This version fixes some "invisible" bugs from previous versions, along with general design improvements.
76
+
This version fixes some "invisible" bugs from previous versions, along with general design improvements.
27
77
Moreover, there are even some new minor features.
28
78
29
79
### New Features
@@ -48,7 +98,7 @@ This version refactored the Sketch API entirely to enhance support for missing f
48
98
49
99
- Headers included in a sketch file are now resolved to provide better insight
50
100
- Arduino/Platform libraries that are resolved from a sketch's headers are linked to the target
51
-
- Option/Policy to "forcefully" convert a sketch to a source file when adding it to a target, even if the source file already exists (Usually means that sketch has already been converted).
101
+
- Option/Policy to "forcefully" convert a sketch to a source file when adding it to a target, even if the source file already exists (Usually means that sketch has already been converted).
52
102
By default it's set to **OFF**.
53
103
54
104
### Changes
@@ -74,15 +124,15 @@ This version mostly added support for examples and sketches.
74
124
75
125
* Arduino examples such as **Blink** can now be used by calling the `add_arduino_example` function
76
126
* Arduino library examples, each being part of an Arduino library, can also be used by calling the `add_arduino_library_example` function
77
-
* Arduino Sketches can be converted into source files under the project's source directory.
127
+
* Arduino Sketches can be converted into source files under the project's source directory.
78
128
The API to use them seamlessly as using examples is still missing, however.
79
-
* During platform initialization the main header of the platform gets selected.
80
-
This is useful for sketch conversion, as sketches usually don't include the header in their source files but depend on the **Arduino IDE** to do so instead.
129
+
* During platform initialization the main header of the platform gets selected.
130
+
This is useful for sketch conversion, as sketches usually don't include the header in their source files but depend on the **Arduino IDE** to do so instead.
81
131
The header is selected based on the number of `#include` lines it has - The header with most includes is selected as platform's main header, as it probably includes many other platform headers.
82
132
83
133
### Changes
84
134
85
-
* The API of the utility function `list_replace` now resembles CMake's List API.
135
+
* The API of the utility function `list_replace` now resembles CMake's List API.
86
136
It's also a macro now instead of a function.
87
137
* Improved logic and performance of utility `increment` and `decrement` math functions
88
138
@@ -102,17 +152,17 @@ This version added support for Arduino libraries and platform libraries.
102
152
103
153
* Arduino libraries can be found by calling `find_arduino_library` and then linked to another target by calling `link_arduino_library`
104
154
* The library search process is architecture-aware, meaning that only sources that match the platform's architecture will be included in the library target
105
-
* Arduino platform libraries can be simply linked to another target by calling `link_platform_library`.
155
+
* Arduino platform libraries can be simply linked to another target by calling `link_platform_library`.
106
156
There's no special search process for platform libraries as there is for Arduino libraries.
107
157
108
158
## Version 0.2
109
159
110
-
This version added support for the **Core Library** - A static library built from the platform's core sources that must be linked to every single target in the Arduino build system, including libraries in the future.
160
+
This version added support for the **Core Library** - A static library built from the platform's core sources that must be linked to every single target in the Arduino build system, including libraries in the future.
111
161
This library is also the missing piece for getting correct program sizes, which hasn't been the case up until now.
112
162
113
163
### New Features
114
164
115
-
* The Core Library is added once per board (As a board has a single associated core) and linked against every created target.
165
+
* The Core Library is added once per board (As a board has a single associated core) and linked against every created target.
116
166
This behavior is internal and not up to the control of the user, much like a Kernel.
117
167
118
168
### Changes
@@ -128,13 +178,13 @@ This version added support for displaying a program's size upon build completion
128
178
129
179
### New Features
130
180
131
-
* Program size output for every executable target at the end of each successful build.
132
-
This is done using Arduino's **avr-size** tool.
181
+
* Program size output for every executable target at the end of each successful build.
182
+
This is done using Arduino's **avr-size** tool.
133
183
The tool's output is then reformatted to match the format of Arduino IDE.
134
184
135
185
## Version 0.1
136
186
137
-
This is the bare metal version of the framework, adding support for the very basic stuff.
187
+
This is the bare metal version of the framework, adding support for the very basic stuff.
138
188
Although basic, there's a lot that had to be done in order to reach a somewhat "stable" version that can be burned to the board and actually work.
0 commit comments