|
|
@@ -44,10 +44,11 @@ endfunction()
|
|
|
|
|
|
include(FetchContent)
|
|
|
|
|
|
-set(STM32_FETCH_FAMILIES F0 F1 F2 F3 F4 F7 G0 G4 H7 L0 L1 L4 L5 U5 WB WL )
|
|
|
-set(STM32_FETCH_CUBE_VERSIONS v1.11.2 v1.8.4 v1.9.3 v1.11.2 v1.26.1 v1.16.1 v1.4.1 v1.4.0 v1.9.0 v1.12.0 v1.10.3 v1.17.0 v1.4.0 v1.0.0 v1.12.0 v1.1.0)
|
|
|
-set(STM32_FETCH_CMSIS_VERSIONS v2.3.5 v4.3.3 v2.2.5 v2.3.5 v2.6.6 v1.2.6 v1.4.0 v1.2.1 v1.10.0 v1.9.1 v2.3.2 v1.7.1 v1.0.4 v1.0.0 v1.9.0 v1.1.0)
|
|
|
-set(STM32_FETCH_HAL_VERSIONS v1.7.5 v1.1.8 v1.2.7 v1.5.5 v1.7.12 v1.2.9 v1.4.1 v1.2.1 v1.10.0 v1.10.4 v1.4.4 v1.13.0 v1.0.4 v1.0.0 v1.9.0 v1.1.0)
|
|
|
+# A CMSIS or HAL driver can specify 'cube' as version number to indicate that the driver is taken from the Cube repository
|
|
|
+set(STM32_FETCH_FAMILIES F0 F1 F2 F3 F4 F7 G0 G4 H7 L0 L1 L4 L5 MP1 U5 WB WL )
|
|
|
+set(STM32_FETCH_CUBE_VERSIONS v1.11.2 v1.8.4 v1.9.3 v1.11.2 v1.26.1 v1.16.1 v1.4.1 v1.4.0 v1.9.0 v1.12.0 v1.10.3 v1.17.0 v1.4.0 1.5.0 v1.0.0 v1.12.0 v1.1.0)
|
|
|
+set(STM32_FETCH_CMSIS_VERSIONS v2.3.5 v4.3.3 v2.2.5 v2.3.5 v2.6.6 v1.2.6 v1.4.0 v1.2.1 v1.10.0 v1.9.1 v2.3.2 v1.7.1 v1.0.4 cube v1.0.0 v1.9.0 v1.1.0)
|
|
|
+set(STM32_FETCH_HAL_VERSIONS v1.7.5 v1.1.8 v1.2.7 v1.5.5 v1.7.12 v1.2.9 v1.4.1 v1.2.1 v1.10.0 v1.10.4 v1.4.4 v1.13.0 v1.0.4 cube v1.0.0 v1.9.0 v1.1.0)
|
|
|
|
|
|
FetchContent_Declare(
|
|
|
STM32-CMSIS
|
|
|
@@ -69,18 +70,29 @@ foreach(FAMILY ${STM32_FETCH_FAMILIES})
|
|
|
GIT_TAG ${CUBE_VERSION}
|
|
|
GIT_PROGRESS TRUE
|
|
|
)
|
|
|
- FetchContent_Declare(
|
|
|
- STM32-CMSIS-${FAMILY}
|
|
|
- GIT_REPOSITORY https://github.com/STMicroelectronics/cmsis_device_${FAMILY_L}/
|
|
|
- GIT_TAG ${CMSIS_VERSION}
|
|
|
- GIT_PROGRESS TRUE
|
|
|
- )
|
|
|
- FetchContent_Declare(
|
|
|
- STM32-HAL-${FAMILY}
|
|
|
- GIT_REPOSITORY https://github.com/STMicroelectronics/stm32${FAMILY_L}xx_hal_driver/
|
|
|
- GIT_TAG ${HAL_VERSION}
|
|
|
- GIT_PROGRESS TRUE
|
|
|
- )
|
|
|
+
|
|
|
+ if(CMSIS_VERSION STREQUAL cube)
|
|
|
+ set(STM32_USE_CMSIS_FROM_CUBE_${FAMILY} ON)
|
|
|
+ else()
|
|
|
+ FetchContent_Declare(
|
|
|
+ STM32-CMSIS-${FAMILY}
|
|
|
+ GIT_REPOSITORY https://github.com/STMicroelectronics/cmsis_device_${FAMILY_L}/
|
|
|
+ GIT_TAG ${CMSIS_VERSION}
|
|
|
+ GIT_PROGRESS TRUE
|
|
|
+ )
|
|
|
+ endif()
|
|
|
+
|
|
|
+ if(HAL_VERSION STREQUAL cube)
|
|
|
+ set(STM32_USE_HAL_FROM_CUBE_${FAMILY} ON)
|
|
|
+ else()
|
|
|
+ FetchContent_Declare(
|
|
|
+ STM32-HAL-${FAMILY}
|
|
|
+ GIT_REPOSITORY https://github.com/STMicroelectronics/stm32${FAMILY_L}xx_hal_driver/
|
|
|
+ GIT_TAG ${HAL_VERSION}
|
|
|
+ GIT_PROGRESS TRUE
|
|
|
+ )
|
|
|
+ endif()
|
|
|
+
|
|
|
math(EXPR IDX "${IDX} + 1")
|
|
|
endforeach()
|
|
|
|
|
|
@@ -94,62 +106,55 @@ function(stm32_fetch_cube)
|
|
|
continue()
|
|
|
endif()
|
|
|
|
|
|
- FetchContent_GetProperties(${CUBE_NAME} POPULATED CUBE_POPULATED)
|
|
|
- if(NOT CUBE_POPULATED)
|
|
|
- set(FETCHCONTENT_QUIET FALSE) # To see progress
|
|
|
- FetchContent_Populate(${CUBE_NAME})
|
|
|
- endif()
|
|
|
-
|
|
|
+ FetchContent_MakeAvailable(${CUBE_NAME})
|
|
|
set(STM32_CUBE_${FAMILY}_PATH ${${CUBE_NAME_L}_SOURCE_DIR} PARENT_SCOPE)
|
|
|
endforeach()
|
|
|
endfunction()
|
|
|
|
|
|
function(stm32_fetch_cmsis)
|
|
|
if(NOT STM32_CMSIS_PATH)
|
|
|
- if(NOT STM32-CMSIS_POPULATED)
|
|
|
- set(FETCHCONTENT_QUIET FALSE) # To see progress
|
|
|
- FetchContent_Populate(STM32-CMSIS)
|
|
|
- endif()
|
|
|
-
|
|
|
+ FetchContent_MakeAvailable(STM32-CMSIS)
|
|
|
set(STM32_CMSIS_PATH ${stm32-cmsis_SOURCE_DIR} PARENT_SCOPE)
|
|
|
else()
|
|
|
message(INFO "STM32_CMSIS_PATH specified, skipping fetch for STM32-CMSIS")
|
|
|
endif()
|
|
|
+
|
|
|
foreach(FAMILY ${ARGV})
|
|
|
- set(CMSIS_NAME STM32-CMSIS-${FAMILY})
|
|
|
- string(TOLOWER ${CMSIS_NAME} CMSIS_NAME_L)
|
|
|
-
|
|
|
- if(STM32_CMSIS_${FAMILY}_PATH)
|
|
|
- message(INFO "STM32_CMSIS_${FAMILY}_PATH specified, skipping fetch for ${CMSIS_NAME}")
|
|
|
- continue()
|
|
|
- endif()
|
|
|
-
|
|
|
- FetchContent_GetProperties(${CMSIS_NAME_L} POPULATED CMSIS_POPULATED)
|
|
|
- if(NOT CMSIS_POPULATED)
|
|
|
- set(FETCHCONTENT_QUIET FALSE) # To see progress
|
|
|
- FetchContent_Populate(${CMSIS_NAME})
|
|
|
+ if(STM32_USE_CMSIS_FROM_CUBE_${FAMILY})
|
|
|
+ stm32_fetch_cube(${FAMILY})
|
|
|
+ set(STM32_CMSIS_${FAMILY}_PATH ${STM32_CUBE_${FAMILY}_PATH}/Drivers/CMSIS/Device/ST/STM32${FAMILY}xx PARENT_SCOPE)
|
|
|
+ else()
|
|
|
+ set(CMSIS_NAME STM32-CMSIS-${FAMILY})
|
|
|
+ string(TOLOWER ${CMSIS_NAME} CMSIS_NAME_L)
|
|
|
+
|
|
|
+ if(STM32_CMSIS_${FAMILY}_PATH)
|
|
|
+ message(INFO "STM32_CMSIS_${FAMILY}_PATH specified, skipping fetch for ${CMSIS_NAME}")
|
|
|
+ continue()
|
|
|
+ endif()
|
|
|
+
|
|
|
+ FetchContent_MakeAvailable(${CMSIS_NAME})
|
|
|
+ set(STM32_CMSIS_${FAMILY}_PATH ${${CMSIS_NAME_L}_SOURCE_DIR} PARENT_SCOPE)
|
|
|
endif()
|
|
|
-
|
|
|
- set(STM32_CMSIS_${FAMILY}_PATH ${${CMSIS_NAME_L}_SOURCE_DIR} PARENT_SCOPE)
|
|
|
endforeach()
|
|
|
endfunction()
|
|
|
|
|
|
function(stm32_fetch_hal)
|
|
|
foreach(FAMILY ${ARGV})
|
|
|
- set(HAL_NAME STM32-HAL-${FAMILY})
|
|
|
- string(TOLOWER ${HAL_NAME} HAL_NAME_L)
|
|
|
-
|
|
|
- if(STM32_HAL_${FAMILY}_PATH)
|
|
|
- message(INFO "STM32_HAL_${FAMILY}_PATH specified, skipping fetch for ${HAL_NAME}")
|
|
|
- continue()
|
|
|
+ if(STM32_USE_HAL_FROM_CUBE_${FAMILY})
|
|
|
+ stm32_fetch_cube(${FAMILY})
|
|
|
+ message("Cube fetched for ${FAMILY} at ${STM32_CUBE_${FAMILY}_PATH}")
|
|
|
+ set(STM32_HAL_${FAMILY}_PATH ${STM32_CUBE_${FAMILY}_PATH}/Drivers/STM32${FAMILY}xx_HAL_Driver PARENT_SCOPE)
|
|
|
+ else()
|
|
|
+ set(HAL_NAME STM32-HAL-${FAMILY})
|
|
|
+ string(TOLOWER ${HAL_NAME} HAL_NAME_L)
|
|
|
+
|
|
|
+ if(STM32_HAL_${FAMILY}_PATH)
|
|
|
+ message(INFO "STM32_HAL_${FAMILY}_PATH specified, skipping fetch for ${HAL_NAME}")
|
|
|
+ continue()
|
|
|
+ endif()
|
|
|
+
|
|
|
+ FetchContent_MakeAvailable(${HAL_NAME})
|
|
|
+ set(STM32_HAL_${FAMILY}_PATH ${${HAL_NAME_L}_SOURCE_DIR} PARENT_SCOPE)
|
|
|
endif()
|
|
|
-
|
|
|
- FetchContent_GetProperties(${HAL_NAME} POPULATED HAL_POPULATED)
|
|
|
- if(NOT HAL_POPULATED)
|
|
|
- set(FETCHCONTENT_QUIET FALSE) # To see progress
|
|
|
- FetchContent_Populate(${HAL_NAME})
|
|
|
- endif()
|
|
|
-
|
|
|
- set(STM32_HAL_${FAMILY}_PATH ${${HAL_NAME_L}_SOURCE_DIR} PARENT_SCOPE)
|
|
|
endforeach()
|
|
|
endfunction()
|