This should have been caught by meta/lib/oeqa/sdk/cases/buildepoxy.py
- why wasn't it? Does the test need to be fixed?

Alex

On Fri, 3 Mar 2023 at 19:45, Tom Hochstein <tom.hochst...@nxp.com> wrote:
>
> From an SDK, running a meson setup build without an explicit setup
> command can result in a native build when a cross build is expected.
>
> The problem is in meson-wrapper where it tries to detect whether a
> setup command is being used. The logic looks through all arguments for
> a command, and the first argument it finds that doesn't start with a -
> is treated as the command. This doesn't work for an implicit setup
> command if any option with a space-separated argument exists. In this
> case, the argument is incorrectly selected as the command, causing the
> setup command options for the cross build to be excluded from the
> command line, and thus a native build.
>
> Improve the logic by just looking at the first argument. If it is
> a known comand, then record it. Otherwise just assume it is the
> implicit setup command.
>
> Note that this fix does not address the possibility of a new meson
> command. Two new echo statements are included to help the user in case
> of trouble:
>
> ```
> ~/git/weston-imx$ meson --warnlevel 3 --prefix=/usr -Ddoc=false 
> -Dbackend-drm-screencast-vaapi=false -Dcolor-management-lcms=false 
> -Dpipewire=false -Dbackend-x11=false -Dxwayland=true -Dsimple-clients=all 
> -Dbackend-wayland=false  -Dbackend-default=drm -Dbackend-rdp=false 
> -Dtest-junit-xml=false -Dlauncher-libseat=false -Dimage-jpeg=false 
> -Dimage-webp=false -Drenderer-g2d=true build
> meson-wrapper: Implicit setup command assumed
> meson-wrapper: Running meson with setup options: " 
> --cross-file=/opt/fsl-imx-internal-xwayland/6.1-langdale/sysroots/x86_64-pokysdk-linux/usr/share/meson/aarch64-poky-linux-meson.cross
>  
> --native-file=/opt/fsl-imx-internal-xwayland/6.1-langdale/sysroots/x86_64-pokysdk-linux/usr/share/meson/meson.native
>  "
> The Meson build system
> Version: 0.63.3
> ```
>
> Signed-off-by: Tom Hochstein <tom.hochst...@nxp.com>
> ---
>  meta/recipes-devtools/meson/meson/meson-wrapper | 17 ++++++++---------
>  1 file changed, 8 insertions(+), 9 deletions(-)
>
> diff --git a/meta/recipes-devtools/meson/meson/meson-wrapper 
> b/meta/recipes-devtools/meson/meson/meson-wrapper
> index fca64a5692..7455985297 100755
> --- a/meta/recipes-devtools/meson/meson/meson-wrapper
> +++ b/meta/recipes-devtools/meson/meson/meson-wrapper
> @@ -13,20 +13,19 @@ fi
>  # config is already in meson.cross.
>  unset CC CXX CPP LD AR NM STRIP
>
> -for arg in "$@"; do
> -    case "$arg" in
> -    -*) continue ;;
> -    *) SUBCMD="$arg"; break ;;
> -    esac
> -done
> +case "$1" in
> +setup|configure|dist|install|introspect|init|test|wrap|subprojects|rewrite|compile|devenv|env2mfile|help)
>  MESON_CMD="$1" ;;
> +*) echo meson-wrapper: Implicit setup command assumed; MESON_CMD=setup ;;
> +esac
>
> -if [ "$SUBCMD" = "setup" ] || [ -d "$SUBCMD" ]; then
> -    MESON_SUB_OPTS=" \
> +if [ "$MESON_CMD" = "setup" ]; then
> +    MESON_SETUP_OPTS=" \
>          
> --cross-file="$OECORE_NATIVE_SYSROOT/usr/share/meson/${TARGET_PREFIX}meson.cross"
>  \
>          --native-file="$OECORE_NATIVE_SYSROOT/usr/share/meson/meson.native" \
>          "
> +    echo meson-wrapper: Running meson with setup options: 
> \"$MESON_SETUP_OPTS\"
>  fi
>
>  exec "$OECORE_NATIVE_SYSROOT/usr/bin/meson.real" \
>      "$@" \
> -    $MESON_SUB_OPTS
> +    $MESON_SETUP_OPTS
> --
> 2.25.1
>
>
> 
>
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#178022): 
https://lists.openembedded.org/g/openembedded-core/message/178022
Mute This Topic: https://lists.openembedded.org/mt/97369067/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to