You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

98 lines
2.8 KiB

cmake_minimum_required(VERSION 3.20)
if (NOT DEFINED CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE Release)
endif()
if (NOT DEFINED TARGET)
set(TARGET open429i)
endif()
# Prevent in-source builds
# If an in-source build is attempted, you will still need to clean up a few
# files manually.
set(CMAKE_DISABLE_SOURCE_CHANGES ON)
set(CMAKE_DISABLE_IN_SOURCE_BUILD ON)
if("${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_BINARY_DIR}")
message(FATAL_ERROR "In-source builds in ${CMAKE_BINARY_DIR} are not "
"allowed, please remove ./CMakeCache.txt and ./CMakeFiles/, create a "
"separate build directory and run cmake from there.")
endif("${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_BINARY_DIR}")
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
if (DEFINED APP_CHIP_BASE)
set(tgt_chip_base ${APP_CHIP_BASE})
else()
set(tgt_chip_base 0x0800c000)
endif()
if (NOT DEFINED HXTAL_VALUE)
set(HXTAL_VALUE 8000000)
endif()
if (NOT DEFINED CHIP_TYPE)
set(CHIP_TYPE STM32F429_439xx)
# set(CHIP_TYPE STM32F40_41xxx)
endif()
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/scripts/cmake")
if (NOT DEFINED CMAKE_TOOLCHAIN_FILE)
set(CMAKE_TOOLCHAIN_FILE ${CMAKE_CURRENT_SOURCE_DIR}/scripts/cmake/arm-eabi.cmake)
endif()
set(stm32f4xx_root ${CMAKE_CURRENT_LIST_DIR}/Firmware)
include(stm32f4xx_periph)
# set(stm32f4xx_hal_root ${CMAKE_CURRENT_LIST_DIR}/Libraries)
# include(stm32f4xx_hal)
set(rtthread_root ${CMAKE_CURRENT_LIST_DIR}/rt-thread)
include(rt_thread)
set(lwip_root ${CMAKE_CURRENT_LIST_DIR}/net/lwip-2.1.2)
include(lwip212)
project(stm32f4xx VERSION 1.0 LANGUAGES C CXX ASM )
# Find the git revision if this is a working copy.
if(EXISTS ${PROJECT_SOURCE_DIR}/.git)
find_package(Git)
if(Git_FOUND)
execute_process(
COMMAND "${GIT_EXECUTABLE}" describe --always HEAD
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
RESULT_VARIABLE res
OUTPUT_VARIABLE GIT_COMMIT
ERROR_QUIET
OUTPUT_STRIP_TRAILING_WHITESPACE)
message(STATUS "Project current git hash: ${GIT_COMMIT}")
else()
message(WARNING "Git not found. Can not determine current commit hash.")
set(GIT_COMMIT ${PROJECT_VERSION})
endif()
else()
set(GIT_COMMIT ${PROJECT_VERSION})
endif()
add_subdirectory(targets/boot)
add_subdirectory(targets/${TARGET})
set(CPACK_PACKAGE_NAME ${PROJECT_NAME})
set(CPACK_PACKAGE_VERSION ${GIT_COMMIT})
set(CPACK_PACKAGE_CONTACT "surenyi82@163.com")
set(CPACK_PACKAGE_DESCRIPTION "stm32f4xx with rt-thread support")
set(CPACK_SOURCE_GENERATOR "TXZ;ZIP")
set(CPACK_SOURCE_PACKAGE_FILE_NAME ${PROJECT_NAME}-${GIT_COMMIT})
set(CPACK_SOURCE_IGNORE_FILES
build/
\\.git/
\\.clangd
\\.clang-format
\\.gitattributes
README.md)
set(CPACK_VERBATIM_VARIABLES YES)
include(CPack)