@@ -17,7 +17,8 @@ PROTO_GOFILES = $(patsubst %.proto,%.pb.go,$(PROTO_SOURCES))
1717PROTO_INCLUDE = -I$(PWD ) :/usr/local/include:/usr/include
1818PROTO_OPTIONS = --proto_path=. $(PROTO_INCLUDE ) \
1919 --go_opt=paths=source_relative --go_out=. \
20- --go-ttrpc_opt=paths=source_relative --go-ttrpc_out=.
20+ --go-ttrpc_opt=paths=source_relative --go-ttrpc_out=. \
21+ --go-plugin_opt=paths=source_relative,disable_pb_gen=true --go-plugin_out=.
2122PROTO_COMPILE = PATH=$(PATH ) :$(shell go env GOPATH) /bin; protoc $(PROTO_OPTIONS )
2223
2324GO_CMD := go
@@ -33,6 +34,9 @@ GO_MODULES := $(shell $(GO_CMD) list ./...)
3334GOLANG_CILINT := golangci-lint
3435GINKGO := ginkgo
3536
37+ TINYGO_CMD := tinygo
38+ TINYGO_BUILD := $(TINYGO_CMD ) build -scheduler=none -target=wasi -no-debug
39+
3640BUILD_PATH := $(shell pwd) /build
3741BIN_PATH := $(BUILD_PATH ) /bin
3842COVERAGE_PATH := $(BUILD_PATH ) /coverage
@@ -44,7 +48,8 @@ PLUGINS := \
4448 $(BIN_PATH ) /differ \
4549 $(BIN_PATH ) /ulimit-adjuster \
4650 $(BIN_PATH ) /v010-adapter \
47- $(BIN_PATH ) /template
51+ $(BIN_PATH ) /template \
52+ $(BIN_PATH ) /wasm
4853
4954
5055ifneq ($(V ) ,1)
@@ -118,6 +123,11 @@ $(BIN_PATH)/template: $(wildcard plugins/template/*.go)
118123 $(Q ) echo " Building $@ ..." ; \
119124 cd $(dir $< ) && $(GO_BUILD ) -o $@ .
120125
126+ $(BIN_PATH ) /wasm : $(wildcard plugins/wasm/* .go)
127+ $(Q ) echo " Building $@ ..." ; \
128+ mkdir -p $(BIN_PATH ) && \
129+ cd $(dir $< ) && $(TINYGO_BUILD ) -o $@ .
130+
121131#
122132# test targets
123133#
@@ -180,6 +190,8 @@ validate-repo-no-changes:
180190% .pb.go : % .proto
181191 $(Q ) echo " Generating $@ ..." ; \
182192 $(PROTO_COMPILE ) $<
193+ sed -i ' s;\(//.*protoc.*\)v.*;\1[stripped];g' $(shell find . -name '* .pb.go')
194+ sed -i ' 1s;^;//go:build !tinygo.wasm\n\n;' pkg/api/api_ttrpc.pb.go
183195
184196#
185197# targets for installing dependencies
@@ -191,6 +203,9 @@ install-protoc install-protobuf:
191203install-ttrpc-plugin :
192204 $(Q )$(GO_INSTALL ) -mod=mod github.com/containerd/ttrpc/cmd/protoc-gen-go-ttrpc@74421d10189e8c118870d294c9f7f62db2d33ec1
193205
206+ install-wasm-plugin :
207+ $(Q )$(GO_INSTALL ) -mod=mod github.com/knqyf263/go-plugin/cmd/protoc-gen-go-plugin@d8d42059d8f1b52968cff7226b7094e5c6a0c342
208+
194209install-protoc-dependencies :
195210 $(Q )$(GO_INSTALL ) -mod=mod google.golang.org/protobuf/cmd/protoc-gen-go@v1.28.0
196211
0 commit comments