
# Dependencies common to bootloader and firmware
set(MINIMAL_BOARD_LIB_SRC
  boards/generic_stm32/inputs.cpp
  boards/generic_stm32/i2c_bus.cpp
  boards/generic_stm32/bl_keys.cpp
  boards/generic_stm32/aux_ports.cpp
)

# Dependencies only used in firmware
set(BOARD_LIB_SRC
  boards/generic_stm32/module_ports.cpp
  boards/generic_stm32/trainer_ports.cpp
  boards/generic_stm32/sport_update.cpp
  boards/generic_stm32/intmodule_heartbeat.cpp
  boards/generic_stm32/analog_inputs.cpp
  boards/generic_stm32/switches.cpp
  boards/generic_stm32/bor_level.cpp
  boards/generic_stm32/rgb_leds.cpp
  boards/generic_stm32/rgb_6pos.cpp
  boards/generic_stm32/battery_voltage.cpp
  boards/generic_stm32/led_driver.cpp
)

add_library(minimal_board_lib OBJECT EXCLUDE_FROM_ALL ${MINIMAL_BOARD_LIB_SRC})
add_dependencies(minimal_board_lib stm32_keys hal_settings hal_pwm_sticks hal_keys_lock)

add_library(board_lib OBJECT EXCLUDE_FROM_ALL ${BOARD_LIB_SRC})
add_dependencies(board_lib minimal_board_lib stm32_adc_inputs stm32_switches stm32_pwm_inputs hal_adc_inputs)

if(DEBUG)
  target_compile_definitions(board_lib PRIVATE DEBUG)
endif()

set(FIRMWARE_SRC ${FIRMWARE_SRC}
  $<TARGET_OBJECTS:minimal_board_lib>
  $<TARGET_OBJECTS:board_lib>
)

set(BOOTLOADER_SRC ${BOOTLOADER_SRC}
  $<TARGET_OBJECTS:minimal_board_lib>
)
