cmake_minimum_required(VERSION 2.8)
project(tinyapp)
-SET(BUILD_TARGET "stm32g030" CACHE STRING "Target [stm32g030, stm32F103, atmega328p,atmega32u4]")
+set(OPTSUBDIRS "")
+set(BUILD_TARGET "stm32g030" CACHE STRING "Target [stm32g030, stm32F103, atmega328p,atmega32u4]")
if("${BUILD_TARGET}" STREQUAL "atmega328p")
include(${CMAKE_CURRENT_SOURCE_DIR}/rules/target-atmega328p.cmake)
elseif ("${BUILD_TARGET}" STREQUAL "atmega32u4")
include(${CMAKE_CURRENT_SOURCE_DIR}/rules/target-atmega32u4.cmake)
+ list(APPEND OPTSUBDIRS Externals/LUFA-210130)
elseif ("${BUILD_TARGET}" STREQUAL "stm32g030")
include(${CMAKE_CURRENT_SOURCE_DIR}/rules/target-stm32g030.cmake)
else()
endif()
if (NOT CMAKE_BUILD_TYPE)
- SET(CMAKE_BUILD_TYPE "Debug")
-ENDIF(NOT CMAKE_BUILD_TYPE)
+ set(CMAKE_BUILD_TYPE "Debug")
+endif(NOT CMAKE_BUILD_TYPE)
-SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DDEBUG")
+set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DDEBUG")
-SUBDIRS(HAL Application Platform Communication Metadata)
+SUBDIRS(HAL Application Platform Communication Metadata ${OPTSUBDIRS})
INCLUDE_DIRECTORIES("${tinyapp_SOURCE_DIR}")
INCLUDE_DIRECTORIES("${tinyapp_SOURCE_DIR}/HAL")
--- /dev/null
+project(LUFA)
+
+set(LUFA_ROOT_PATH ${LUFA_SOURCE_DIR}/LUFA)
+set(ARCH AVR8)
+# Construct LUFA module source variables
+set(LUFA_SRC_USB_COMMON ${LUFA_ROOT_PATH}/Drivers/USB/Core/${ARCH}/USBController_${ARCH}.c
+ ${LUFA_ROOT_PATH}/Drivers/USB/Core/${ARCH}/USBInterrupt_${ARCH}.c
+ ${LUFA_ROOT_PATH}/Drivers/USB/Core/ConfigDescriptors.c
+ ${LUFA_ROOT_PATH}/Drivers/USB/Core/Events.c
+ ${LUFA_ROOT_PATH}/Drivers/USB/Core/USBTask.c
+ ${LUFA_ROOT_PATH}/Drivers/USB/Class/Common/HIDParser.c
+)
+
+set(LUFA_SRC_USB_HOST ${LUFA_ROOT_PATH}/Drivers/USB/Core/${ARCH}/Host_${ARCH}.c
+ ${LUFA_ROOT_PATH}/Drivers/USB/Core/${ARCH}/Pipe_${ARCH}.c
+ ${LUFA_ROOT_PATH}/Drivers/USB/Core/${ARCH}/PipeStream_${ARCH}.c
+ ${LUFA_ROOT_PATH}/Drivers/USB/Core/HostStandardReq.c
+ ${LUFA_SRC_USB_COMMON}
+)
+
+set(LUFA_SRC_USB_DEVICE ${LUFA_ROOT_PATH}/Drivers/USB/Core/${ARCH}/Device_${ARCH}.c
+ ${LUFA_ROOT_PATH}/Drivers/USB/Core/${ARCH}/Endpoint_${ARCH}.c
+ ${LUFA_ROOT_PATH}/Drivers/USB/Core/${ARCH}/EndpointStream_${ARCH}.c
+ ${LUFA_ROOT_PATH}/Drivers/USB/Core/DeviceStandardReq.c
+ ${LUFA_SRC_USB_COMMON}
+)
+
+set(LUFA_SRC_USBCLASS_DEVICE
+ ${LUFA_ROOT_PATH}/Drivers/USB/Class/Device/AudioClassDevice.c
+ ${LUFA_ROOT_PATH}/Drivers/USB/Class/Device/CCIDClassDevice.c
+ ${LUFA_ROOT_PATH}/Drivers/USB/Class/Device/CDCClassDevice.c
+ ${LUFA_ROOT_PATH}/Drivers/USB/Class/Device/HIDClassDevice.c
+ ${LUFA_ROOT_PATH}/Drivers/USB/Class/Device/MassStorageClassDevice.c
+ ${LUFA_ROOT_PATH}/Drivers/USB/Class/Device/MIDIClassDevice.c
+ ${LUFA_ROOT_PATH}/Drivers/USB/Class/Device/PrinterClassDevice.c
+ ${LUFA_ROOT_PATH}/Drivers/USB/Class/Device/RNDISClassDevice.c
+)
+
+set(LUFA_SRC_USBCLASS_HOST ${LUFA_ROOT_PATH}/Drivers/USB/Class/Host/AndroidAccessoryClassHost.c
+ ${LUFA_ROOT_PATH}/Drivers/USB/Class/Host/AudioClassHost.c
+ ${LUFA_ROOT_PATH}/Drivers/USB/Class/Host/CDCClassHost.c
+ ${LUFA_ROOT_PATH}/Drivers/USB/Class/Host/HIDClassHost.c
+ ${LUFA_ROOT_PATH}/Drivers/USB/Class/Host/MassStorageClassHost.c
+ ${LUFA_ROOT_PATH}/Drivers/USB/Class/Host/MIDIClassHost.c
+ ${LUFA_ROOT_PATH}/Drivers/USB/Class/Host/PrinterClassHost.c
+ ${LUFA_ROOT_PATH}/Drivers/USB/Class/Host/RNDISClassHost.c
+ ${LUFA_ROOT_PATH}/Drivers/USB/Class/Host/StillImageClassHost.c
+)
+
+set(LUFA_SRC_USB ${LUFA_SRC_USB_COMMON} ${LUFA_SRC_USB_HOST} ${LUFA_SRC_USB_DEVICE})
+
+set(LUFA_SRC_USBCLASS ${LUFA_SRC_USBCLASS_DEVICE} ${LUFA_SRC_USBCLASS_HOST})
+
+
+
+add_avr_library(
+ avrUSB
+ ${LUFA_SRC_USB_COMMON}
+ )
+
+target_compile_definitions(avrUSB-${AVR_MCU} PUBLIC F_USB=${MCU_SPEED})
add_definitions("-fshort-enums")
add_definitions("-Wall")
add_definitions("-Werror")
+if("${BUILD_TARGET}" STREQUAL "atmega32u4")
+else()
+# Causes problems with LUFA
add_definitions("-pedantic")
add_definitions("-pedantic-errors")
+endif()
add_definitions("-funsigned-char")
add_definitions("-funsigned-bitfields")
add_definitions("-ffunction-sections")