Add cmake scripts.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
This commit is contained in:
parent
86674fd6ca
commit
268ab824ce
3 changed files with 163 additions and 0 deletions
70
cmake/boards.cmake
Normal file
70
cmake/boards.cmake
Normal file
|
|
@ -0,0 +1,70 @@
|
|||
include(pico-keys-sdk/cmake/dict.cmake)
|
||||
|
||||
dict(SET led_driver 0xcb_helios led_ws2812)
|
||||
dict(SET led_driver adafruit_feather_rp2040_usb_host led_pico)
|
||||
dict(SET led_driver adafruit_feather_rp2040 led_ws2812)
|
||||
dict(SET led_driver adafruit_itsybitsy_rp2040 led_ws2812)
|
||||
dict(SET led_driver adafruit_kb2040 led_ws2812)
|
||||
dict(SET led_driver adafruit_macropad_rp2040 led_ws2812)
|
||||
dict(SET led_driver adafruit_qtpy_rp2040 led_ws2812)
|
||||
dict(SET led_driver adafruit_trinkey_qt2040 led_ws2812)
|
||||
dict(SET led_driver amethyst_fpga led_pico)
|
||||
dict(SET led_driver archi led_ws2812)
|
||||
dict(SET led_driver arduino_nano_rp2040_connect led_pico)
|
||||
dict(SET led_driver cytron_maker_pi_rp2040 led_ws2812)
|
||||
dict(SET led_driver datanoisetv_rp2040_dsp led_pico)
|
||||
dict(SET led_driver eetree_gamekit_rp2040 led_pico)
|
||||
dict(SET led_driver garatronic_pybstick26_rp2040 led_pico)
|
||||
dict(SET led_driver ilabs_challenger_rp2350_bconnect led_ws2812)
|
||||
dict(SET led_driver ilabs_challenger_rp2350_wifi_ble led_pico)
|
||||
dict(SET led_driver ilabs_opendec02 led_pico)
|
||||
dict(SET led_driver melopero_perpetuo_rp2350_lora led_pico)
|
||||
dict(SET led_driver melopero_shake_rp2040 led_ws2812)
|
||||
dict(SET led_driver metrotech_xerxes_rp2040 led_pico)
|
||||
dict(SET led_driver net8086_usb_interposer led_pico)
|
||||
dict(SET led_driver nullbits_bit_c_pro led_pico) # rgb
|
||||
dict(SET led_driver phyx_rick_tny_rp2350 led_ws2812)
|
||||
dict(SET led_driver pi-plates_micropi led_pico)
|
||||
dict(SET led_driver pico led_pico)
|
||||
dict(SET led_driver pico_w led_cyw43)
|
||||
dict(SET led_driver pico2 led_pico)
|
||||
dict(SET led_driver pimoroni_badger2040 led_pico)
|
||||
dict(SET led_driver pimoroni_interstate75 led_pico) # rgb
|
||||
dict(SET led_driver pimoroni_motor2040 led_ws2812)
|
||||
dict(SET led_driver pimoroni_pga2350 led_pico)
|
||||
dict(SET led_driver pimoroni_pico_plus2_rp2350 led_pico)
|
||||
dict(SET led_driver pimoroni_picolipo_4mb led_pico)
|
||||
dict(SET led_driver pimoroni_picolipo_16mb led_pico)
|
||||
dict(SET led_driver pimoroni_picosystem led_pico) # rgb
|
||||
dict(SET led_driver pimoroni_plasma2040 led_pico) # rgb
|
||||
dict(SET led_driver pimoroni_plasma2350 led_pico) # rgb
|
||||
dict(SET led_driver pimoroni_servo2040 led_ws2812)
|
||||
dict(SET led_driver pimoroni_tiny2040 led_pimoroni)
|
||||
dict(SET led_driver pimoroni_tiny2040_2mb led_pimoroni)
|
||||
dict(SET led_driver pimoroni_tiny2350 led_pimoroni)
|
||||
dict(SET led_driver pololu_3pi_2040_robot led_pico)
|
||||
dict(SET led_driver pololu_zumo_2040_robot led_pico)
|
||||
dict(SET led_driver seeed_xiao_rp2040 led_ws2812)
|
||||
dict(SET led_driver seeed_xiao_rp2350 led_ws2812)
|
||||
dict(SET led_driver solderparty_rp2040_stamp led_ws2812)
|
||||
dict(SET led_driver solderparty_rp2040_stamp_carrier led_ws2812)
|
||||
dict(SET led_driver solderparty_rp2040_stamp_round_carrier led_ws2812)
|
||||
dict(SET led_driver sparkfun_micromod led_pico)
|
||||
dict(SET led_driver sparkfun_promicro led_ws2812)
|
||||
dict(SET led_driver sparkfun_promicro_rp2350 led_ws2812)
|
||||
dict(SET led_driver sparkfun_thingplus led_ws2812)
|
||||
dict(SET led_driver switchscience_picossci2_conta_base led_pico)
|
||||
dict(SET led_driver switchscience_picossci2_dev_board led_pico)
|
||||
dict(SET led_driver switchscience_picossci2_rp2350_breakout led_pico)
|
||||
dict(SET led_driver switchscience_picossci2_tiny led_pico)
|
||||
dict(SET led_driver tinycircuits_thumby_color_rp2350 led_pico)
|
||||
dict(SET led_driver vgaboard led_pico)
|
||||
dict(SET led_driver waveshare_rp2040_one led_ws2812)
|
||||
dict(SET led_driver waveshare_rp2040_plus_4mb led_pico)
|
||||
dict(SET led_driver waveshare_rp2040_plus_16mb led_pico)
|
||||
dict(SET led_driver waveshare_rp2040_zero led_ws2812)
|
||||
dict(SET led_driver weact_studio_rp2040_2mb led_pico)
|
||||
dict(SET led_driver weact_studio_rp2040_4mb led_pico)
|
||||
dict(SET led_driver weact_studio_rp2040_8mb led_pico)
|
||||
dict(SET led_driver weact_studio_rp2040_16mb led_pico)
|
||||
dict(SET led_driver wiznet_w5100s_evb_pico led_pico)
|
||||
44
cmake/dict.cmake
Normal file
44
cmake/dict.cmake
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
function(dict command dict )
|
||||
if(command STREQUAL SET)
|
||||
set(arg_key ${ARGV2})
|
||||
set(arg_value ${ARGV3})
|
||||
|
||||
dict(_IDX ${dict} "${arg_key}" idx)
|
||||
if(NOT idx STREQUAL -1)
|
||||
list(REMOVE_AT ${dict} ${idx})
|
||||
endif()
|
||||
|
||||
list(APPEND ${dict} "${arg_key}=${arg_value}")
|
||||
set(${dict} "${${dict}}" PARENT_SCOPE)
|
||||
|
||||
elseif(command STREQUAL GET)
|
||||
set(arg_key ${ARGV2})
|
||||
set(arg_outvar ${ARGV3})
|
||||
|
||||
dict(_IDX ${dict} "${arg_key}" idx)
|
||||
if(idx STREQUAL -1)
|
||||
message(FATAL_ERROR "No key \"${arg_key}\" in dictionary")
|
||||
endif()
|
||||
|
||||
list(GET ${dict} ${idx} kv)
|
||||
string(REGEX REPLACE "^[^=]+=(.*)" "\\1" value "${kv}")
|
||||
set(${arg_outvar} "${value}" PARENT_SCOPE)
|
||||
|
||||
elseif(command STREQUAL _IDX)
|
||||
set(arg_key ${ARGV2})
|
||||
set(arg_outvar ${ARGV3})
|
||||
set(idx 0)
|
||||
foreach(kv IN LISTS ${dict})
|
||||
string(REGEX REPLACE "^([^=]+)=.*" "\\1" key "${kv}")
|
||||
if(arg_key STREQUAL key)
|
||||
set(${arg_outvar} "${idx}" PARENT_SCOPE)
|
||||
return()
|
||||
endif()
|
||||
math(EXPR idx ${idx}+1)
|
||||
endforeach()
|
||||
set(${arg_outvar} "-1" PARENT_SCOPE)
|
||||
|
||||
else()
|
||||
message(FATAL_ERROR "dict does not recognize sub-command ${command}")
|
||||
endif()
|
||||
endfunction()
|
||||
49
cmake/version.cmake
Normal file
49
cmake/version.cmake
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
|
||||
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)
|
||||
Loading…
Add table
Reference in a new issue