add_library(SPI spi.c ${CSL_SOURCES}/imp_spi.c) target_compile_options(SPI PRIVATE ${C_FLAGS}) target_compile_definitions(SPI PRIVATE ${C_DEFS}) target_include_directories(SPI PUBLIC ${PERIFERALS_DIR} ${CSL_INCLUDES}) add_library(sub::spi ALIAS SPI) add_library(DELAY ${CSL_SOURCES}/imp_delay.c) target_compile_options(DELAY PRIVATE ${C_FLAGS}) target_compile_definitions(DELAY PRIVATE ${C_DEFS}) target_include_directories(DELAY PUBLIC ${PERIFERALS_DIR} ${CSL_INCLUDES}) add_library(sub::delay ALIAS DELAY) add_library(PIN ${CSL_SOURCES}/imp_pin.c) target_compile_options(PIN PRIVATE ${C_FLAGS}) target_compile_definitions(PIN PRIVATE ${C_DEFS}) target_include_directories(PIN PUBLIC ${PERIFERALS_DIR} ${CSL_INCLUDES}) add_library(sub::pin ALIAS PIN) add_library(USART ${CSL_SOURCES}/imp_usart.c) target_compile_options(USART PRIVATE ${C_FLAGS}) target_compile_definitions(USART PRIVATE ${C_DEFS}) target_include_directories(USART PUBLIC ${PERIFERALS_DIR} ${CSL_INCLUDES}) add_library(sub::usart ALIAS USART) # TODO: this point needs to be discussed. How should it work and what should it do? add_library(INIT ${CSL_SOURCES}/deviceSetup.c) target_compile_options(INIT PRIVATE ${C_FLAGS}) target_compile_definitions(INIT PRIVATE ${C_DEFS}) target_include_directories(INIT PUBLIC ${PERIFERALS_DIR} ${CSL_INCLUDES}) add_library(sub::init ALIAS INIT) add_library(I2C i2c.c ${CSL_SOURCES}/imp_i2c.c) target_compile_options(I2C PRIVATE ${C_FLAGS}) target_compile_definitions(I2C PRIVATE ${C_DEFS}) target_include_directories(I2C PUBLIC ${PERIFERALS_DIR} ${CSL_INCLUDES}) add_library(sub::i2c ALIAS I2C) add_library(TIMER ${CSL_SOURCES}/imp_timer.c) target_compile_options(TIMER PRIVATE ${C_FLAGS}) target_compile_definitions(TIMER PRIVATE ${C_DEFS}) target_include_directories(TIMER PUBLIC ${PERIFERALS_DIR} ${CSL_INCLUDES}) add_library(sub::timer ALIAS TIMER)