Updated CMakeLists.
Signed-off-by: Yilin Sun <imi415@imi.moe>
This commit is contained in:
parent
3470b762cf
commit
fd6a73b3a5
|
@ -95,9 +95,6 @@ set(TARGET_LIB_DIRECTORIES
|
||||||
|
|
||||||
)
|
)
|
||||||
|
|
||||||
# Device specific settings, goes to CFLAGS and LDFLAGS
|
|
||||||
set(TARGET_CFLAGS_HARDWARE "-mcpu=cortex-m33 -mthumb -mfloat-abi=hard -mfpu=fpv5-sp-d16")
|
|
||||||
|
|
||||||
# Conditional flags
|
# Conditional flags
|
||||||
# DEBUG
|
# DEBUG
|
||||||
set(CMAKE_C_FLAGS_DEBUG "-DDEBUG -O -g")
|
set(CMAKE_C_FLAGS_DEBUG "-DDEBUG -O -g")
|
||||||
|
@ -111,11 +108,10 @@ set(CMAKE_ASM_FLAGS_RELEASE "-DNDEBUG -O2 -flto")
|
||||||
set(CMAKE_EXE_LINKER_FLAGS_RELEASE "-flto")
|
set(CMAKE_EXE_LINKER_FLAGS_RELEASE "-flto")
|
||||||
|
|
||||||
# Final compiler flags
|
# Final compiler flags
|
||||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${TARGET_CFLAGS_HARDWARE} -Wall -fno-common -fno-builtin -ffreestanding -fdata-sections -ffunction-sections")
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -fno-common -fno-builtin -ffreestanding -fdata-sections -ffunction-sections")
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${TARGET_CFLAGS_HARDWARE} -Wall -fno-common -fno-builtin -ffreestanding -fdata-sections -ffunction-sections")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -fno-common -fno-builtin -ffreestanding -fdata-sections -ffunction-sections")
|
||||||
set(CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} ${CMAKE_C_FLAGS} -x assembler-with-cpp")
|
set(CMAKE_ASM_FLAGS "${CMAKE_C_FLAGS} -x assembler-with-cpp")
|
||||||
set(CMAKE_EXE_LINKER_FLAGS "-specs=nano.specs -specs=nosys.specs -Wl,--gc-sections -Wl,--print-memory-usage -Wl,--no-warn-rwx-segments")
|
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--gc-sections")
|
||||||
|
|
||||||
|
|
||||||
# Shared sources, includes and definitions
|
# Shared sources, includes and definitions
|
||||||
add_compile_definitions(${TARGET_C_DEFINES})
|
add_compile_definitions(${TARGET_C_DEFINES})
|
||||||
|
@ -127,6 +123,9 @@ link_libraries(${TARGET_LIBS})
|
||||||
|
|
||||||
# Create ELF
|
# Create ELF
|
||||||
add_executable("${CMAKE_PROJECT_NAME}_FLASH.elf" ${TARGET_SOURCES})
|
add_executable("${CMAKE_PROJECT_NAME}_FLASH.elf" ${TARGET_SOURCES})
|
||||||
|
target_compile_definitions("${CMAKE_PROJECT_NAME}_FLASH.elf"
|
||||||
|
PRIVATE ${TARGET_C_DEFINES_XIP}
|
||||||
|
)
|
||||||
target_link_options("${CMAKE_PROJECT_NAME}_FLASH.elf"
|
target_link_options("${CMAKE_PROJECT_NAME}_FLASH.elf"
|
||||||
PRIVATE "-T${TARGET_LDSCRIPT_FLASH}"
|
PRIVATE "-T${TARGET_LDSCRIPT_FLASH}"
|
||||||
PRIVATE "-Wl,--Map=${CMAKE_PROJECT_NAME}_FLASH.map"
|
PRIVATE "-Wl,--Map=${CMAKE_PROJECT_NAME}_FLASH.map"
|
||||||
|
@ -139,6 +138,12 @@ add_custom_command(OUTPUT "${CMAKE_PROJECT_NAME}_FLASH.hex"
|
||||||
DEPENDS "${CMAKE_PROJECT_NAME}_FLASH.elf"
|
DEPENDS "${CMAKE_PROJECT_NAME}_FLASH.elf"
|
||||||
)
|
)
|
||||||
add_custom_target("${CMAKE_PROJECT_NAME}_FLASH_HEX" DEPENDS "${CMAKE_PROJECT_NAME}_FLASH.hex")
|
add_custom_target("${CMAKE_PROJECT_NAME}_FLASH_HEX" DEPENDS "${CMAKE_PROJECT_NAME}_FLASH.hex")
|
||||||
|
if(DEFINED TARGET_TOOLCHAIN_SIZE)
|
||||||
|
add_custom_command(TARGET "${CMAKE_PROJECT_NAME}_FLASH.elf" POST_BUILD
|
||||||
|
COMMAND ${TARGET_TOOLCHAIN_SIZE} "${CMAKE_PROJECT_NAME}_FLASH.elf"
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
|
||||||
# Create ELF
|
# Create ELF
|
||||||
add_executable("${CMAKE_PROJECT_NAME}_RAM.elf" ${TARGET_SOURCES})
|
add_executable("${CMAKE_PROJECT_NAME}_RAM.elf" ${TARGET_SOURCES})
|
||||||
|
@ -146,7 +151,7 @@ target_link_options("${CMAKE_PROJECT_NAME}_RAM.elf"
|
||||||
PRIVATE "-T${TARGET_LDSCRIPT_RAM}"
|
PRIVATE "-T${TARGET_LDSCRIPT_RAM}"
|
||||||
PRIVATE "-Wl,--Map=${CMAKE_PROJECT_NAME}_RAM.map"
|
PRIVATE "-Wl,--Map=${CMAKE_PROJECT_NAME}_RAM.map"
|
||||||
)
|
)
|
||||||
set_property(TARGET "${CMAKE_PROJECT_NAME}_FLASH.elf" APPEND
|
set_property(TARGET "${CMAKE_PROJECT_NAME}_RAM.elf" APPEND
|
||||||
PROPERTY ADDITIONAL_CLEAN_FILES "${CMAKE_PROJECT_NAME}_RAM.map"
|
PROPERTY ADDITIONAL_CLEAN_FILES "${CMAKE_PROJECT_NAME}_RAM.map"
|
||||||
)
|
)
|
||||||
add_custom_command(OUTPUT "${CMAKE_PROJECT_NAME}_RAM.hex"
|
add_custom_command(OUTPUT "${CMAKE_PROJECT_NAME}_RAM.hex"
|
||||||
|
@ -154,3 +159,9 @@ add_custom_command(OUTPUT "${CMAKE_PROJECT_NAME}_RAM.hex"
|
||||||
DEPENDS "${CMAKE_PROJECT_NAME}_RAM.elf"
|
DEPENDS "${CMAKE_PROJECT_NAME}_RAM.elf"
|
||||||
)
|
)
|
||||||
add_custom_target("${CMAKE_PROJECT_NAME}_RAM_HEX" DEPENDS "${CMAKE_PROJECT_NAME}_RAM.hex")
|
add_custom_target("${CMAKE_PROJECT_NAME}_RAM_HEX" DEPENDS "${CMAKE_PROJECT_NAME}_RAM.hex")
|
||||||
|
if(DEFINED TARGET_TOOLCHAIN_SIZE)
|
||||||
|
add_custom_command(TARGET "${CMAKE_PROJECT_NAME}_RAM.elf" POST_BUILD
|
||||||
|
COMMAND ${TARGET_TOOLCHAIN_SIZE} "${CMAKE_PROJECT_NAME}_RAM.elf"
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
|
|
@ -1,10 +1,17 @@
|
||||||
set(CMAKE_C_COMPILER arm-none-eabi-gcc)
|
|
||||||
set(CMAKE_CXX_COMPILER arm-none-eabi-g++)
|
|
||||||
|
|
||||||
# Make CMake happy about those compilers
|
|
||||||
set(CMAKE_TRY_COMPILE_TARGET_TYPE "STATIC_LIBRARY")
|
|
||||||
|
|
||||||
# Poor old Windows...
|
# Poor old Windows...
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
set(CMAKE_SYSTEM_NAME "Generic")
|
set(CMAKE_SYSTEM_NAME "Generic")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
set(CMAKE_C_COMPILER arm-none-eabi-gcc)
|
||||||
|
set(CMAKE_CXX_COMPILER arm-none-eabi-g++)
|
||||||
|
|
||||||
|
# Optionally set size binary name, for elf section size reporting.
|
||||||
|
set(TARGET_TOOLCHAIN_SIZE arm-none-eabi-size)
|
||||||
|
|
||||||
|
set(CMAKE_C_FLAGS_INIT "-mcpu=cortex-m33 -mthumb -mfloat-abi=hard -mfpu=fpv5-sp-d16")
|
||||||
|
set(CMAKE_CXX_FLAGS_INIT "-mcpu=cortex-m33 -mthumb -mfloat-abi=hard -mfpu=fpv5-sp-d16")
|
||||||
|
set(CMAKE_EXE_LINKER_FLAGS_INIT "-specs=nano.specs -specs=nosys.specs -Wl,--print-memory-usage -Wl,--no-warn-rwx-segments")
|
||||||
|
|
||||||
|
# Make CMake happy about those compilers
|
||||||
|
set(CMAKE_TRY_COMPILE_TARGET_TYPE "STATIC_LIBRARY")
|
||||||
|
|
Loading…
Reference in New Issue