Releases: arduino-cmake/Arduino-CMake-NG
v0.6.1
Version 0.6.1
Several bug-fixes discovered in the latest v0.6 and some minor features.
New Features
- Added ability to create Arduino libraries without specifying sources at the moment of creation.
It aligns well with CMake'starget_sources
API.
Bug Fixes
-
Fixed a potential regression bug on ubuntu/debian systems causing problems with the CoreLib creation.
-
Platform elements search has been updated to exclude system's PATH in order to avoid false path detection.
-
Fixed bug where platform libraries weren't using all of their sources.
Version 0.6
This is a BIG version including numerous bug fixes, changes and even some new features.
It mostly addressed 3rd Party Libraries.
New Features
-
3rd Party Arduino libraries can now be manually added from any path using the
add_arduino_library
function or automatically found using thefind_arduino_library
function.
To use the find API, the3RD_PARTY
argument option should be passed to the function. -
Header-only Arduino libraries are now supported - They can be manually added using the
add_arduino_header_only_library
function or automatically found using thefind_arduino_library
function.
To use the find API, theHEADER_ONLY
argument option should be pass to the function. -
Full Arduino IDE Sketchbook support - Libraries, examples and sketches can be optionally searched there as well.
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.
Further information can be found in the documentation. -
Many improvements to the CI platforms AppVeyor and Travis CI, including:
- Cached builds - Decreased build time significantly
- Improved control-flow and readability
Bug Fixes
- 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. - The
Linux-Dist-Detection
module didn't check whether the required dependencies for the detection are installed. - 3rd Party libraries that don't include a library.properties file couldn't be used.
- 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. - 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. - The framework couldn't automatically find the Arduino SDK on OS X images.
Changes
-
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.
-
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. -
The
find_arduino_library
function now searches under the following paths:ARDUINO_SDK_LIBRARIES_PATH
- Usually the libraries directory under the SDK's root directory- Sketchbook Location - Arduino IDE's Sketchbook path, storing all user-downloaded libraries
CMAKE_CURRENT_SOURCE_DIRECTORY
- The directory in which the executed CMakeLists.txt file resides, i.e. Project's source directoryPROJECT_SOURCE_DIR
- The directory in which the CMakeLists.txt file that sets theproject
resides.
Besides, the following sub-directories are searched under every path mentioned above:
- libraries
- dependencies
-
3rd Party Arduino Libraries do not longer have to include the library.properties file in their root directory - Their root directory is searched instead.
Nevertheless including the file is still recommended, because when the file isn't present, the framework can't infer potentially required metadata from it.