graphql-engine/flake.nix
Samir Talwar 3287181cc4 Nix: Wrap GHC and HLS, specifically, to provide (DY)?LD_LIBRARY_PATH.
We clearly do need this environment variable (at least on macOS); otherwise GHC spits out a slew of errors along the lines of "cannot find libodbc.dylib".

However, adding it directly to the shell causes serious problems. Wrapping GHC should limit the damage.

We've seen similar issues on macOS.

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/9203
Co-authored-by: Philip Lykke Carlsen <358550+plcplc@users.noreply.github.com>
GitOrigin-RevId: 9468d31e5b8ec86196809844842a1668386054bc
2023-05-22 14:16:12 +00:00

46 lines
1.2 KiB
Nix

# This Nix flake defines the dependencies of the Hasura GraphQL Engine.
# Currently, we do not use it for building anything, just for providing a shell.
#
# The shell provides tooling for the Server, CLI, Console, and other components.
# You can start it with `nix develop`, or by using `direnv` (see .envrc).
#
# If you are using macOS, note that we apply a patch to GHC, and therefore all
# tooling needs to be built from scratch. If you're averse to waiting several
# hours for your environment to become usable, you can add @SamirTalwar's Cachix
# repository to save yourself the trouble:
#
# https://app.cachix.org/cache/hasura-samirtalwar#pull
{
description = "Hasura GraphQL Engine";
inputs = {
flake-utils = {
url = github:numtide/flake-utils;
};
nixpkgs = {
url = github:NixOS/nixpkgs;
};
};
outputs =
{ self
, flake-utils
, nixpkgs
}:
flake-utils.lib.eachDefaultSystem (system:
let
pkgs = import ./nix/nixpkgs.nix { inherit nixpkgs system; };
in
{
packages = {
graphql-parser = pkgs.haskell.packages.${pkgs.ghcName}.graphql-parser;
};
formatter = pkgs.nixpkgs-fmt;
devShells.default = import ./nix/shell.nix { inherit pkgs system; };
}
);
}