diff --git a/pico_keys_sdk_import.cmake b/pico_keys_sdk_import.cmake index 332e98a..ce99e61 100644 --- a/pico_keys_sdk_import.cmake +++ b/pico_keys_sdk_import.cmake @@ -15,56 +15,11 @@ # along with this program. If not, see . # +include(pico-keys-sdk/cmake/version.cmake) +include(pico-keys-sdk/cmake/boards.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(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) - +dict(GET led_driver ${PICO_BOARD} LED_DRIVER) +message(STATUS "LED driver:\t\t\t ${LED_DRIVER}") 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}'") @@ -211,24 +166,9 @@ set(SOURCES ${SOURCES} ${CMAKE_CURRENT_LIST_DIR}/src/apdu.c ${CMAKE_CURRENT_LIST_DIR}/src/led/led.c ) -if(PICO_BOARD STREQUAL "pico_w") - set(SOURCES ${SOURCES} - ${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() + +set(SOURCES ${SOURCES} ${CMAKE_CURRENT_LIST_DIR}/src/led/${LED_DRIVER}.c) + ## mbedTLS reports an stringop overflow for cmac.c if(NOT ENABLE_EMULATION AND NOT APPLE) set_source_files_properties(