فهرست منبع

New macro - STM32_GENERATE_LIBRARIES.

Konstantin Oblaukhov 12 سال پیش
والد
کامیت
0365367f45
2فایلهای تغییر یافته به همراه12 افزوده شده و 1 حذف شده
  1. 2 1
      README.mediawiki
  2. 10 0
      cmake/Modules/FindCMSIS.cmake

+ 2 - 1
README.mediawiki

@@ -84,4 +84,5 @@ Next cmake variables are useful for linker tuning:
 * STM32_GET_CHIP_PARAMETERS(CHIP FLASH_SIZE RAM_SIZE) - gets chip ram/flash size from chip name.
 * STM32_GET_CHIP_PARAMETERS(CHIP FLASH_SIZE RAM_SIZE) - gets chip ram/flash size from chip name.
 * STM32_SET_CHIP_DEFINITIONS(TARGET CHIP_TYPE) - sets chip family and type-specific compiler flags for target.
 * STM32_SET_CHIP_DEFINITIONS(TARGET CHIP_TYPE) - sets chip family and type-specific compiler flags for target.
 * STM32_SET_FLASH_PARAMS(TARGET ...) - sets chip flash/ram parameters for targer.
 * STM32_SET_FLASH_PARAMS(TARGET ...) - sets chip flash/ram parameters for targer.
-* STM32_SET_TARGET_PROPERTIES(TARGET) - sets all needed parameters and compiler flags for target. 
+* STM32_SET_TARGET_PROPERTIES(TARGET) - sets all needed parameters and compiler flags for target. 
+* STM32_GENERATE_LIBRARIES(NAME SOURCES LIBRARIES) - generates libraries for all chip types in family. Result libraries stored in LIBRARIES and have names in ${NAME}_${FAMILY}_${CHIP_TYPE} format.

+ 10 - 0
cmake/Modules/FindCMSIS.cmake

@@ -120,3 +120,13 @@ FUNCTION(STM32_SET_TARGET_PROPERTIES TARGET)
     ENDIF()
     ENDIF()
     STM32_SET_FLASH_PARAMS(${TARGET} ${STM32_FLASH_SIZE} ${STM32_RAM_SIZE})
     STM32_SET_FLASH_PARAMS(${TARGET} ${STM32_FLASH_SIZE} ${STM32_RAM_SIZE})
 ENDFUNCTION()
 ENDFUNCTION()
+
+MACRO(STM32_GENERATE_LIBRARIES NAME SOURCES LIBRARIES)
+    STRING(TOLOWER ${STM32_FAMILY} STM32_FAMILY_LOWER)
+    FOREACH(CHIP_TYPE ${STM32_CHIP_TYPES})
+        STRING(TOLOWER ${CHIP_TYPE} CHIP_TYPE_LOWER)
+        LIST(APPEND ${LIBRARIES} ${NAME}_${STM32_FAMILY_LOWER}_${CHIP_TYPE_LOWER})
+        ADD_LIBRARY(${NAME}_${STM32_FAMILY_LOWER}_${CHIP_TYPE_LOWER} ${BAREMETAL_DELAY_SOURCES})
+        STM32_SET_CHIP_DEFINITIONS(${NAME}_${STM32_FAMILY_LOWER}_${CHIP_TYPE_LOWER} ${CHIP_TYPE})
+    ENDFOREACH()
+ENDMACRO()