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