mirror of https://github.com/ARMmbed/mbed-os.git
49 lines
1.6 KiB
CMake
49 lines
1.6 KiB
CMake
# Copyright (c) 2020 ARM Limited. All rights reserved.
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
# ----------------------------------------------
|
|
# CMake finder for stlink, the open-source ST-Link package
|
|
#
|
|
#
|
|
# This module defines:
|
|
# st-util_PATH - full path to st-util executable
|
|
# st-flash_PATH - full path to st-flash executable
|
|
# stlink_FOUND - whether or not the stlink tools were found
|
|
# stlink_VERSION - if stlink was found, this is set to its version
|
|
|
|
# try to figure out where stlink may be installed.
|
|
if("${CMAKE_HOST_SYSTEM_NAME}" STREQUAL "Windows")
|
|
|
|
# on Windows, assume that the user extracted the binaries to Program Files
|
|
|
|
# if the host is 64 bit, there will be a Program Files (x86) folder, this covers both
|
|
file(GLOB stlink_HINTS "C:/Program Files*/stlink*/bin")
|
|
|
|
# if we found multiple paths, check the one with the highest version number first
|
|
list(SORT stlink_HINTS)
|
|
list(REVERSE stlink_HINTS)
|
|
|
|
else()
|
|
set(stlink_HINTS "")
|
|
endif()
|
|
|
|
find_program(st-util_PATH
|
|
NAMES st-util
|
|
DOC "Path to the st-util executable"
|
|
HINTS ${stlink_HINTS})
|
|
|
|
find_program(st-flash_PATH
|
|
NAMES st-flash
|
|
DOC "Path to the st-flash executable"
|
|
HINTS ${stlink_HINTS})
|
|
|
|
if(EXISTS "${st-util_PATH}")
|
|
# Detect version
|
|
execute_process(COMMAND ${st-util_PATH} --version
|
|
OUTPUT_VARIABLE stlink_VERSION_OUTPUT)
|
|
|
|
# The output looks like "v1.2.3", so use a regex to trim off the v and anything else
|
|
string(REGEX REPLACE "v([0-9]+\\.[0-9]+\\.[0-9]+).*" "\\1" stlink_VERSION ${stlink_VERSION_OUTPUT})
|
|
endif()
|
|
|
|
find_package_handle_standard_args(stlink FOUND_VAR stlink_FOUND VERSION_VAR stlink_VERSION REQUIRED_VARS st-util_PATH st-flash_PATH) |