Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Glob blacklist the interactive chip-tool build when cross-compiling #17084

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 9 additions & 3 deletions scripts/build/build/targets.py
Original file line number Diff line number Diff line change
Expand Up @@ -222,8 +222,8 @@ def HostTargets():
targets = [target_native]

# x64 linux supports cross compile
if (HostBoard.NATIVE.PlatformName() == 'linux') and (
HostBoard.NATIVE.BoardName() != HostBoard.ARM64.BoardName()):
cross_compile = (HostBoard.NATIVE.PlatformName() == 'linux') and (HostBoard.NATIVE.BoardName() != HostBoard.ARM64.BoardName())
if cross_compile:
targets.append(target.Extend('arm64', board=HostBoard.ARM64))

app_targets = []
Expand Down Expand Up @@ -266,6 +266,7 @@ def HostTargets():
"clang"], use_libfuzzer=True),
builder.AppendVariant(name="clang", use_clang=True),

builder.WhitelistVariantNameForGlob('no-interactive')
builder.WhitelistVariantNameForGlob('ipv6only')

for target in app_targets:
Expand All @@ -276,7 +277,12 @@ def HostTargets():
builder.targets.append(target)

for target in builder.AllVariants():
yield target
if cross_compile and 'chip-tool' in target.name and 'arm64' in target.name and '-no-interactive' not in target.name:
# Interactive builds will not compile by default on arm cross compiles
# because libreadline is not part of the default sysroot
yield target.GlobBlacklist('Arm crosscompile does not support libreadline-dev')
else:
yield target

# Without extra build variants
yield target_native.Extend('chip-cert', app=HostApp.CERT_TOOL)
Expand Down
22 changes: 10 additions & 12 deletions scripts/build/testdata/build_linux_on_x64.txt
Original file line number Diff line number Diff line change
Expand Up @@ -11,15 +11,10 @@ bash -c '
PKG_CONFIG_PATH="SYSROOT_AARCH64/lib/aarch64-linux-gnu/pkgconfig" \
gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/all-clusters-app/linux '"'"'--args=chip_inet_config_enable_ipv4=false target_cpu="arm64" is_clang=true chip_crypto="mbedtls" sysroot="SYSROOT_AARCH64"'"'"' {out}/linux-arm64-all-clusters-ipv6only'

# Generating linux-arm64-chip-tool
# Generating linux-arm64-chip-tool-no-interactive
bash -c '
PKG_CONFIG_PATH="SYSROOT_AARCH64/lib/aarch64-linux-gnu/pkgconfig" \
gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/chip-tool '"'"'--args=target_cpu="arm64" is_clang=true chip_crypto="mbedtls" sysroot="SYSROOT_AARCH64"'"'"' {out}/linux-arm64-chip-tool'

# Generating linux-arm64-chip-tool-ipv6only
bash -c '
PKG_CONFIG_PATH="SYSROOT_AARCH64/lib/aarch64-linux-gnu/pkgconfig" \
gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/chip-tool '"'"'--args=chip_inet_config_enable_ipv4=false target_cpu="arm64" is_clang=true chip_crypto="mbedtls" sysroot="SYSROOT_AARCH64"'"'"' {out}/linux-arm64-chip-tool-ipv6only'
gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/chip-tool '"'"'--args=config_use_interactive_mode=false target_cpu="arm64" is_clang=true chip_crypto="mbedtls" sysroot="SYSROOT_AARCH64"'"'"' {out}/linux-arm64-chip-tool-no-interactive'

# Generating linux-arm64-door-lock
bash -c '
Expand Down Expand Up @@ -102,6 +97,9 @@ gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/exa
# Generating linux-x64-chip-tool-ipv6only
gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/chip-tool --args=chip_inet_config_enable_ipv4=false {out}/linux-x64-chip-tool-ipv6only

# Generating linux-x64-chip-tool-no-interactive
gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/chip-tool --args=config_use_interactive_mode=false {out}/linux-x64-chip-tool-no-interactive

# Generating linux-x64-door-lock
gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/door-lock-app/linux {out}/linux-x64-door-lock

Expand Down Expand Up @@ -156,11 +154,8 @@ ninja -C {out}/linux-arm64-all-clusters
# Building linux-arm64-all-clusters-ipv6only
ninja -C {out}/linux-arm64-all-clusters-ipv6only

# Building linux-arm64-chip-tool
ninja -C {out}/linux-arm64-chip-tool

# Building linux-arm64-chip-tool-ipv6only
ninja -C {out}/linux-arm64-chip-tool-ipv6only
# Building linux-arm64-chip-tool-no-interactive
ninja -C {out}/linux-arm64-chip-tool-no-interactive

# Building linux-arm64-door-lock
ninja -C {out}/linux-arm64-door-lock
Expand Down Expand Up @@ -219,6 +214,9 @@ ninja -C {out}/linux-x64-chip-tool
# Building linux-x64-chip-tool-ipv6only
ninja -C {out}/linux-x64-chip-tool-ipv6only

# Building linux-x64-chip-tool-no-interactive
ninja -C {out}/linux-x64-chip-tool-no-interactive

# Building linux-x64-door-lock
ninja -C {out}/linux-x64-door-lock

Expand Down