# SPDX-License-Identifier: Apache-2.0

cmake_minimum_required(VERSION 3.20.0)
find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE})
project(blinky)

list(APPEND CMAKE_MODULE_PATH ${ZEPHYR_BASE}/modules/nanopb)
include(nanopb)
zephyr_linker_sources(SECTIONS src/usb_function_hook.ld)

zephyr_include_directories(
  inc
  inc/events
  src
)
add_subdirectory(drivers)

zephyr_nanopb_sources(app
  proto/device_comm.proto
)

target_sources(app PRIVATE
  src/main.c
  src/battery_module.c
  src/ble_adv_uuid16.c
  src/ble_bas_module.c
  src/ble_hid_module.c
  src/ble_nus_module.c
  src/display_module.c
  src/encoder_module.c
  src/hid_flowctrl_module.c
  src/keyboard_core_module.c
  src/led_effect/led_effect_registry.c
  src/led_effect/effects/led_effect_key_fade.c
  src/led_strip_module.c
  src/mode_policy_module.c
  src/time_sync_module.c
  src/ui/ui_main.c
  src/protocol_module.c
  src/usb_cdc_module.c
  src/usb_device_module.c
  src/usb_hid_module.c
  src/events/bat_state_event.c
  src/events/datetime_event.c
  src/events/encoder_event.c
  src/events/function_bitmap_state_event.c
  src/events/function_bitmap_update_event.c
  src/events/hid_led_event.c
  src/events/hid_report_sent_event.c
  src/events/hid_transport_state_event.c
  src/events/hid_tx_report_event.c
  src/events/led_strip_en_event.c
  src/mode_switch_module.c
  src/events/keyboard_hid_report_event.c
  src/events/mode_switch_event.c
  src/events/proto_rx_event.c
  src/events/proto_tx_event.c
  src/events/set_protocol_event.c
  src/events/theme_rgb_update_event.c
  src/events/time_sync_event.c
  src/events/usb_state_event.c
)
