From 4835d6a3a549fa9ee1920ccb84e6e6320cee97b0 Mon Sep 17 00:00:00 2001 From: Mysteo Date: Fri, 28 Jul 2023 07:22:49 +0300 Subject: [PATCH] --refactor --- Boot/CMakeLists.txt | 6 +-- CMakeLists.txt | 44 +++++++++---------- Cmake_templates/CMakeLists.txt | 6 +-- Cmake_templates/cmsis_template.txt | 20 ++++----- Cmake_templates/drivers_template.txt | 2 +- Cmake_templates/hal_driver_template.txt | 18 ++++---- Cmake_templates/main_cmakelists_template.txt | 41 ++++++++--------- Cmake_templates/main_prog_template.txt | 8 ++-- libs/Drivers/CMSIS/CMakeLists.txt | 18 ++++---- libs/Drivers/CMakeLists.txt | 2 +- .../STM32G0XX_HAL_Driver/CMakeLists.txt | 20 ++++----- main_prog/CMakeLists.txt | 8 ++-- 12 files changed, 95 insertions(+), 98 deletions(-) diff --git a/Boot/CMakeLists.txt b/Boot/CMakeLists.txt index b047b3f..aae0eca 100644 --- a/Boot/CMakeLists.txt +++ b/Boot/CMakeLists.txt @@ -29,12 +29,12 @@ list(FILTER SOURCES EXCLUDE REGEX "IAR\\/.*.[c|h]$") list(FILTER SOURCES EXCLUDE REGEX "Keil\\/.*.[c|h]$") set(LINKER_SCRIPT ${CMAKE_SOURCE_DIR}/Boot/STM32G070CBTX_FLASH.ld) add_executable(${PROJECT_NAME}.elf ${SOURCES} ) -target_compile_options(${PROJECT_NAME}.elf PUBLIC $ENV{COMPILE_OPTIONS}) -target_link_options(${PROJECT_NAME}.elf PUBLIC $ENV{LINK_OPTIONS}) +target_compile_options(${PROJECT_NAME}.elf PUBLIC ${COMPILE_OPTIONS}) +target_link_options(${PROJECT_NAME}.elf PUBLIC ${LINK_OPTIONS}) set(HEX_FILE ${PROJECT_BINARY_DIR}/${PROJECT_NAME}.hex) set(BIN_FILE ${PROJECT_BINARY_DIR}/${PROJECT_NAME}.bin) target_include_directories(${PROJECT_NAME}.elf PRIVATE ${INCLUDE_DIR} ) - target_link_libraries(${PROJECT_NAME}.elf PUBLIC $ENV{MCU_SERIES}_HAL_DRIVER CMSIS) + target_link_libraries(${PROJECT_NAME}.elf PUBLIC ${MCU_SERIES}_HAL_DRIVER CMSIS) add_custom_command(TARGET ${PROJECT_NAME}.elf PRE_BUILD COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_SOURCE_DIR}/${MEM_MAP_FILE}" ${PROJECT_BINARY_DIR}/../${MEM_MAP_FILE} ) diff --git a/CMakeLists.txt b/CMakeLists.txt index 67873b9..15a1c14 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,37 +3,37 @@ cmake_minimum_required(VERSION 3.23) #/////////////////////////////////////////////PLEASE CHOOSE THIS OPTIONS BY YOURSELF -set (ENV{HAL_DRIVER_CONFIG} ${CMAKE_CURRENT_SOURCE_DIR}/main_prog/Core/Inc/stm32g0xx_hal_conf.h) -set(ENV{MCU} "STM32G070xx") +set (HAL_DRIVER_CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/main_prog/Core/Inc/stm32g0xx_hal_conf.h) +set(MCU "STM32G070xx") if(BOOT) set (LINKER_SCRIPT ${CMAKE_SOURCE_DIR}/Boot/STM32G070CBTX_FLASH.ld) else() set(LINKER_SCRIPT ${CMAKE_SOURCE_DIR}/main_prog/STM32G070CBTX_FLASH.ld ) endif() -set(ENV{FREERTOS_CONFIG} "${CMAKE_CURRENT_SOURCE_DIR}/main_prog/Core/Inc/FreeRTOSConfig.h") +set(FREERTOS_CONFIG "${CMAKE_CURRENT_SOURCE_DIR}/main_prog/Core/Inc/FreeRTOSConfig.h") #///////////////////////////////////////////// -string (SUBSTRING "$ENV{MCU}" 0 7 MCU_SERIES) +string (SUBSTRING "${MCU}" 0 7 MCU_SERIES) string(APPEND MCU_SERIES "XX") if(${MCU_SERIES} MATCHES "STM32F4|STM32F3|STM32WB|STM32WL|STM32L4|STM32WB|STM32WL|STM32G4") - set(ENV{CORTEX-M} "4") - set(ENV{HARDWARE_FLOAT} 1) + set(CORTEX-M "4") + set(HARDWARE_FLOAT 1) elseif(${MCU_SERIES} MATCHES "STM32F2|STM32F1") - set(ENV{CORTEX-M} "3") - set(ENV{HARDWARE_FLOAT} 0) + set(CORTEX-M "3") + set(HARDWARE_FLOAT 0) elseif(${MCU_SERIES} MATCHES "STM32F0|STM32C0|STM32G0|STM32L0" ) - set(ENV{CORTEX-M} "0") - set(ENV{HARDWARE_FLOAT} 0) + set(CORTEX-M "0") + set(HARDWARE_FLOAT 0) else() message(FATAL_ERROR "${MCU_SERIES} is not supported") endif() -set(ENV{MCU_SERIES} ${MCU_SERIES}) +set(MCU_SERIES ${MCU_SERIES}) add_subdirectory(Cmake_templates) if(GTEST) add_subdirectory(libs/Drivers/CMSIS) -add_subdirectory(libs/Drivers/$ENV{MCU_SERIES}_HAL_Driver) +add_subdirectory(libs/Drivers/${MCU_SERIES}_HAL_Driver) add_subdirectory(gtests) else() set(CMAKE_SYSTEM_NAME Generic) @@ -78,7 +78,7 @@ else() set(COMPILE_OPTIONS - -mcpu=cortex-m$ENV{CORTEX-M} + -mcpu=cortex-m${CORTEX-M} -mthumb -mthumb-interwork -ffunction-sections -fdata-sections @@ -90,7 +90,7 @@ else() ) set(LINK_OPTIONS -Wl,-gc-sections,--print-memory-usage,-Map=${PROJECT_BINARY_DIR}/${PROJECT_NAME}.map - -mcpu=cortex-m$ENV{CORTEX-M} + -mcpu=cortex-m${CORTEX-M} -mthumb -mthumb-interwork -T ${LINKER_SCRIPT} @@ -106,21 +106,21 @@ else() FW_VERSION="${FW_VERSION}" ) - set(ENV{LINK_OPTIONS} "${LINK_OPTIONS}") + set(LINK_OPTIONS "${LINK_OPTIONS}") - add_link_options($ENV{LINK_OPTIONS}) - if ($ENV{CORTEX-M} EQUAL 4) - if ($ENV{HARDWARE_FLOAT} EQUAL 1) + add_link_options(${LINK_OPTIONS}) + if (${CORTEX-M} EQUAL 4) + if (${HARDWARE_FLOAT} EQUAL 1) add_compile_options(-mfloat-abi=hard -mfpu=fpv4-sp-d16) add_link_options(-mfloat-abi=hard -mfpu=fpv4-sp-d16) add_compile_definitions(ARM_MATH_CM4 ARM_MATH_MATRIX_CHECK ARM_MATH_ROUNDING) - elseif($ENV{HARDWARE_FLOAT} EQUAL 0 AND $ENV}) + elseif(${HARDWARE_FLOAT} EQUAL 0 AND $}) string(PREPEND COMPILE_OPTIONS " -mfloat-abi=soft") endif () endif() - set(ENV{COMPILE_OPTIONS} "${COMPILE_OPTIONS}") - set(ENV{COMPILE_DEF} "${COMPILE_DEF}") + set(COMPILE_OPTIONS "${COMPILE_OPTIONS}") + set(COMPILE_DEF "${COMPILE_DEF}") if ("${CMAKE_BUILD_TYPE}" STREQUAL "Release") message(STATUS "Maximum optimization for speed") @@ -145,7 +145,7 @@ else() endif () if (BOOT) - set (ENV{HAL_DRIVER_CONFIG} ${CMAKE_CURRENT_SOURCE_DIR}/Boot/Core/Inc/stm32g0xx_hal_conf.h) + set (HAL_DRIVER_CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/Boot/Core/Inc/stm32g0xx_hal_conf.h) FUNC_CREATE_MEMORY_MAP("${MEM_MAP_FILE}" "128" "8" "4" ) add_compile_definitions("BOOT_FLASH_VECTOR_TABLE_CS_OFFSET=${LEN_OFFSET}" "LEN_ADDRESS=${LEN_ADDRESS}") add_compile_definitions("PAGE_SIZE=0x0800") diff --git a/Cmake_templates/CMakeLists.txt b/Cmake_templates/CMakeLists.txt index 7a23d0f..a3d8029 100644 --- a/Cmake_templates/CMakeLists.txt +++ b/Cmake_templates/CMakeLists.txt @@ -1,4 +1,4 @@ -if (NOT DEFINED ENV{MCU_SERIES}) +if (NOT DEFINED MCU_SERIES) message(FATAL_ERROR "Please Define MCU Series Like STM32F4xx") endif() set(MAIN_PROG_DIR ${CMAKE_SOURCE_DIR}/main_prog) @@ -6,8 +6,8 @@ set(DRIVERS_DEST ${CMAKE_SOURCE_DIR}/libs/Drivers) set(CMSIS_SOURCE_DIR ${CMAKE_SOURCE_DIR}/Drivers/CMSIS) set(CMSIS_SOURCE_DEST_DIR ${CMAKE_SOURCE_DIR}/libs/Drivers/CMSIS) -set(HAL_DRIVER_SOURCE_DIR ${CMAKE_SOURCE_DIR}/Drivers/$ENV{MCU_SERIES}_HAL_Driver) -set(HAL_DRIVER_DEST_DIR ${CMAKE_SOURCE_DIR}/libs/Drivers/$ENV{MCU_SERIES}_HAL_Driver) +set(HAL_DRIVER_SOURCE_DIR ${CMAKE_SOURCE_DIR}/Drivers/${MCU_SERIES}_HAL_Driver) +set(HAL_DRIVER_DEST_DIR ${CMAKE_SOURCE_DIR}/libs/Drivers/${MCU_SERIES}_HAL_Driver) if (NOT EXISTS ${CMAKE_SOURCE_DIR}/libs) file(MAKE_DIRECTORY ${CMAKE_SOURCE_DIR}/libs) diff --git a/Cmake_templates/cmsis_template.txt b/Cmake_templates/cmsis_template.txt index 007edc0..a218dd7 100644 --- a/Cmake_templates/cmsis_template.txt +++ b/Cmake_templates/cmsis_template.txt @@ -1,34 +1,34 @@ set(LIB_NAME CMSIS) -if(NOT DEFINED ENV{MCU_SERIES}) +if(NOT DEFINED MCU_SERIES) message(FATAL_ERROR "MCU_SERIES NOT DEFINED. Please define it like stm32fxx") else() - string(TOUPPER $ENV{MCU_SERIES} MCU_SERIES_UPPERCASE) + string(TOUPPER ${MCU_SERIES} MCU_SERIES_UPPERCASE) endif() project(${LIB_NAME} LANGUAGES C ASM ) -if (NOT DEFINED ENV{MCU}) - message(FATAL_ERROR "PLEASE DEFINE ENV{MCU} i.e STM32F427xx") +if (NOT DEFINED MCU) + message(FATAL_ERROR "PLEASE DEFINE MCU i.e STM32F427xx") endif () if (NOT GTEST) - if (NOT $ENV{CORTEX-M} STREQUAL "3" AND NOT $ENV{CORTEX-M} STREQUAL "1" AND NOT $ENV{CORTEX-M} STREQUAL "0" AND NOT $ENV{CORTEX-M} STREQUAL "4" AND NOT $ENV{CORTEX-M} STREQUAL "3" AND NOT $ENV{CORTEX-M} STREQUAL "55") + if (NOT ${CORTEX-M} STREQUAL "3" AND NOT ${CORTEX-M} STREQUAL "1" AND NOT ${CORTEX-M} STREQUAL "0" AND NOT ${CORTEX-M} STREQUAL "4" AND NOT ${CORTEX-M} STREQUAL "3" AND NOT ${CORTEX-M} STREQUAL "55") message(FATAL_ERROR "Error: please set CORTEX-M") endif () - if (NOT DEFINED ENV{COMPILE_OPTIONS}) - set(COMPILE_OPTIONS -ffunction-sections -fdata-sections -fno-common -fmessage-length=0 $<$:-fno-rtti> -mcpu=cortex-m$ENV{CORTEX-M} -mthumb -mthumb-interwork) + if (NOT DEFINED COMPILE_OPTIONS) + set(COMPILE_OPTIONS -ffunction-sections -fdata-sections -fno-common -fmessage-length=0 $<$:-fno-rtti> -mcpu=cortex-m${CORTEX-M} -mthumb -mthumb-interwork) message(WARNING "${LIB_NAME} compile with default options") else () - set(COMPILE_OPTIONS $ENV{COMPILE_OPTIONS}) + set(COMPILE_OPTIONS ${COMPILE_OPTIONS}) endif() endif() add_library(${LIB_NAME} INTERFACE) target_include_directories(${LIB_NAME} INTERFACE Include Device/ST/${MCU_SERIES_UPPERCASE}/Include) -target_compile_definitions(${LIB_NAME} INTERFACE "$ENV{MCU}") -if (NOT $ENV{CORTEX-M} STREQUAL "3" AND NOT $ENV{CORTEX-M} STREQUAL "1" AND NOT $ENV{CORTEX-M} STREQUAL "0" AND NOT $ENV{CORTEX-M} STREQUAL "4" AND NOT $ENV{CORTEX-M} STREQUAL "3" AND NOT $ENV{CORTEX-M} STREQUAL "55") +target_compile_definitions(${LIB_NAME} INTERFACE "${MCU}") +if (NOT ${CORTEX-M} STREQUAL "3" AND NOT ${CORTEX-M} STREQUAL "1" AND NOT ${CORTEX-M} STREQUAL "0" AND NOT ${CORTEX-M} STREQUAL "4" AND NOT ${CORTEX-M} STREQUAL "3" AND NOT ${CORTEX-M} STREQUAL "55") message(FATAL_ERROR "Error: please set CORTEX-M") else () target_compile_options(${LIB_NAME} BEFORE INTERFACE ${COMPILE_OPTIONS}) diff --git a/Cmake_templates/drivers_template.txt b/Cmake_templates/drivers_template.txt index a4468e6..95525c7 100644 --- a/Cmake_templates/drivers_template.txt +++ b/Cmake_templates/drivers_template.txt @@ -1,2 +1,2 @@ -add_subdirectory($ENV{MCU_SERIES}_HAL_Driver) +add_subdirectory(${MCU_SERIES}_HAL_Driver) add_subdirectory(CMSIS) \ No newline at end of file diff --git a/Cmake_templates/hal_driver_template.txt b/Cmake_templates/hal_driver_template.txt index 9a88964..6b78849 100644 --- a/Cmake_templates/hal_driver_template.txt +++ b/Cmake_templates/hal_driver_template.txt @@ -1,8 +1,8 @@ -set(LIB_NAME $ENV{MCU_SERIES}_HAL_DRIVER) -string (TOLOWER $ENV{MCU_SERIES} MCU_SERIES) +set(LIB_NAME ${MCU_SERIES}_HAL_DRIVER) +string (TOLOWER ${MCU_SERIES} MCU_SERIES) -if (NOT DEFINED ENV{HAL_DRIVER_CONFIG}) - message(WARNING "HAL_DRIVER_CONFIG not defined \r\n Project will be generate with default config. You can choose full path to configuration file ${MCU_SERIES}_hal_conf.h ENV{HAL_DRIVER_CONFIG} +if (NOT DEFINED HAL_DRIVER_CONFIG) + message(WARNING "HAL_DRIVER_CONFIG not defined \r\n Project will be generate with default config. You can choose full path to configuration file ${MCU_SERIES}_hal_conf.h filename should be - ${MCU_SERIES}_hal_conf.h" ) message(WARNING "PROJECT WILL BE GENERATED WITH DEFAULT CONFIG" ) if (NOT EXISTS default_config) @@ -12,21 +12,21 @@ filename should be - ${MCU_SERIES}_hal_conf.h" ) file(COPY Inc/${MCU_SERIES}_hal_conf_template.h DESTINATION ${CMAKE_CURRENT_LIST_DIR}/default_config) file(RENAME ${CMAKE_CURRENT_LIST_DIR}/default_config/${MCU_SERIES}_hal_conf_template.h ${CMAKE_CURRENT_LIST_DIR}/default_config/${MCU_SERIES}_hal_conf.h ) endif() - set ($ENV{HAL_DRIVER_CONFIG} ${CMAKE_CURRENT_LIST_DIR}/default_config) + set (${HAL_DRIVER_CONFIG} ${CMAKE_CURRENT_LIST_DIR}/default_config) else() - string(FIND $ENV{HAL_DRIVER_CONFIG} "${MCU_SERIES}_hal_conf.h" RESULT) + string(FIND ${HAL_DRIVER_CONFIG} "${MCU_SERIES}_hal_conf.h" RESULT) if (${RESULT} EQUAL -1) message(FATAL_ERROR "filename should be - ${MCU_SERIES}_hal_conf.h") endif() file(MAKE_DIRECTORY config) - file(COPY $ENV{HAL_DRIVER_CONFIG} DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/config) - set (ENV{HAL_DRIVER_CONFIG} config) + file(COPY ${HAL_DRIVER_CONFIG} DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/config) + set (HAL_DRIVER_CONFIG config) endif() project(${LIB_NAME} LANGUAGES C ASM ) -add_definitions(-DUSE_HAL_DRIVER -D$ENV{MCU}) +add_definitions(-DUSE_HAL_DRIVER -D${MCU}) file(GLOB_RECURSE SOURCES "Src/*.c") add_library(${LIB_NAME} STATIC ${SOURCES}) diff --git a/Cmake_templates/main_cmakelists_template.txt b/Cmake_templates/main_cmakelists_template.txt index 67e9f9b..3b8f115 100644 --- a/Cmake_templates/main_cmakelists_template.txt +++ b/Cmake_templates/main_cmakelists_template.txt @@ -3,32 +3,31 @@ cmake_minimum_required(VERSION 3.23) #/////////////////////////////////////////////PLEASE CHOOSE THIS OPTIONS BY YOURSELF -set(ENV{MCU} "STM32G070xx") -set(ENV{LINKER_SCRIPT} ${CMAKE_SOURCE_DIR}/STM32G070CBTX_FLASH.ld) -set(ENV{FREERTOS_CONFIG} "${CMAKE_CURRENT_SOURCE_DIR}/main_prog/Core/Inc/FreeRTOSConfig.h") +set(MCU "STM32G070xx") +set(LINKER_SCRIPT ${CMAKE_SOURCE_DIR}/STM32G070CBTX_FLASH.ld) +set(FREERTOS_CONFIG "${CMAKE_CURRENT_SOURCE_DIR}/main_prog/Core/Inc/FreeRTOSConfig.h") #///////////////////////////////////////////// -string (SUBSTRING "$ENV{MCU}" 0 7 MCU_SERIES) +string (SUBSTRING "${MCU" 0 7 MCU_SERIES) string(APPEND MCU_SERIES "XX") if(${MCU_SERIES} MATCHES "STM32F4|STM32F3|STM32WB|STM32WL|STM32L4|STM32WB|STM32WL|STM32G4") - set(ENV{CORTEX-M} "4") - set(ENV{HARDWARE_FLOAT} 1) + set(CORTEX-M "4") + set(HARDWARE_FLOAT 1) elseif(${MCU_SERIES} MATCHES "STM32F2|STM32F1") - set(ENV{CORTEX-M} "3") - set(ENV{HARDWARE_FLOAT} 0) + set(CORTEX-M "3") + set(HARDWARE_FLOAT 0) elseif(${MCU_SERIES} MATCHES "STM32F0|STM32C0|STM32G0|STM32L0" ) - set(ENV{CORTEX-M} "0") - set(ENV{HARDWARE_FLOAT} 0) + set(CORTEX-M "0") + set(HARDWARE_FLOAT 0) else() message(FATAL_ERROR "${MCU_SERIES} is not supported") endif() -set(ENV{MCU_SERIES} ${MCU_SERIES}) add_subdirectory(Cmake_templates) if(GTEST) add_subdirectory(libs/Drivers/CMSIS) -add_subdirectory(libs/Drivers/$ENV{MCU_SERIES}_HAL_Driver) +add_subdirectory(libs/Drivers/${MCU_SERIES}_HAL_Driver) add_subdirectory(gtests) else() set(CMAKE_SYSTEM_NAME Generic) @@ -63,7 +62,7 @@ else() set(COMPILE_OPTIONS - -mcpu=cortex-m$ENV{CORTEX-M} + -mcpu=cortex-m${CORTEX-M} -mthumb -mthumb-interwork -ffunction-sections -fdata-sections @@ -75,10 +74,10 @@ else() ) set(LINK_OPTIONS -Wl,-gc-sections,--print-memory-usage,-Map=${PROJECT_BINARY_DIR}/${PROJECT_NAME}.map - -mcpu=cortex-m$ENV{CORTEX-M} + -mcpu=cortex-m${CORTEX-M} -mthumb -mthumb-interwork - -T $ENV{LINKER_SCRIPT} + -T ${LINKER_SCRIPT} ) set(COMPILE_DEF @@ -91,21 +90,19 @@ else() FW_VERSION="${FW_VERSION}" ) - set(ENV{LINK_OPTIONS} "${LINK_OPTIONS}") + set(LINK_OPTIONS "${LINK_OPTIONS}") - add_link_options($ENV{LINK_OPTIONS}) - if ($ENV{CORTEX-M} EQUAL 4) - if ($ENV{HARDWARE_FLOAT} EQUAL 1) + add_link_options(${LINK_OPTIONS}) + if (${CORTEX-M} EQUAL 4) + if (${HARDWARE_FLOAT} EQUAL 1) add_compile_options(-mfloat-abi=hard -mfpu=fpv4-sp-d16) add_link_options(-mfloat-abi=hard -mfpu=fpv4-sp-d16) add_compile_definitions(ARM_MATH_CM4 ARM_MATH_MATRIX_CHECK ARM_MATH_ROUNDING) - elseif($ENV{HARDWARE_FLOAT} EQUAL 0 AND $ENV}) + elseif(${HARDWARE_FLOAT} EQUAL 0 AND $}) string(PREPEND COMPILE_OPTIONS " -mfloat-abi=soft") endif () endif() - set(ENV{COMPILE_OPTIONS} "${COMPILE_OPTIONS}") - set(ENV{COMPILE_DEF} "${COMPILE_DEF}") add_subdirectory(libs) add_subdirectory(main_prog) diff --git a/Cmake_templates/main_prog_template.txt b/Cmake_templates/main_prog_template.txt index a7a197e..332c072 100644 --- a/Cmake_templates/main_prog_template.txt +++ b/Cmake_templates/main_prog_template.txt @@ -73,11 +73,11 @@ set(FIRMWARE_DIR ${CMAKE_SOURCE_DIR}/utils/bin/) add_executable(${PROJECT_NAME}.elf ${SOURCES}) - target_compile_options(${PROJECT_NAME}.elf PUBLIC $ENV{COMPILE_OPTIONS}) - target_link_options(${PROJECT_NAME}.elf PUBLIC $ENV{LINK_OPTIONS}) + target_compile_options(${PROJECT_NAME}.elf PUBLIC ${COMPILE_OPTIONS}) + target_link_options(${PROJECT_NAME}.elf PUBLIC ${LINK_OPTIONS}) target_include_directories(${PROJECT_NAME}.elf PUBLIC ${INCLUDE_DIR}) - target_link_libraries(${PROJECT_NAME}.elf PUBLIC $ENV{MCU_SERIES}_HAL_DRIVER CMSIS ) - target_compile_definitions(${PROJECT_NAME}.elf PUBLIC $ENV{COMPILE_DEF}) + target_link_libraries(${PROJECT_NAME}.elf PUBLIC ${MCU_SERIES}_HAL_DRIVER CMSIS ) + target_compile_definitions(${PROJECT_NAME}.elf PUBLIC ${COMPILE_DEF}) set(HEX_FILE ${PROJECT_BINARY_DIR}/${PROJECT_NAME}.hex) set(BIN_FILE ${PROJECT_BINARY_DIR}/${PROJECT_NAME}.bin) add_custom_command(TARGET ${PROJECT_NAME}.elf PRE_BUILD diff --git a/libs/Drivers/CMSIS/CMakeLists.txt b/libs/Drivers/CMSIS/CMakeLists.txt index 693e59b..bd86d67 100644 --- a/libs/Drivers/CMSIS/CMakeLists.txt +++ b/libs/Drivers/CMSIS/CMakeLists.txt @@ -1,31 +1,31 @@ set(LIB_NAME CMSIS) -if(NOT DEFINED ENV{MCU_SERIES}) +if(NOT DEFINED MCU_SERIES) message(FATAL_ERROR "MCU_SERIES NOT DEFINED. Please define it like stm32fxx") else() - string(TOUPPER $ENV{MCU_SERIES} MCU_SERIES_UPPERCASE) + string(TOUPPER ${MCU_SERIES} MCU_SERIES_UPPERCASE) endif() project(${LIB_NAME} LANGUAGES C ASM ) -if (NOT DEFINED ENV{MCU}) - message(FATAL_ERROR "PLEASE DEFINE ENV{MCU} i.e STM32F427xx") +if (NOT DEFINED MCU) + message(FATAL_ERROR "PLEASE DEFINE MCU i.e STM32F427xx") endif () if (NOT GTEST) - if (NOT $ENV{CORTEX-M} STREQUAL "3" AND NOT $ENV{CORTEX-M} STREQUAL "1" AND NOT $ENV{CORTEX-M} STREQUAL "0" AND NOT $ENV{CORTEX-M} STREQUAL "4" AND NOT $ENV{CORTEX-M} STREQUAL "3" AND NOT $ENV{CORTEX-M} STREQUAL "55" AND NOT $ENV{CORTEX-M} STREQUAL "0+") + if (NOT ${CORTEX-M} STREQUAL "3" AND NOT ${CORTEX-M} STREQUAL "1" AND NOT ${CORTEX-M} STREQUAL "0" AND NOT ${CORTEX-M} STREQUAL "4" AND NOT ${CORTEX-M} STREQUAL "3" AND NOT ${CORTEX-M} STREQUAL "55" AND NOT ${CORTEX-M} STREQUAL "0+") message(FATAL_ERROR "Error: please set CORTEX-M") endif () - if (NOT DEFINED ENV{COMPILE_OPTIONS}) - set(COMPILE_OPTIONS -ffunction-sections -fdata-sections -fno-common -fmessage-length=0 $<$:-fno-rtti> -mcpu=cortex-m$ENV{CORTEX-M} -mthumb -mthumb-interwork) + if (NOT DEFINED COMPILE_OPTIONS) + set(COMPILE_OPTIONS -ffunction-sections -fdata-sections -fno-common -fmessage-length=0 $<$:-fno-rtti> -mcpu=cortex-m${CORTEX-M} -mthumb -mthumb-interwork) message(WARNING "${LIB_NAME} compile with default options") else () - set(COMPILE_OPTIONS $ENV{COMPILE_OPTIONS}) + set(COMPILE_OPTIONS ${COMPILE_OPTIONS}) endif() endif() add_library(${LIB_NAME} INTERFACE) target_include_directories(${LIB_NAME} INTERFACE Include Device/ST/${MCU_SERIES_UPPERCASE}/Include) -target_compile_definitions(${LIB_NAME} INTERFACE "$ENV{MCU}") +target_compile_definitions(${LIB_NAME} INTERFACE "${MCU}") target_compile_options(${LIB_NAME} BEFORE INTERFACE ${COMPILE_OPTIONS}) diff --git a/libs/Drivers/CMakeLists.txt b/libs/Drivers/CMakeLists.txt index a4468e6..95525c7 100644 --- a/libs/Drivers/CMakeLists.txt +++ b/libs/Drivers/CMakeLists.txt @@ -1,2 +1,2 @@ -add_subdirectory($ENV{MCU_SERIES}_HAL_Driver) +add_subdirectory(${MCU_SERIES}_HAL_Driver) add_subdirectory(CMSIS) \ No newline at end of file diff --git a/libs/Drivers/STM32G0XX_HAL_Driver/CMakeLists.txt b/libs/Drivers/STM32G0XX_HAL_Driver/CMakeLists.txt index 9c1c426..ad6af3d 100644 --- a/libs/Drivers/STM32G0XX_HAL_Driver/CMakeLists.txt +++ b/libs/Drivers/STM32G0XX_HAL_Driver/CMakeLists.txt @@ -1,8 +1,8 @@ -set(LIB_NAME $ENV{MCU_SERIES}_HAL_DRIVER) -string (TOLOWER $ENV{MCU_SERIES} MCU_SERIES) +set(LIB_NAME ${MCU_SERIES}_HAL_DRIVER) +string (TOLOWER ${MCU_SERIES} MCU_SERIES) -if (NOT DEFINED ENV{HAL_DRIVER_CONFIG}) - message(WARNING "HAL_DRIVER_CONFIG not defined \r\n Project will be generate with default config. You can choose full path to configuration file ${MCU_SERIES}_hal_conf.h ENV{HAL_DRIVER_CONFIG} +if (NOT DEFINED HAL_DRIVER_CONFIG) + message(WARNING "HAL_DRIVER_CONFIG not defined \r\n Project will be generate with default config. You can choose full path to configuration file ${MCU_SERIES}_hal_conf.h filename should be - ${MCU_SERIES}_hal_conf.h" ) message(WARNING "PROJECT WILL BE GENERATED WITH DEFAULT CONFIG" ) if (NOT EXISTS default_config) @@ -12,17 +12,17 @@ filename should be - ${MCU_SERIES}_hal_conf.h" ) file(COPY Inc/${MCU_SERIES}_hal_conf_template.h DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/default_config) file(RENAME ${CMAKE_CURRENT_SOURCE_DIR}/default_config/${MCU_SERIES}_hal_conf_template.h ${CMAKE_CURRENT_LIST_DIR}/default_config/${MCU_SERIES}_hal_conf.h ) endif() - set ($ENV{HAL_DRIVER_CONFIG} ${CMAKE_CURRENT_LIST_DIR}/default_config) + set (${HAL_DRIVER_CONFIG} ${CMAKE_CURRENT_LIST_DIR}/default_config) else() - string(FIND $ENV{HAL_DRIVER_CONFIG} ${MCU_SERIES}_hal_conf.h output REVERSE) - string(SUBSTRING $ENV{HAL_DRIVER_CONFIG} 0 ${output} output) - set (ENV{HAL_DRIVER_CONFIG} ${output}) + string(FIND ${HAL_DRIVER_CONFIG} ${MCU_SERIES}_hal_conf.h output REVERSE) + string(SUBSTRING ${HAL_DRIVER_CONFIG} 0 ${output} output) + set (HAL_DRIVER_CONFIG ${output}) endif() project(${LIB_NAME} LANGUAGES C ASM ) -add_definitions(-DUSE_HAL_DRIVER -D$ENV{MCU} -DUSE_FULL_LL_DRIVER) +add_definitions(-DUSE_HAL_DRIVER -D${MCU} -DUSE_FULL_LL_DRIVER) file(GLOB_RECURSE SOURCES "Src/*.c") add_library(${LIB_NAME} STATIC ${SOURCES}) @@ -30,6 +30,6 @@ add_library(${LIB_NAME}_INTERFACE INTERFACE) if (GTEST) target_include_directories(${LIB_NAME}_INTERFACE INTERFACE Inc) else() - target_include_directories(${LIB_NAME} PUBLIC Inc $ENV{HAL_DRIVER_CONFIG}) + target_include_directories(${LIB_NAME} PUBLIC Inc ${HAL_DRIVER_CONFIG}) endif() target_link_libraries(${LIB_NAME} PRIVATE CMSIS) diff --git a/main_prog/CMakeLists.txt b/main_prog/CMakeLists.txt index 9149c7f..60867b8 100644 --- a/main_prog/CMakeLists.txt +++ b/main_prog/CMakeLists.txt @@ -82,11 +82,11 @@ endif() add_link_options(-specs=nano.specs -specs=nosys.specs) add_executable(${PROJECT_NAME}.elf ${SOURCES}) - target_compile_options(${PROJECT_NAME}.elf PUBLIC $ENV{COMPILE_OPTIONS}) - target_link_options(${PROJECT_NAME}.elf PUBLIC $ENV{LINK_OPTIONS}) + target_compile_options(${PROJECT_NAME}.elf PUBLIC ${COMPILE_OPTIONS}) + target_link_options(${PROJECT_NAME}.elf PUBLIC ${LINK_OPTIONS}) target_include_directories(${PROJECT_NAME}.elf PUBLIC ${INCLUDE_DIR}) - target_link_libraries(${PROJECT_NAME}.elf PUBLIC $ENV{MCU_SERIES}_HAL_DRIVER CMSIS ) - target_compile_definitions(${PROJECT_NAME}.elf PUBLIC $ENV{COMPILE_DEF}) + target_link_libraries(${PROJECT_NAME}.elf PUBLIC ${MCU_SERIES}_HAL_DRIVER CMSIS ) + target_compile_definitions(${PROJECT_NAME}.elf PUBLIC ${COMPILE_DEF}) set(HEX_FILE ${PROJECT_BINARY_DIR}/${PROJECT_NAME}.hex) set(BIN_FILE ${PROJECT_BINARY_DIR}/${PROJECT_NAME}.bin) if ("${CMAKE_BUILD_TYPE}" STREQUAL "Debug")