summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--samples/go.mod7
-rwxr-xr-xsamples/go_sample.sh19
-rw-r--r--samples/sample_binary.go2
3 files changed, 15 insertions, 13 deletions
diff --git a/samples/go.mod b/samples/go.mod
new file mode 100644
index 00000000..c8f892b8
--- /dev/null
+++ b/samples/go.mod
@@ -0,0 +1,7 @@
+module github.com/google/flatbuffers/samples
+
+go 1.20
+
+replace github.com/google/flatbuffers/go => ./go_gen
+
+require github.com/google/flatbuffers/go v0.0.0-00010101000000-000000000000
diff --git a/samples/go_sample.sh b/samples/go_sample.sh
index 13a96c12..9ccd48ed 100755
--- a/samples/go_sample.sh
+++ b/samples/go_sample.sh
@@ -41,23 +41,18 @@ fi
echo Compiling and running the Go sample.
-# Go requires a particular layout of files in order to link the necessary
-# packages. Copy these files to the respective directores to compile the
-# sample.
-mkdir -p ${sampledir}/go_gen/src/MyGame/Sample
-mkdir -p ${sampledir}/go_gen/src/github.com/google/flatbuffers/go
-cp MyGame/Sample/*.go ${sampledir}/go_gen/src/MyGame/Sample/
-cp ${sampledir}/../go/* ${sampledir}/go_gen/src/github.com/google/flatbuffers/go
-
-# Export the `GOPATH`, so that `go` will know which directories to search for
-# the libraries.
-export GOPATH=${sampledir}/go_gen/
+# Workaround for https://github.com/google/flatbuffers/issues/7780:
+# go mod replace requires a go.mod file in the target directory,
+# but there currently isn't one in the ../go directory.
+# So we copy the ../go directory to go_gen and manually create go_gen/go.mod
+mkdir -p ${sampledir}/go_gen
+cp ${sampledir}/../go/* ${sampledir}/go_gen
+( cd ${sampledir}/go_gen && go mod init github.com/google/flatbuffers/go )
# Compile and execute the sample.
go build -o go_sample sample_binary.go
./go_sample
# Clean up the temporary files.
-rm -rf MyGame/
rm -rf ${sampledir}/go_gen/
rm go_sample
diff --git a/samples/sample_binary.go b/samples/sample_binary.go
index e04650be..7b7efac2 100644
--- a/samples/sample_binary.go
+++ b/samples/sample_binary.go
@@ -19,7 +19,7 @@
package main
import (
- sample "MyGame/Sample"
+ sample "github.com/google/flatbuffers/samples/MyGame/Sample"
"fmt"
flatbuffers "github.com/google/flatbuffers/go"
"strconv"