Revert "scripts: remove board name from the qualifiers in list_boards.py"
This reverts commit 66b475a3aa4d73f4ddd5be5a7a1e0f3c7028e539.
This commit has broken CI. Let's revert it.
See https://github.com/zephyrproject-rtos/zephyr/issues/70614
Signed-off-by: Alberto Escolar Piedras <alberto.escolar.piedras@nordicsemi.no>
diff --git a/cmake/modules/boards.cmake b/cmake/modules/boards.cmake
index ee81b26..63e2b7a 100644
--- a/cmake/modules/boards.cmake
+++ b/cmake/modules/boards.cmake
@@ -285,14 +285,12 @@
string(REGEX REPLACE "^//" "/${LIST_BOARD_SOCS}/" BOARD_QUALIFIERS "${BOARD_QUALIFIERS}")
endif()
- set(board_targets ${LIST_BOARD_QUALIFIERS})
- list(TRANSFORM board_targets PREPEND "${BOARD}/")
- if(NOT ("${BOARD}${BOARD_QUALIFIERS}" IN_LIST board_targets))
- string(REPLACE ";" "\n" board_targets "${board_targets}")
+ if(NOT ("${BOARD}${BOARD_QUALIFIERS}" IN_LIST LIST_BOARD_QUALIFIERS))
+ string(REPLACE ";" "\n" LIST_BOARD_QUALIFIERS "${LIST_BOARD_QUALIFIERS}")
unset(CACHED_BOARD CACHE)
message(FATAL_ERROR "Board qualifiers `${BOARD_QUALIFIERS}` for board \
`${BOARD}` not found. Please specify a valid board target.\n"
- "Valid board targets for ${BOARD_NAME} are:\n${board_targets}\n")
+ "Valid board qualifiers for ${BOARD_NAME} are:\n${LIST_BOARD_QUALIFIERS}\n")
endif()
endif()
else()
diff --git a/scripts/ci/check_compliance.py b/scripts/ci/check_compliance.py
index a77bd58..c351643 100755
--- a/scripts/ci/check_compliance.py
+++ b/scripts/ci/check_compliance.py
@@ -449,8 +449,7 @@
fp.write('config ' + board_str + '\n')
fp.write('\t bool\n')
for qualifier in list_boards.board_v2_qualifiers(board):
- board_str = ('BOARD_' + board.name + '_' +
- re.sub(r"[^a-zA-Z0-9_]", "_", qualifier)).upper()
+ board_str = 'BOARD_' + re.sub(r"[^a-zA-Z0-9_]", "_", qualifier).upper()
fp.write('config ' + board_str + '\n')
fp.write('\t bool\n')
fp.write(
diff --git a/scripts/list_boards.py b/scripts/list_boards.py
index 5321f31..03b1ada 100755
--- a/scripts/list_boards.py
+++ b/scripts/list_boards.py
@@ -275,10 +275,10 @@
help='''CMake Format string to use to list each board''')
-def variant_v2_qualifiers(variant, qualifiers = None):
- qualifiers_list = [variant.name] if qualifiers is None else [qualifiers + '/' + variant.name]
+def variant_v2_qualifiers(variant, qualifiers):
+ qualifiers_list = [qualifiers + '/' + variant.name]
for v in variant.variants:
- qualifiers_list.extend(variant_v2_qualifiers(v, qualifiers_list[0]))
+ qualifiers_list.extend(variant_v2_qualifiers(v, qualifiers + '/' + variant.name))
return qualifiers_list
@@ -288,17 +288,21 @@
for s in board.socs:
if s.cpuclusters:
for c in s.cpuclusters:
- id_str = s.name + '/' + c.name
+ id_str = board.name + '/' + s.name + '/' + c.name
qualifiers_list.append(id_str)
for v in c.variants:
qualifiers_list.extend(variant_v2_qualifiers(v, id_str))
else:
- qualifiers_list.append(s.name)
+ id_str = board.name + '/' + s.name
+ qualifiers_list.append(id_str)
for v in s.variants:
- qualifiers_list.extend(variant_v2_qualifiers(v, s.name))
+ qualifiers_list.extend(variant_v2_qualifiers(v, id_str))
+
+ if not board.socs:
+ qualifiers_list.append(board.name)
for v in board.variants:
- qualifiers_list.extend(variant_v2_qualifiers(v))
+ qualifiers_list.extend(variant_v2_qualifiers(v, board.name))
return qualifiers_list
diff --git a/scripts/west_commands/completion/west-completion.bash b/scripts/west_commands/completion/west-completion.bash
index d812e89..2ccc444 100644
--- a/scripts/west_commands/completion/west-completion.bash
+++ b/scripts/west_commands/completion/west-completion.bash
@@ -392,13 +392,8 @@
__set_comp_west_boards()
{
- boards=( $(__west_x boards --format='{name}|{qualifiers}' "$@") )
- for i in ${!boards[@]}; do
- name="${boards[$i]%%|*}"
- transformed_board="${boards[$i]//|//}"
- boards[$i]="${transformed_board//,/\ ${name}\/}"
- done
- __set_comp ${boards[@]}
+ boards="$(__west_x boards --format={identifiers} "$@")\n$(__west_x boards --format={name} "$@")"
+ __set_comp ${boards//,/\ }
}
__comp_west_west()
diff --git a/scripts/west_commands/completion/west-completion.fish b/scripts/west_commands/completion/west-completion.fish
index 51e6114..33c6942 100644
--- a/scripts/west_commands/completion/west-completion.fish
+++ b/scripts/west_commands/completion/west-completion.fish
@@ -196,12 +196,19 @@
end
function __zephyr_west_complete_board
- set -l boards (west 2>/dev/null boards --format="{name}|{qualifiers}")
+ # HWMv1
+ set -l boards (west 2>/dev/null boards --format="{name} {arch}")
for board in $boards
- set -l b (string split "|" $board)
- set -l qualifiers (string split "," $b[2])
- for i in $qualifiers
- printf "%s\n" $b[1]/$i
+ set -l b (string split " " $board)
+ printf "%s\n" $b[1]\t"$b[2]"
+ end
+
+ # HWMv2
+ set -l boards (west 2>/dev/null boards --format="{identifiers}")
+ for board in $boards
+ set -l b (string split "," $board)
+ for variant in $b
+ printf "%s\n" $variant[1]
end
end
end
@@ -300,7 +307,7 @@
# build
complete -c west -n "__zephyr_west_use_subcommand; and __zephyr_west_check_if_in_workspace" -ra build -d "compile a Zephyr application"
complete -c west -n "__zephyr_west_seen_subcommand_from build" -ra "(__zephyr_west_complete_directories)"
-complete -c west -n "__zephyr_west_seen_subcommand_from build" -o b -l board -xa "(__zephyr_west_complete_board)"
+complete -c west -n "__zephyr_west_seen_subcommand_from build" -o b -l board -xa "(__zephyr_west_complete_board)" -d "board to build for"
complete -c west -n "__zephyr_west_seen_subcommand_from build" -o d -l build-dir -xa "(__zephyr_west_complete_directories)" -d "build directory to create or use"
complete -c west -n "__zephyr_west_seen_subcommand_from build" -o f -l force -d "ignore errors and continue"
complete -c west -n "__zephyr_west_seen_subcommand_from build" -l sysbuild -d "create multi-domain build system"
diff --git a/scripts/west_commands/completion/west-completion.zsh b/scripts/west_commands/completion/west-completion.zsh
index e1a0119..000b43a 100644
--- a/scripts/west_commands/completion/west-completion.zsh
+++ b/scripts/west_commands/completion/west-completion.zsh
@@ -102,12 +102,9 @@
}
_get_west_boards() {
- _west_boards=( $(__west_x boards --format='{name}|{qualifiers}') )
- for i in {1..${#_west_boards[@]}}; do
- local name="${_west_boards[$i]%%|*}"
- local transformed_board="${_west_boards[$i]//|//}"
- _west_boards[$i]="${transformed_board//,/ ${name}/}"
- done
+ _west_boards="$(__west_x boards --format={identifiers})\n$(__west_x boards --format={name})"
+ _west_boards=${_west_boards//$'\n'/\ }
+ _west_boards=${_west_boards//,/\ }
_west_boards=(${(@s/ /)_west_boards})
_describe 'boards' _west_boards