tvl-depot/nix/buildGo/example/default.nix
Vincent Ambo 03bfe08e1d chore: Significantly restructure folder layout
This moves the various projects from "type-based" folders (such as
"services" or "tools") into more appropriate semantic folders (such as
"nix", "ops" or "web").

Deprecated projects (nixcon-demo & gotest) which only existed for
testing/demonstration purposes have been removed.

(Note: *all* builds are broken with this commit)
2019-12-20 20:18:41 +00:00

47 lines
1.1 KiB
Nix

# Copyright 2019 Google LLC.
# SPDX-License-Identifier: Apache-2.0
# This file provides examples for how to use the various builder
# functions provided by `buildGo`.
#
# The features used in the example are not exhaustive, but should give
# users a quick introduction to how to use buildGo.
let
buildGo = import ../buildGo.nix {};
# Example use of buildGo.package, which creates an importable Go
# package from the specified source files.
examplePackage = buildGo.package {
name = "example";
srcs = [
./lib.go
];
};
# Example use of buildGo.proto, which generates a Go library from a
# Protobuf definition file.
exampleProto = buildGo.proto {
name = "exampleproto";
proto = ./thing.proto;
};
# Example use of buildGo.program, which builds an executable using
# the specified name and dependencies (which in turn must have been
# created via buildGo.package etc.)
in buildGo.program {
name = "example";
srcs = [
./main.go
];
deps = [
examplePackage
exampleProto
];
x_defs = {
"main.Flag" = "successfully";
};
}