cmake_minimum_required(VERSION 3.10) # 设置交叉编译标志(不设置,会编译出错),放在project之前才起作用 set(CMAKE_SYSTEM_NAME "Generic") SET(CMAKE_SYSTEM_PROCESSOR arm) SET (CMAKE_C_COMPILER_WORKS 1) SET (CMAKE_CXX_COMPILER_WORKS 1) # 配置工程 project( n32g430) enable_language(ASM) set(CMAKE_C_STANDARD 11) # set(CMAKE_CXX_STANDARD 17) #设置编译输出目录 set (CMAKE_BINARY_DIR ${PROJECT_SOURCE_DIR}\\build) set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}\\bin) set(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}\\lib) #设置工程相关宏 include(${PROJECT_SOURCE_DIR}/cmake/n32g430.cmake) include(${PROJECT_SOURCE_DIR}/cmake/armgcc.cmake) # include(${PROJECT_SOURCE_DIR}/cmake/armllvm.cmake) # include(cmake/bsp.cmake) include(${PROJECT_SOURCE_DIR}/project.cmake) #, #设置交叉编译器 target_link_libraries(${PROJECT_NAME}.elf m) set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-Map=${PROJECT_BINARY_DIR}\\${PROJECT_NAME}.map") # Generate the binary file add_custom_target (${CMAKE_PROJECT_NAME}.bin ALL ${OBJCOPY} -Obinary "${EXECUTABLE_OUTPUT_PATH}\\${CMAKE_PROJECT_NAME}.elf" "${EXECUTABLE_OUTPUT_PATH}\\${CMAKE_PROJECT_NAME}.bin" DEPENDS ${EXECUTABLE_OUTPUT_PATH}\\${CMAKE_PROJECT_NAME}.elf) # Generate the hex file add_custom_target (${CMAKE_PROJECT_NAME}.hex ALL ${OBJCOPY} -Oihex "${EXECUTABLE_OUTPUT_PATH}\\${CMAKE_PROJECT_NAME}.elf" "${EXECUTABLE_OUTPUT_PATH}\\${CMAKE_PROJECT_NAME}.hex" DEPENDS ${EXECUTABLE_OUTPUT_PATH}\\${CMAKE_PROJECT_NAME}.elf) # Echo the size Infomation add_custom_target (size ALL ${OBJSIZE} "${EXECUTABLE_OUTPUT_PATH}\\${CMAKE_PROJECT_NAME}.elf" DEPENDS ${EXECUTABLE_OUTPUT_PATH}\\${CMAKE_PROJECT_NAME}.elf)