diff --git a/cmake/DetectToolchain.cmake b/cmake/DetectToolchain.cmake index e1cbf40..ff8a1dc 100644 --- a/cmake/DetectToolchain.cmake +++ b/cmake/DetectToolchain.cmake @@ -21,26 +21,26 @@ if(NOT CMAKE_TOOLCHAIN_FILE) elseif(WIN32) # Windows 系统 message(STATUS "检测到你使用的是 Windows 系统") - # Windows 系统优先使用 starm-clang - find_program(STARM_CLANG starm-clang) - if(STARM_CLANG) - set(CMAKE_TOOLCHAIN_FILE ${CMAKE_CURRENT_SOURCE_DIR}/cmake/Toolchain/starm-clang.cmake) - message(STATUS "已找到 starm-clang,使用 starm-clang 工具链") - else() + # Windows 系统也优先使用 Arm-none-eabi-GCC + find_program(ARM_NONE_EABI_GCC arm-none-eabi-gcc) + if(ARM_NONE_EABI_GCC) set(CMAKE_TOOLCHAIN_FILE ${CMAKE_CURRENT_SOURCE_DIR}/cmake/Toolchain/gcc-arm-none-eabi.cmake) - message(STATUS "未找到 starm-clang 工具链,使用 gcc-arm-none-eabi 工具链") + message(STATUS "已找到 gcc-arm-none-eabi,将使用该工具链") + else() + set(CMAKE_TOOLCHAIN_FILE ${CMAKE_CURRENT_SOURCE_DIR}/cmake/Toolchain/starm-clang.cmake) + message(STATUS "未找到 gcc-arm-none-eabi 工具链,使用 starm-clang 工具链") endif() elseif(LINUX AND NOT APPLE) # Linux 系统 message(STATUS "检测到你使用的是 Linux 系统") - # Linux 系统优先使用 starm-clang + # Linux 系统也优先使用 Arm-none-eabi-GCC find_program(STARM_CLANG starm-clang) - if(STARM_CLANG) - set(CMAKE_TOOLCHAIN_FILE ${CMAKE_CURRENT_SOURCE_DIR}/cmake/Toolchain/starm-clang.cmake) - message(STATUS "已找到 starm-clang,使用 starm-clang 工具链") - else() + if(ARM_NONE_EABI_GCC) set(CMAKE_TOOLCHAIN_FILE ${CMAKE_CURRENT_SOURCE_DIR}/cmake/Toolchain/gcc-arm-none-eabi.cmake) - message(STATUS "未找到 starm-clang 工具链,使用 gcc-arm-none-eabi 工具链") + message(STATUS "已找到 gcc-arm-none-eabi,将使用该工具链") + else() + set(CMAKE_TOOLCHAIN_FILE ${CMAKE_CURRENT_SOURCE_DIR}/cmake/Toolchain/starm-clang.cmake) + message(STATUS "未找到 gcc-arm-none-eabi 工具链,使用 starm-clang 工具链") endif() else() # 其他未知系统