about summary refs log tree commit diff
path: root/buildGo.nix
AgeCommit message (Collapse)AuthorFilesLines
2019-12-13 fix(buildGo): Update buildGo.proto for compatibility with externalVincent Ambo1-4/+4
Changes in the structure of buildGo.external meant that the package layout for the protobuf library is now slightly different. `proto` has been amended to work with the new structure. Callers of buildGo.proto do not need to be updated (i.e. the example still works).
2019-12-13 feat(buildGo): Expose new external builderVincent Ambo1-87/+14
2019-12-13 feat(buildGo): Expose Go import path for packagesVincent Ambo1-1/+1
2019-12-13 fix(buildGo): Ensure 'proto' libraries are overridableVincent Ambo1-1/+1
2019-12-13 feat(buildGo): Add new traversing external' implementationVincent Ambo1-9/+46
Adds an alternative implementation of a builder for external packages which traverses packages and builds up an attribute set tree out of their structure. Currently this is not functional because there is no useable method of specifying dependencies within that package set.
2019-12-09 feat(buildGo): Add 'overrideGo' argument overriding functionVincent Ambo1-2/+14
This makes it possible to override arguments to the Go builders downstream in the style of `overrideAttrs` from standard nixpkgs derivations. For example, given a Nix value `foo` that builds a binary called `foo` the name of this binary could be changed and a new dependency on `somelib` added like so: foo.overrideGo(old: { name = "bar"; deps = old.deps ++ [ somelib ]; })
2019-11-26 feat(buildGo): Add support for gRPC packagesVincent Ambo1-5/+8
Introduces buildGo.grpc which is like buildGo.proto, but adds dependencies on the gRPC libraries.
2019-11-26 feat(proto): Add protobuf & gRPC dependencies via externalVincent Ambo1-12/+2
Moves the Protobuf & gRPC dependencies to a separate file which uses buildGo.external to build the dependencies. The versions are pinned at master of 2019-11-26.
2019-11-26 feat(buildGo): Add 'srcOnly' and 'targets' parameters for externalVincent Ambo1-4/+4
Adds two new parameters to buildGo.external: * `srcOnly` toggles whether the created derivation should contain only the source code, or the built package. This is useful in situations where some sub-packages of a larger package are needed and the build should be deferred to the package depending on them. It defaults to false, meaning that external packages are built by default. * `targets` controls which "sub-packages" of the target package are built. It defaults to building all sub-packages.
2019-11-25 feat(buildGo): Add support for building "external" Go librariesVincent Ambo1-53/+51
Adds a buildGo.external function that can build packages following the default go-tool package layout. Dependencies work the same way as they do for other buildGo-packages, but instead of being passed straight to the compiler a fake GOPATH is assembled using a symlink forest. External currently supports very few direct configuration options and was primarily created to build the protobuf packages, but it is also useful for including external dependencies in buildGo-native projects. The previous complex build logic for the protobuf package has been replaced with a call to `external`.
2019-11-24 feat(buildGo): Add support for x_defs option in buildGo.programVincent Ambo1-2/+4
This lets users define an attribute set with link time options.
2019-11-24 feat: Add support for Protobuf-generated librariesVincent Ambo1-3/+75
Adds a 'buildGo.proto' function which takes a single .proto file as its source and generates a corresponding Go library which can then be imported. 'proto' takes these arguments (Yants-style type definition): struct "protoArgs" { # required: name = string; proto = path; # optional: extraDeps = list goLib; # defaults to [ ] protocFlags = option string; } Note that proto libraries will automatically have dependencies for the required protobuf Go libraries added to them. gRPC is not (yet) supported.
2019-11-23 feat: Check in buildGo with program & package buildersVincent Ambo1-0/+70