feat(buildGo): Add support for gRPC packages
Introduces buildGo.grpc which is like buildGo.proto, but adds dependencies on the gRPC libraries.
This commit is contained in:
parent
d3e8774a8e
commit
9280cf9715
1 changed files with 8 additions and 5 deletions
13
buildGo.nix
13
buildGo.nix
|
|
@ -72,17 +72,20 @@ let
|
||||||
'') // { goDeps = uniqueDeps; };
|
'') // { goDeps = uniqueDeps; };
|
||||||
|
|
||||||
# Build a Go library out of the specified protobuf definition.
|
# Build a Go library out of the specified protobuf definition.
|
||||||
proto = { name, proto, path ? name, protocFlags ? "", extraDeps ? [] }: package {
|
proto = { name, proto, path ? name, extraDeps ? [] }: package {
|
||||||
inherit name path;
|
inherit name path;
|
||||||
deps = [ goProto ] ++ extraDeps;
|
deps = [ protoLibs.goProto ] ++ extraDeps;
|
||||||
srcs = lib.singleton (runCommand "goproto-${name}.pb.go" {} ''
|
srcs = lib.singleton (runCommand "goproto-${name}.pb.go" {} ''
|
||||||
cp ${proto} ${baseNameOf proto}
|
cp ${proto} ${baseNameOf proto}
|
||||||
${protobuf}/bin/protoc --plugin=${goProto}/bin/protoc-gen-go \
|
${protobuf}/bin/protoc --plugin=${protoLibs.goProto}/bin/protoc-gen-go \
|
||||||
--go_out=${protocFlags}import_path=${baseNameOf path}:. ${baseNameOf proto}
|
--go_out=plugins=grpc,import_path=${baseNameOf path}:. ${baseNameOf proto}
|
||||||
mv *.pb.go $out
|
mv *.pb.go $out
|
||||||
'');
|
'');
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# Build a Go library out of the specified gRPC definition.
|
||||||
|
grpc = args: proto (args // { extraDeps = [ protoLibs.goGrpc ]; });
|
||||||
|
|
||||||
# Build an externally defined Go library using `go build` itself.
|
# Build an externally defined Go library using `go build` itself.
|
||||||
#
|
#
|
||||||
# Libraries built this way can be included in any standard buildGo
|
# Libraries built this way can be included in any standard buildGo
|
||||||
|
|
@ -128,5 +131,5 @@ let
|
||||||
};
|
};
|
||||||
in {
|
in {
|
||||||
# Only the high-level builder functions are exposed
|
# Only the high-level builder functions are exposed
|
||||||
inherit program package proto external;
|
inherit program package proto grpc external;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue