A CMake toolchain for building and uploading AVR microcontroller projects across Linux, Windows, and OS X.
cmake-avr is a CMake toolchain file designed for building and uploading projects targeting AVR microcontrollers. It integrates the AVR-GCC compiler toolchain and AVRDUDE programmer into CMake's build system, allowing developers to manage AVR projects with standard CMake commands. This solves the problem of platform-specific build scripts and manual toolchain configuration for embedded AVR development.
Embedded developers and hobbyists working with AVR microcontrollers (e.g., ATmega, ATtiny) who want to use CMake for cross-platform project management and automation.
Developers choose cmake-avr because it provides a consistent, portable build workflow across Linux, Windows, and OS X, reducing setup time and eliminating platform-specific build issues. Its integration with CMake offers familiar syntax and extensibility compared to custom Makefiles or IDE-specific project files.
cmake toolchain for AVR
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Tested on Linux, Windows XP/7, and OS X with various CMake, AVR-GCC, and tool versions, providing a unified build experience across operating systems as detailed in the README.
Includes settings for baud rates and upload parameters, simplifying the flashing process for AVR devices directly from the build system, as mentioned in the key features.
Leverages familiar CMake functions like add_definition() and generates help targets via make help, allowing developers to use existing CMake knowledge and automation.
Supports optional attachment of MCU type to target names and linking libraries without file extensions, enhancing project organization and flexibility, as noted in the ToDo list.
The README admits that with Windows 7 and Atmel Studio 6.2, make.exe crashes during cmake generation, and the cause is unknown, indicating unresolved platform-specific bugs.
Requires extending the PATH variable and defining AVR_FIND_ROOT_PATH on Windows, adding setup complexity and potential for errors compared to more integrated solutions.
Specifically designed for AVR microcontrollers only, so it cannot be used for projects targeting other architectures like ARM or RISC-V, limiting its scope.
Tested with older versions of CMake, AVR-GCC, and operating systems like Windows XP, which may not reflect compatibility with current toolchains or newer OS versions.