qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 015/143] build-sys: add meson submodule


From: Paolo Bonzini
Subject: Re: [PATCH 015/143] build-sys: add meson submodule
Date: Fri, 7 Aug 2020 12:47:15 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.9.0

On 07/08/20 12:37, Alex Bennée wrote:
> 
> Paolo Bonzini <pbonzini@redhat.com> writes:
> 
>> From: Marc-André Lureau <marcandre.lureau@redhat.com>
>>
>> Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
>> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
>> ---
>>  .gitmodules               |  3 +++
>>  configure                 | 44 +++++++++++++++++++++++++++++++++++++++++---
>>  meson                     |  1 +
>>  scripts/archive-source.sh |  3 ++-
>>  4 files changed, 47 insertions(+), 4 deletions(-)
>>  create mode 160000 meson
>>
>> diff --git a/.gitmodules b/.gitmodules
>> index 9c0501a..ce97939 100644
>> --- a/.gitmodules
>> +++ b/.gitmodules
>> @@ -58,3 +58,6 @@
>>  [submodule "roms/qboot"]
>>      path = roms/qboot
>>      url = https://github.com/bonzini/qboot
>> +[submodule "meson"]
>> +    path = meson
>> +    url = https://github.com/mesonbuild/meson/
>> diff --git a/configure b/configure
>> index 13db149..d87d544 100755
>> --- a/configure
>> +++ b/configure
>> @@ -174,6 +174,25 @@ path_of() {
>>      return 1
>>  }
>>  
>> +version_ge () {
>> +    local_ver1=`echo $1 | tr . ' '`
>> +    local_ver2=`echo $2 | tr . ' '`
>> +    while true; do
>> +        set x $local_ver1
>> +        local_first=${2-0}
>> +        # shift 2 does nothing if there are less than 2 arguments
>> +        shift; shift
>> +        local_ver1=$*
>> +        set x $local_ver2
>> +        # the second argument finished, the first must be greater or equal
>> +        test $# = 1 && return 0
>> +        test $local_first -lt $2 && return 1
>> +        test $local_first -gt $2 && return 0
>> +        shift; shift
>> +        local_ver2=$*
>> +    done
>> +}
>> +
>>  have_backend () {
>>      echo "$trace_backends" | grep "$1" >/dev/null
>>  }
>> @@ -1965,9 +1984,28 @@ then
>>      error_exit "Python not found. Use --python=/path/to/python"
>>  fi
>>  
>> -if ! has "$meson"
>> -then
>> -    error_exit "Meson not found. Use --meson=/path/to/meson"
>> +if test -z "$meson" ; then
>> +    if has meson && version_ge "$(meson --version)" 0.55.0; then
>> +        meson=meson
>> +    elif test -e "${source_path}/.git" && test $git_update = 'yes' ; then
>> +        meson=git
>> +    elif test -e "${source_path}/meson/meson.py" ; then
>> +        meson=internal
>> +    fi
>> +fi
>> +
>> +case "$meson" in
>> +    git | internal)
> 
> Is "internal" meant to be synonymous with "git"? AFAICT we don't
> actually do anything with --meson=internal which is why it failed later.

"git" only works on checkouts, "internal" works on release builds as
well.  So the problem is that git_update is not set to "yes" for
whatever reason.

Paolo

> 
>> +        if test "$meson" = git; then
>> +            git_submodules="${git_submodules} meson"
>> +            (cd "${source_path}" && GIT="$git" "./scripts/git-submodule.sh" 
>> update meson)
>> +        fi
>> +        meson="${source_path}/meson/meson.py"
>> +        ;;
>> +esac
>> +
>> +if ! has "$meson" ; then
>> +    error_exit "Meson not found. Use --meson=/path/to/meson|git|internal"
>>  fi
> <snip>
> 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]