Files
pico-keys-sdk/cmake/version.cmake
Pol Henarejos 00c03fff25 Move antirollback to 4.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2026-03-28 16:19:03 +01:00

64 lines
2.0 KiB
CMake

macro(HEXCHAR2DEC VAR VAL)
if(${VAL} MATCHES "[0-9]")
set(${VAR} ${VAL})
elseif(${VAL} MATCHES "[aA]")
set(${VAR} 10)
elseif(${VAL} MATCHES "[bB]")
set(${VAR} 11)
elseif(${VAL} MATCHES "[cC]")
set(${VAR} 12)
elseif(${VAL} MATCHES "[dD]")
set(${VAR} 13)
elseif(${VAL} MATCHES "[eE]")
set(${VAR} 14)
elseif(${VAL} MATCHES "[fF]")
set(${VAR} 15)
else()
message(FATAL_ERROR "Invalid format for hexidecimal character")
endif()
endmacro()
macro(HEX2DEC VAR VAL)
set(CURINDEX 0)
string(LENGTH "${VAL}" CURLENGTH)
set(${VAR} 0)
while(CURINDEX LESS CURLENGTH)
string(SUBSTRING "${VAL}" ${CURINDEX} 1 CHAR)
HEXCHAR2DEC(CHAR ${CHAR})
math(EXPR POWAH "(1 << ((${CURLENGTH} - ${CURINDEX} - 1) * 4))")
math(EXPR CHAR "(${CHAR} * ${POWAH})")
math(EXPR ${VAR} "${${VAR}} + ${CHAR}")
math(EXPR CURINDEX "${CURINDEX} + 1")
endwhile()
endmacro()
macro(SET_VERSION MAJOR MINOR FILE)
set(ROLLBACK 4)
file(READ ${FILE} ver)
string(REGEX MATCHALL "0x([0-9A-F])([0-9A-F])([0-9A-F])([0-9A-F])" _ ${ver})
string(CONCAT ver_major ${CMAKE_MATCH_1}${CMAKE_MATCH_2})
string(CONCAT ver_minor ${CMAKE_MATCH_3}${CMAKE_MATCH_4})
HEX2DEC(ver_major ${ver_major})
HEX2DEC(ver_minor ${ver_minor})
message(STATUS "Found version:\t\t ${ver_major}.${ver_minor}")
if(PICO_PLATFORM)
if(PICO_RP2350 AND SECURE_BOOT_PKEY)
message(STATUS "Setting rollback version:\t ${ROLLBACK}")
pico_set_binary_version(
${CMAKE_PROJECT_NAME}
MAJOR ${ver_major}
MINOR ${ver_minor}
ROLLBACK ${ROLLBACK}
)
else()
pico_set_binary_version(
${CMAKE_PROJECT_NAME}
MAJOR ${ver_major}
MINOR ${ver_minor}
)
endif()
endif()
set(${MAJOR} ${ver_major})
set(${MINOR} ${ver_minor})
endmacro()