mirror of
https://github.com/polhenarejos/pico-keys-sdk
synced 2026-06-12 05:18:16 +02:00
Specify led driver for each board.
Quina matada! Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
This commit is contained in:
@@ -15,56 +15,11 @@
|
|||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
|
|
||||||
|
include(pico-keys-sdk/cmake/version.cmake)
|
||||||
|
include(pico-keys-sdk/cmake/boards.cmake)
|
||||||
|
|
||||||
macro(HEXCHAR2DEC VAR VAL)
|
dict(GET led_driver ${PICO_BOARD} LED_DRIVER)
|
||||||
if(${VAL} MATCHES "[0-9]")
|
message(STATUS "LED driver:\t\t\t ${LED_DRIVER}")
|
||||||
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(HEXCHAR2DEC)
|
|
||||||
|
|
||||||
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(HEX2DEC)
|
|
||||||
|
|
||||||
macro(SET_VERSION MAJOR MINOR FILE)
|
|
||||||
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: ${ver_major}.${ver_minor}")
|
|
||||||
if(NOT ENABLE_EMULATION AND NOT ESP_PLATFORM)
|
|
||||||
pico_set_binary_version(${CMAKE_PROJECT_NAME} MAJOR ${ver_major} MINOR ${ver_minor})
|
|
||||||
endif()
|
|
||||||
SET(${MAJOR} ${ver_major})
|
|
||||||
SET(${MINOR} ${ver_minor})
|
|
||||||
endmacro(SET_VERSION)
|
|
||||||
|
|
||||||
option(VIDPID "Set specific VID/PID from a known platform {NitroHSM, NitroFIDO2, NitroStart, NitroPro, Nitro3, Yubikey5, YubikeyNeo, YubiHSM, Gnuk, GnuPG}" "None")
|
option(VIDPID "Set specific VID/PID from a known platform {NitroHSM, NitroFIDO2, NitroStart, NitroPro, Nitro3, Yubikey5, YubikeyNeo, YubiHSM, Gnuk, GnuPG}" "None")
|
||||||
|
|
||||||
message(STATUS "VIDPID:\t\t\t '${VIDPID}'")
|
message(STATUS "VIDPID:\t\t\t '${VIDPID}'")
|
||||||
@@ -211,24 +166,9 @@ set(SOURCES ${SOURCES}
|
|||||||
${CMAKE_CURRENT_LIST_DIR}/src/apdu.c
|
${CMAKE_CURRENT_LIST_DIR}/src/apdu.c
|
||||||
${CMAKE_CURRENT_LIST_DIR}/src/led/led.c
|
${CMAKE_CURRENT_LIST_DIR}/src/led/led.c
|
||||||
)
|
)
|
||||||
if(PICO_BOARD STREQUAL "pico_w")
|
|
||||||
set(SOURCES ${SOURCES}
|
set(SOURCES ${SOURCES} ${CMAKE_CURRENT_LIST_DIR}/src/led/${LED_DRIVER}.c)
|
||||||
${CMAKE_CURRENT_LIST_DIR}/src/led/led_cyw43.c
|
|
||||||
)
|
|
||||||
elseif(PICO_BOARD MATCHES "^pimoroni")
|
|
||||||
set(SOURCES ${SOURCES}
|
|
||||||
${CMAKE_CURRENT_LIST_DIR}/src/led/led_pimoroni.c
|
|
||||||
)
|
|
||||||
elseif(ESP_PLATFORM)
|
|
||||||
set(SOURCES ${SOURCES}
|
|
||||||
${CMAKE_CURRENT_LIST_DIR}/src/led/led_neopixel.c
|
|
||||||
)
|
|
||||||
else()
|
|
||||||
set(SOURCES ${SOURCES}
|
|
||||||
${CMAKE_CURRENT_LIST_DIR}/src/led/led_ws2812.c
|
|
||||||
${CMAKE_CURRENT_LIST_DIR}/src/led/led_pico.c
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
## mbedTLS reports an stringop overflow for cmac.c
|
## mbedTLS reports an stringop overflow for cmac.c
|
||||||
if(NOT ENABLE_EMULATION AND NOT APPLE)
|
if(NOT ENABLE_EMULATION AND NOT APPLE)
|
||||||
set_source_files_properties(
|
set_source_files_properties(
|
||||||
|
|||||||
Reference in New Issue
Block a user