diff options
Diffstat (limited to 'third_party/nix/default.nix')
-rw-r--r-- | third_party/nix/default.nix | 30 |
1 files changed, 23 insertions, 7 deletions
diff --git a/third_party/nix/default.nix b/third_party/nix/default.nix index e6fa3f1f7d62..b95309ff103d 100644 --- a/third_party/nix/default.nix +++ b/third_party/nix/default.nix @@ -12,16 +12,23 @@ let largeBoehm = pkgs.boehmgc.override { enableLargeConfig = true; }; -in pkgs.llvmPackages.libcxxStdenv.mkDerivation { - pname = "tazjix"; - version = "2.3.4"; + src = ./.; - # Abseil's sources need to be symlinked into Nix' sources. - postUnpack = '' - ln -fs ${pkgs.abseil_cpp.drvAttrs.src} nix/abseil_cpp - ln -fs ${pkgs.glog.drvAttrs.src} nix/glog + # Proto generation in CMake is theoretically possible, but that is + # very theoretical - this does it in Nix instead. + protoSrcs = pkgs.runCommand "nix-proto-srcs" {} '' + export PROTO_SRCS=${src}/src/proto + mkdir -p $out/libproto + ${pkgs.protobuf}/bin/protoc -I=$PROTO_SRCS \ + --cpp_out=$out/libproto \ + --plugin=protoc-gen-grpc=${pkgs.grpc}/bin/grpc_cpp_plugin --grpc_out=$out/libproto \ + $PROTO_SRCS/*.proto ''; +in pkgs.llvmPackages.libcxxStdenv.mkDerivation { + pname = "tazjix"; + version = "2.3.4"; + inherit src; nativeBuildInputs = with pkgs; [ bison @@ -35,15 +42,20 @@ in pkgs.llvmPackages.libcxxStdenv.mkDerivation { # TODO(tazjin): Some of these might only be required for native inputs buildInputs = with pkgs; [ + abseil_cpp aws-s3-cpp brotli bzip2 + c-ares curl editline flex + glog + grpc libseccomp libsodium openssl + protobuf sqlite xz ]; @@ -53,6 +65,10 @@ in pkgs.llvmPackages.libcxxStdenv.mkDerivation { largeBoehm ]; + # Forward the location of the generated Protobuf / gRPC files so + # that they can be included by CMake. + NIX_PROTO_SRCS = protoSrcs; + # Install the various symlinks to the Nix binary which users expect # to exist. postInstall = '' |