2021-03-24 03:35:53 +08:00
|
|
|
function(add_board)
|
|
|
|
# ~~~
|
|
|
|
# add_board(
|
|
|
|
# name <board name>
|
2021-04-07 18:07:10 +08:00
|
|
|
# device_family <device family>
|
2021-03-24 03:35:53 +08:00
|
|
|
# device <common device>
|
|
|
|
# package <package>
|
|
|
|
# )
|
|
|
|
# ~~~
|
|
|
|
#
|
|
|
|
# Generates a board target containing information on the common device and package
|
|
|
|
# of the board.
|
|
|
|
#
|
|
|
|
# Arguments:
|
|
|
|
# - name: name of the board. E.g. arty
|
2021-04-07 18:07:10 +08:00
|
|
|
# - device_family: the name of the family this device belongs to.
|
|
|
|
# E.g. the xc7a35t device belongs to the xc7 family
|
2021-03-24 03:35:53 +08:00
|
|
|
# - device: common device name of a set of parts. E.g. xc7a35tcsg324-1 and xc7a35tcpg236-1
|
|
|
|
# share the same xc7a35t device prefix
|
|
|
|
# - package: one of the packages available for a given device. E.g. cpg236
|
|
|
|
#
|
|
|
|
# Targets generated:
|
|
|
|
# - board-<name>
|
|
|
|
|
|
|
|
set(options)
|
2021-04-07 18:07:10 +08:00
|
|
|
set(oneValueArgs name device_family device package)
|
2021-03-24 03:35:53 +08:00
|
|
|
set(multiValueArgs)
|
|
|
|
|
|
|
|
cmake_parse_arguments(
|
|
|
|
add_board
|
|
|
|
"${options}"
|
|
|
|
"${oneValueArgs}"
|
|
|
|
"${multiValueArgs}"
|
|
|
|
${ARGN}
|
|
|
|
)
|
|
|
|
|
|
|
|
set(name ${add_board_name})
|
2021-04-07 18:07:10 +08:00
|
|
|
set(device_family ${add_board_device_family})
|
2021-03-24 03:35:53 +08:00
|
|
|
set(device ${add_board_device})
|
|
|
|
set(package ${add_board_package})
|
|
|
|
|
|
|
|
add_custom_target(board-${name} DEPENDS device-${device})
|
|
|
|
set_target_properties(
|
|
|
|
board-${name}
|
|
|
|
PROPERTIES
|
2021-04-07 18:07:10 +08:00
|
|
|
DEVICE_FAMILY ${device_family}
|
2021-03-24 03:35:53 +08:00
|
|
|
DEVICE ${device}
|
|
|
|
PACKAGE ${package}
|
|
|
|
)
|
|
|
|
endfunction()
|