| function(define_ice40_board) | 
 |   set(options) | 
 |   set(oneValueArgs BOARD DEVICE PACKAGE PROG_TOOL PROG_CMD) | 
 |   set(multiValueArgs) | 
 |   cmake_parse_arguments( | 
 |     DEFINE_ICE40_BOARD | 
 |      "${options}" | 
 |      "${oneValueArgs}" | 
 |      "${multiValueArgs}" | 
 |      ${ARGN} | 
 |     ) | 
 |  | 
 |   define_board( | 
 |     BOARD ${DEFINE_ICE40_BOARD_BOARD} | 
 |     DEVICE ${DEFINE_ICE40_BOARD_DEVICE} | 
 |     PACKAGE ${DEFINE_ICE40_BOARD_PACKAGE} | 
 |     PROG_TOOL ${DEFINE_ICE40_BOARD_PROG_TOOL} | 
 |     PROG_CMD ${DEFINE_ICE40_BOARD_PROG_PROG_CMD} | 
 |     ) | 
 |  | 
 |   get_target_property_required(PACKAGE_PINMAP ${DEFINE_ICE40_BOARD_DEVICE} ${DEFINE_ICE40_BOARD_PACKAGE}_PINMAP) | 
 |  | 
 |   set_target_properties( | 
 |     ${DEFINE_ICE40_BOARD_BOARD} | 
 |     PROPERTIES | 
 |       PINMAP ${PACKAGE_PINMAP} | 
 |       ) | 
 |  | 
 | endfunction() | 
 |  | 
 | # Lattice iCEstick | 
 | # http://www.latticesemi.com/icestick | 
 | # --------------------------------------------- | 
 | define_ice40_board( | 
 |   BOARD icestick | 
 |   DEVICE hx1k | 
 |   PACKAGE tq144 | 
 |   ) | 
 |  | 
 | # Lattice iCEblink40-LP1K Evaluation Kit | 
 | # **HX** version is different! | 
 | # --------------------------------------------- | 
 | define_ice40_board( | 
 |   BOARD iceblink40-lp1k | 
 |   DEVICE lp1k | 
 |   PACKAGE qn84 | 
 | ) | 
 |  | 
 | if (NOT LIGHT_BUILD) | 
 |  | 
 | # iCE40-HX8K Breakout Board Evaluation Kit | 
 | # iCE40-HX8K-CT256 | 
 | # --------------------------------------------- | 
 | define_ice40_board( | 
 |   BOARD hx8k-b-evn | 
 |   DEVICE hx8k | 
 |   PACKAGE ct256 | 
 | ) | 
 |  | 
 | # DPControl icevision board | 
 | # iCE40UP5K-SG48 | 
 | # --------------------------------------------- | 
 | define_ice40_board( | 
 |   BOARD icevision | 
 |   DEVICE up5k | 
 |   PACKAGE sg48 | 
 | ) | 
 |  | 
 | get_target_property_required(TINYFPGAB env TINYFPGAB) | 
 |  | 
 | # TinyFPGA B2 | 
 | # iCE40-LP8K-CM81 | 
 | # --------------------------------------------- | 
 | define_ice40_board( | 
 |   BOARD tinyfpga-b2 | 
 |   DEVICE lp8k | 
 |   PACKAGE cm81 | 
 |   PROG_CMD "${TINYFPGAB} --program \${OUT_BIN}" | 
 | ) | 
 |  | 
 | get_target_property_required(TINYPROG env TINYPROG) | 
 |  | 
 | # TinyFPGA BX | 
 | # iCE40-LP8K-CM81 | 
 | # --------------------------------------------- | 
 | define_ice40_board( | 
 |   BOARD tinyfpga-bx | 
 |   DEVICE lp8k | 
 |   PACKAGE cm81 | 
 |   PROG_CMD "${TINYPROG} -p \${OUT_BIN}" | 
 | ) | 
 |  | 
 | endif (NOT LIGHT_BUILD) |