diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..042ce8a --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,13 @@ +# Changelog + +All notable changes to the project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +All dates in this file follow [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html). + +## [Unreleased] + +### Added +- Include Arduino bundled libraries ([#1](https://github.com/wanzenried/Arduino-AVR-CMake/pull/1)) diff --git a/CMakeLists.txt b/CMakeLists.txt index ab9d9d6..3ef1c99 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -5,9 +5,19 @@ include(cmake/lto.cmake) include(cmake/arduino_core.cmake) include(cmake/arduino_hex.cmake) include(cmake/arduino_upload.cmake) +include(cmake/arduino_libs.cmake) add_executable(blink blink.cpp) -target_link_libraries(blink PUBLIC ArduinoCore) + +# Remove comments from libraries you wish to use +target_link_libraries(blink PUBLIC + ArduinoCore + #ArduinoEEPROM + #ArduinoHID + #ArduinoSPI + #ArduinoSoftSerial + #ArduinoWire +) target_compile_options(blink PRIVATE "-Wall" "-Wextra" diff --git a/cmake/arduino_libs.cmake b/cmake/arduino_libs.cmake new file mode 100644 index 0000000..a25f432 --- /dev/null +++ b/cmake/arduino_libs.cmake @@ -0,0 +1,47 @@ +# Adds libraries included by default in arduino installs + +set(ARDUINO_LIB_PATH ${ARDUINO_AVR_PATH}/libraries) + +# EEPROM +add_library(ArduinoEEPROM INTERFACE) +target_include_directories(ArduinoEEPROM INTERFACE + ${ARDUINO_LIB_PATH}/EEPROM/src +) +target_link_libraries(ArduinoEEPROM INTERFACE ArduinoCore) + +# HID +add_library(ArduinoHID STATIC + ${ARDUINO_LIB_PATH}/HID/src/HID.cpp +) +target_include_directories(ArduinoHID PUBLIC + ${ARDUINO_LIB_PATH}/HID/src +) +target_link_libraries(ArduinoHID PUBLIC ArduinoCore) + +# SPI +add_library(ArduinoSPI STATIC + ${ARDUINO_LIB_PATH}/SPI/src/SPI.cpp +) +target_include_directories(ArduinoSPI PUBLIC + ${ARDUINO_LIB_PATH}/SPI/src +) +target_link_libraries(ArduinoSPI PUBLIC ArduinoCore) + +# SoftwareSerial +add_library(ArduinoSoftSerial STATIC + ${ARDUINO_LIB_PATH}/SoftwareSerial/src/SoftwareSerial.cpp +) +target_include_directories(ArduinoSoftSerial PUBLIC + ${ARDUINO_LIB_PATH}/SoftwareSerial/src +) +target_link_libraries(ArduinoSoftSerial PUBLIC ArduinoCore) + +# Wire +add_library(ArduinoWire STATIC + ${ARDUINO_LIB_PATH}/Wire/src/Wire.cpp + ${ARDUINO_LIB_PATH}/Wire/src/utility/twi.c +) +target_include_directories(ArduinoWire PUBLIC + ${ARDUINO_LIB_PATH}/Wire/src +) +target_link_libraries(ArduinoWire PUBLIC ArduinoCore) \ No newline at end of file