Hi, On Thu, Sep 28, 2023 at 03:51:50PM +0100, Daniel P. Berrangé wrote: > On Wed, Sep 27, 2023 at 01:25:37PM +0200, Victor Toso wrote: > > This patch handles QAPI alternate types and generates data structures > > in Go that handles it. > > This file (and most others) needs some imports added. > I found the following to be required in order to > actually compile this:
This was by design, I mean, my preference. I decided that the
generator should output correct but not necessarly
formatted/buildable Go code. The consumer should still use
gofmt/goimports.
Do you think we should do this in QEMU? What about extra
dependencies in QEMU with go binaries?
This is how it is done in victortoso/qapi-go module:
# to generate
toso@tapioca ~> QEMU_REPO=/home/toso/src/qemu go generate ./...
# the generation
toso@tapioca ~> cat src/qapi-go/pkg/qapi/doc.go
//go:generate ../../scripts/generate.sh
//go:generate gofmt -w .
//go:generate goimports -w .
package qapi
# script
URL="https://gitlab.com/victortoso/qemu.git"
BRANCH="qapi-golang"
if [[ -z "${QEMU_REPO}" ]]; then
git clone --depth 1 --branch $BRANCH $URL
QEMU_REPO="$PWD/qemu"
fi
python3 $QEMU_REPO/scripts/qapi-gen.py -o tmp
$QEMU_REPO/qapi/qapi-schema.json
mv tmp/go/* .
rm -rf tmp qemu
Cheers,
Victor
> alternates.go:import (
> alternates.go- "encoding/json"
> alternates.go- "errors"
> alternates.go- "fmt"
> alternates.go-)
>
>
> commands.go:import (
> commands.go- "encoding/json"
> commands.go- "errors"
> commands.go- "fmt"
> commands.go-)
>
>
> events.go:import (
> events.go- "encoding/json"
> events.go- "errors"
> events.go- "fmt"
> events.go-)
>
>
> helpers.go:import (
> helpers.go- "encoding/json"
> helpers.go- "fmt"
> helpers.go- "strings"
> helpers.go-)
>
>
> structs.go:import (
> structs.go- "encoding/json"
> structs.go-)
>
>
> unions.go:import (
> unions.go- "encoding/json"
> unions.go- "errors"
> unions.go- "fmt"
> unions.go-)
>
>
>
>
> With regards,
> Daniel
> --
> |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :|
> |: https://libvirt.org -o- https://fstop138.berrange.com :|
> |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
>
signature.asc
Description: PGP signature
