Pripheral submoldule creation function is implemted

master
Kerem Yollu 3 years ago
parent 4493b5f468
commit 9a090f4769

@ -45,6 +45,20 @@ message("${Blue} |--> Project Def\t: ${PROJECT_DEFS} ${ColourReset}")
message("${Blue} |--> Interfaces Dir\t: ${INTERFACES_DIR} ${ColourReset}")
message("${Blue} |--> Libs used\t\t: ${EXTRA_LIBS} ${ColourReset}")
####################################################################################################
#Library definitions
####################################################################################################
list(APPEND EXTRA_LIBS sub::startup)
list(APPEND EXTRA_LIBS sub::delay)
list(APPEND EXTRA_LIBS sub::usart)
list(APPEND EXTRA_LIBS sub::timer)
list(APPEND EXTRA_LIBS sub::deviceSetup)
list(APPEND EXTRA_LIBS sub::max7219)
list(APPEND EXTRA_LIBS sub::spi)
list(APPEND EXTRA_LIBS sub::i2c)
list(APPEND EXTRA_LIBS sub::pin)
####################################################################################################
#EXECUTABLE
####################################################################################################

@ -65,13 +65,3 @@ set(LINKER_FLAGS
set (MAIN_INCLUDES ${CMAKE_SOURCE_DIR})
set (MAIN_FLAGS ${C_FLAGS})
set (MAIN_DEFS ${C_DEFS})
list(APPEND EXTRA_LIBS sub::startup)
list(APPEND EXTRA_LIBS sub::delay)
list(APPEND EXTRA_LIBS sub::usart)
list(APPEND EXTRA_LIBS sub::timer)
list(APPEND EXTRA_LIBS sub::init)
list(APPEND EXTRA_LIBS sub::max7219)
list(APPEND EXTRA_LIBS sub::spi)
list(APPEND EXTRA_LIBS sub::i2c)
list(APPEND EXTRA_LIBS sub::pin)

@ -1,45 +1,28 @@
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)
function(addPeripheral alias)
if(EXISTS ${CSL_SOURCES}/imp_${alias}.c) # Checks if the desired peripheral is implemented for the desired CSL.
message("Chip has usart >>imp_${alias}.c was found<<")
if(EXISTS ${PERIFERALS_DIR}/${alias}.c) # Cheks if generic funtions are awailable. this is useful for standars as SPI i2c etc...
message("${alias}.c generic functions library extits")
add_library(${alias}_submodule ${alias}.c ${CSL_SOURCES}/imp_${alias}.c)
else()
add_library(${alias}_submodule ${CSL_SOURCES}/imp_${alias}.c)
endif()
target_compile_options(${alias}_submodule PRIVATE ${C_FLAGS})
target_compile_definitions(${alias}_submodule PRIVATE ${C_DEFS})
target_include_directories(${alias}_submodule PUBLIC ${PERIFERALS_DIR} ${CSL_INCLUDES})
add_library(sub::${alias} ALIAS ${alias}_submodule)
else() # optional block
message("${BoldRed}Chip has no usart periferal >>imp_usart.c was not found<<")
message("${BoldRed}Compilation Aborted")
endif()
endfunction()
addPeripheral("deviceSetup") # TODO: this point needs to be discussed. How should it work and what should it do?
addPeripheral("timer")
addPeripheral("usart")
addPeripheral("spi")
addPeripheral("i2c")
addPeripheral("delay")
addPeripheral("pin")

Loading…
Cancel
Save